(function () { "use strict"; const DEFAULTS = { enabled: true, darkMode: "auto", "light.subredditBgColor": "#fde8e0", "light.subredditBorderColor": "#c84a20", "light.subredditTextColor": "#c84a20", "light.commentsBgColor": "#e0e0e0", "light.commentsBorderColor": "#4a4a4a", "light.commentsTextColor": "#4a4a4a", "dark.subredditBgColor": "#3d2518", "dark.subredditBorderColor": "#ff6b3d", "dark.subredditTextColor": "#ff6b3d", "dark.commentsBgColor": "#3a3a3a", "dark.commentsBorderColor": "#888888", "dark.commentsTextColor": "#cccccc", subredditColors: {}, }; function migrateSubredditColors(colors) { let migrated = false; const result = {}; for (const name of Object.keys(colors)) { const entry = colors[name]; if (entry && entry.bg !== undefined && !entry.light && !entry.dark) { result[name] = { light: { bg: entry.bg, border: entry.border, text: entry.text }, dark: { bg: entry.bg, border: entry.border, text: entry.text } }; migrated = true; } else { result[name] = entry; } } return { result: result, migrated: migrated }; } async function loadSettings() { const stored = await browser.storage.local.get(null); const merged = Object.assign({}, DEFAULTS, stored); const migration = migrateSubredditColors(merged.subredditColors || {}); merged.subredditColors = migration.result; if (migration.migrated) { await browser.storage.local.set({ subredditColors: merged.subredditColors }); } return merged; } async function saveSettings(settings) { const toStore = {}; for (const key of Object.keys(settings)) { if (key in DEFAULTS) { toStore[key] = settings[key]; } } await browser.storage.local.set(toStore); } async function resetSettings() { await browser.storage.local.clear(); } window.RedditTweaks = window.RedditTweaks || {}; window.RedditTweaks.DEFAULTS = DEFAULTS; window.RedditTweaks.loadSettings = loadSettings; window.RedditTweaks.saveSettings = saveSettings; window.RedditTweaks.resetSettings = resetSettings; })();