From 313e630f0b2c135c41f32e1700452fe5039707da Mon Sep 17 00:00:00 2001 From: iProdigy Date: Mon, 18 Nov 2024 19:11:35 -0800 Subject: [PATCH 1/4] feat: refresh dynamic config if sufficiently old --- src/main/java/dinkplugin/SettingsManager.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/dinkplugin/SettingsManager.java b/src/main/java/dinkplugin/SettingsManager.java index cca0c48b..94800391 100644 --- a/src/main/java/dinkplugin/SettingsManager.java +++ b/src/main/java/dinkplugin/SettingsManager.java @@ -40,6 +40,8 @@ import javax.swing.SwingUtilities; import java.io.IOException; import java.lang.reflect.Type; +import java.time.Duration; +import java.time.Instant; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -103,6 +105,8 @@ public class SettingsManager { private final ConfigManager configManager; private final OkHttpClient httpClient; + private volatile Instant lastDynamicImport = null; + /** * Check whether a username complies with the configured RSN filter list. * @@ -303,6 +307,12 @@ void onGameState(GameState oldState, GameState newState) { return true; }); + + // refresh dynamic config if it's been 6+ hours + var lastImport = lastDynamicImport; + if (lastImport != null && Duration.between(lastImport, Instant.now()).toHours() >= 6) { + importDynamicConfig(config.dynamicConfigUrl()); + } } void onTick() { @@ -415,6 +425,7 @@ public void onResponse(@NotNull Call call, @NotNull Response response) { map.remove(DYNAMIC_IMPORT_CONFIG_KEY); handleImport(map, true); + lastDynamicImport = Instant.now(); } @Override From 96f339e0dea9fc76b91032e5c991c74da44148dd Mon Sep 17 00:00:00 2001 From: iProdigy <8106344+iProdigy@users.noreply.github.com> Date: Sun, 24 Nov 2024 11:05:43 -0800 Subject: [PATCH 2/4] chore: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b4e17e2..fe284e92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## Unreleased +- Minor: Pull latest dynamic configuration if sufficiently old. (#598) - Minor: Allow overwriting webhooks or item lists on config import, rather than merging. (#595) - Minor: Allow specifying tag IDs to apply for new forum thread messages. (#599) - Minor: Add herbiboar support to kill count notifier. (#602) From dadbc100774d3d5ed5ef94f600b027526a165f17 Mon Sep 17 00:00:00 2001 From: iProdigy <8106344+iProdigy@users.noreply.github.com> Date: Sun, 24 Nov 2024 11:11:43 -0800 Subject: [PATCH 3/4] chore: make imports more frequent --- src/main/java/dinkplugin/SettingsManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dinkplugin/SettingsManager.java b/src/main/java/dinkplugin/SettingsManager.java index 1683e1c5..1b562488 100644 --- a/src/main/java/dinkplugin/SettingsManager.java +++ b/src/main/java/dinkplugin/SettingsManager.java @@ -312,7 +312,7 @@ void onGameState(GameState oldState, GameState newState) { // refresh dynamic config if it's been 6+ hours var lastImport = lastDynamicImport; - if (lastImport != null && Duration.between(lastImport, Instant.now()).toHours() >= 6) { + if (lastImport != null && Duration.between(lastImport, Instant.now()).toHours() >= 3) { importDynamicConfig(config.dynamicConfigUrl()); } } From d0f2aff952505caef50938bd5a4be68d7ed3d71d Mon Sep 17 00:00:00 2001 From: pajlada Date: Sun, 24 Nov 2024 21:52:19 +0100 Subject: [PATCH 4/4] Update src/main/java/dinkplugin/SettingsManager.java Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com> --- src/main/java/dinkplugin/SettingsManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dinkplugin/SettingsManager.java b/src/main/java/dinkplugin/SettingsManager.java index 1b562488..404e43e2 100644 --- a/src/main/java/dinkplugin/SettingsManager.java +++ b/src/main/java/dinkplugin/SettingsManager.java @@ -310,7 +310,7 @@ void onGameState(GameState oldState, GameState newState) { return true; }); - // refresh dynamic config if it's been 6+ hours + // refresh dynamic config if it's been 3+ hours var lastImport = lastDynamicImport; if (lastImport != null && Duration.between(lastImport, Instant.now()).toHours() >= 3) { importDynamicConfig(config.dynamicConfigUrl());