document.addEventListener("DOMContentLoaded", restore); document.getElementById("save").addEventListener("click", save); const DEFAULT_SETTINGS = { delay: 7, blacklist: [ "*.unbl.ink", "moz-extension://", "*.google.com", "gmail.com", "*.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 }, }; 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"); }); } function save() { const delay = parseInt(document.getElementById("delay").value, 10); const blacklist = document .getElementById("blacklist") .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); 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); }, ); }