diff options
author | 2020-09-17 22:02:44 +0200 | |
---|---|---|
committer | 2020-09-17 22:02:44 +0200 | |
commit | 3f2436fef013b3bd0851829a7e8a5ae3da7b23a8 (patch) | |
tree | e20489f6598b0be6d206af65c26aaf7638bbb973 | |
parent | de688668fe0272b0be4bbc7b6a152a65a929344d (diff) | |
download | simple_hinting-3f2436fef013b3bd0851829a7e8a5ae3da7b23a8.tar.gz simple_hinting-3f2436fef013b3bd0851829a7e8a5ae3da7b23a8.tar.xz simple_hinting-3f2436fef013b3bd0851829a7e8a5ae3da7b23a8.zip |
feat: Synchronize domains and params each weeks from upstream
-rw-r--r-- | js/background.js | 38 | ||||
-rw-r--r-- | js/hints.js | 59 |
2 files changed, 47 insertions, 50 deletions
diff --git a/js/background.js b/js/background.js index ee67900..f93032a 100644 --- a/js/background.js +++ b/js/background.js @@ -112,3 +112,41 @@ browser.commands.onCommand.addListener(function(command) { }); } }); + + +/** + * Sync domains and params info + */ +function onError(error) { + console.error(`[Simple Hinting extension] ${error}`); +} + +function fetchUnwantedParams() { + return fetch("https://unshorten.umaneti.net/params").then(function(response) { + return response.json(); + }).then(function(upstream_params) { + browser.storage.local.set({ "unwanted_params": upstream_params }); + }).catch(onError); +} + +function fetchTinyDomains() { + return fetch("https://unshorten.umaneti.net/domains").then(function(response) { + return response.json(); + }).then(function(upstream_tiny_domains) { + browser.storage.local.set({ "tiny_domains_list": upstream_tiny_domains }); + }).catch(onError); +} + +let opts = ["sync_dt"]; +browser.storage.local.get(opts).then(function (result) { + let last_sync = result.sync_dt || 0; + let one_week_in_ms = 7 * 24 * 60 * 60 * 1000; + let now_in_ms = Date.now(); + if ((last_sync + one_week_in_ms) < now_in_ms) { + // Time to sync again + console.log("[Simple Hinting extension] Synchronizing now params and domains."); + fetchTinyDomains(); + fetchUnwantedParams(); + browser.storage.local.set({ "sync_dt": now_in_ms }); + } +}, onError); diff --git a/js/hints.js b/js/hints.js index 7fe2daa..2ae273e 100644 --- a/js/hints.js +++ b/js/hints.js @@ -13,43 +13,6 @@ const actionkeys = { "a": "cleanall" }; -function onError(error) { - let message = `[Simple Hinting extension] ${error}`; - let pref_msg_status = document.getElementById("save-status"); - if (pref_msg_status) { - pref_msg_status.textContent = message; - pref_msg_status.style.color = "red"; - } else { - console.error(message); - } -} - -var unwanted_params = []; -function fetchUnwantedParams() { - return fetch("https://unshorten.umaneti.net/params").then( - function(response) { - return response.json(); - }, onError - ).then( - function(upstream_params) { - unwanted_params = upstream_params; - browser.storage.local.set({ "unwanted_params": unwanted_params }); - }, onError - ); -} - -var tiny_domains = []; -function fetchTinyDomains() { - return fetch("https://unshorten.umaneti.net/domains").then( - function(response) { - return response.json(); - }, onError - ).then(function(upstream_tiny_domains) { - tiny_domains = upstream_tiny_domains; - browser.storage.local.set({ "tiny_domains_list": tiny_domains }); - }, onError); -} - // Globals function SimpleHinting () { @@ -335,8 +298,9 @@ function is_command (key) { let is_c = false; try { is_c = Object.keys(actionkeys).indexOf(key) !== -1; - } catch (_e) { - onError(`Failed reading key: ${key}`); + } catch { + let message = `[Simple Hinting extension] Failed reading key: ${key}`; + console.error(message); } return is_c; } @@ -409,28 +373,23 @@ function fix_all_links () { } +var unwanted_params = []; +var tiny_domains = []; const main_simple_hinting = new SimpleHinting(); function SimpleHintingManager(callback) { let opts = ["unwanted_params", "tiny_domains_list"]; browser.storage.local.get(opts).then(function (result) { - let initMethods = []; if (result.unwanted_params && Array.isArray(result.unwanted_params)) { unwanted_params = result.unwanted_params; - } else { - initMethods.push(fetchUnwantedParams()); } if (result.tiny_domains_list && Array.isArray(result.tiny_domains_list)) { tiny_domains = result.tiny_domains_list; - } else { - initMethods.push(fetchTinyDomains()); } - if (initMethods.length > 0) { - Promise.all(initMethods).then(callback); - } else { - callback.call(null); - } - }, onError); + callback.call(null); + }).catch(function (error) { + console.error(`[Simple Hinting extension] ${error}`); + }); } browser.runtime.onMessage.addListener(function(data, sender) { |