From d861e91316743a7b4771eb8f0a0d5fb832decb4a Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Mon, 20 Oct 2025 09:33:43 -0400 Subject: [PATCH] Fix bug in settings loading --- background.js | 19 ++++++++----------- options.js | 41 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/background.js b/background.js index 2718fc1..afd974b 100644 --- a/background.js +++ b/background.js @@ -1,16 +1,6 @@ const SCROBBLE_ENDPOINT = "https://life.lab.unbl.ink/?scrobble_url="; const STOP_ENDPOINT = "https://life.lab.unbl.ink/?action=stop&scrobble_url="; -// Default settings -// *.google.com -// *.annas-archive.org -// *.limetorrents.fun -// gmail.com -// *.duckduckgo.com -// *.ebay.com -// *.amazon.com -// *.boardgamegeek.com -// *.chatgpt.com const DEFAULT_SETTINGS = { delay: 7, blacklist: [ @@ -21,12 +11,19 @@ const DEFAULT_SETTINGS = { "*.chatgpt.com", "*.ebay.com", "*.amazon.com", + "*.merrysky.net", + "gemgetter.clearlysharp.com/", + "*.boardgamegeek.com", + "*.duckduckgo.com", + "*.geekgroup.app", + "*.local", + "*.service", + "*.todoist.com", ], paused: false, siteDelays: { "readscomisconline.ru": 1 }, }; -// Utility: wildcard match function matchPattern(url, pattern) { if (pattern.startsWith("*.")) { const domain = pattern.slice(2); diff --git a/options.js b/options.js index 3682671..a46b8eb 100644 --- a/options.js +++ b/options.js @@ -11,6 +11,14 @@ const DEFAULT_SETTINGS = { "*.chatgpt.com", "*.ebay.com", "*.amazon.com", + "*.merrysky.net", + "gemgetter.clearlysharp.com/", + "*.boardgamegeek.com", + "*.duckduckgo.com", + "*.geekgroup.app", + "*.local", + "*.service", + "*.todoist.com", ], paused: false, siteDelays: { "readscomisconline.ru": 1 }, @@ -20,6 +28,12 @@ function restore() { browser.storage.local.get(DEFAULT_SETTINGS, (items) => { document.getElementById("delay").value = items.delay; document.getElementById("blacklist").value = items.blacklist.join("\n"); + document.getElementById("scrobbleBaseUrl").value = items.scrobbleBaseUrl; + document.getElementById("siteDelays").value = Object.entries( + items.siteDelays || {}, + ) + .map(([d, s]) => `${d}=${s}`) + .join("\n"); }); } @@ -30,10 +44,27 @@ function save() { .value.split("\n") .map((x) => x.trim()) .filter(Boolean); + const scrobbleBaseUrl = document + .getElementById("scrobbleBaseUrl") + .value.trim(); + const siteDelaysLines = document + .getElementById("siteDelays") + .value.split("\n") + .map((l) => l.trim()) + .filter(Boolean); - browser.storage.local.set({ delay, blacklist }, () => { - const status = document.getElementById("status"); - status.textContent = "Settings saved."; - setTimeout(() => (status.textContent = ""), 1500); - }); + const siteDelays = {}; + for (const line of siteDelaysLines) { + const [domain, sec] = line.split("="); + if (domain && sec) siteDelays[domain.trim()] = parseFloat(sec); + } + + browser.storage.local.set( + { delay, blacklist, scrobbleBaseUrl, siteDelays }, + () => { + const status = document.getElementById("status"); + status.textContent = "Settings saved."; + setTimeout(() => (status.textContent = ""), 1500); + }, + ); }