libredirect/src/assets/javascripts/helpers/general.js

87 lines
2.1 KiB
JavaScript

"use strict";
window.browser = window.browser || window.chrome;
let alwaysUsePreferred;
const getAlwaysUsePreferred = () => alwaysUsePreferred;
function setAlwaysUsePreferred(val) {
alwaysUsePreferred = val;
browser.storage.local.set({ alwaysUsePreferred })
console.log("alwaysUsePreferred: ", alwaysUsePreferred)
}
let theme;
const getTheme = () => theme;
function setTheme(val) {
theme = val
browser.storage.local.set({ theme, instancesCookies: [] });
console.log("theme: ", theme)
}
let applyThemeToSites;
const getApplyThemeToSites = () => applyThemeToSites;
function setApplyThemeToSites(val) {
applyThemeToSites = val;
browser.storage.local.set({ applyThemeToSites })
console.log("applyThemeToSites: ", applyThemeToSites)
}
let exceptions = {
"url": [],
"regex": [],
};
const getExceptions = () => exceptions;
function setExceptions(val) {
exceptions = val;
browser.storage.local.set({ exceptions })
console.log("exceptions: ", val)
}
function isException(url) {
for (const item of exceptions.url) {
console.log(item, `${url.protocol}//${url.host}`)
if (item == `${url.protocol}//${url.host}`) return true;
}
for (const item of exceptions.regex)
if (new RegExp(item).test(url.href)) return true;
return false;
}
async function init() {
return new Promise(
resolve => browser.storage.local.get(
[
"exceptions",
"alwaysUsePreferred",
"theme",
"applyThemeToSites",
],
r => { // r = result
if (r.exceptions) exceptions = r.exceptions;
alwaysUsePreferred = r.alwaysUsePreferred ?? false;
theme = r.theme ?? "DEFAULT"
applyThemeToSites = r.applyThemeToSites ?? false;
resolve();
}
)
)
}
export default {
getExceptions,
setExceptions,
getAlwaysUsePreferred,
setAlwaysUsePreferred,
getApplyThemeToSites,
setApplyThemeToSites,
getTheme,
setTheme,
isException,
init,
}