aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-09-19 17:30:39 +0100
committerHygna <hygna@proton.me>2022-09-19 17:30:39 +0100
commit0c1595ec3a0f8f38f322f2e70598dbe208151554 (patch)
tree58d65a33dc8f18fb09f096a5b587592371153d0d /src/assets
parentConverted index.html to ejs (diff)
downloadlibredirect-0c1595ec3a0f8f38f322f2e70598dbe208151554.zip
Changes
Made get_instances.py more efficient Further work to get widgets/services.js to work properly
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/services.js33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 70928786..affe0d1a 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -28,8 +28,8 @@ function init() {
//cur = current
for (const service in config.services) {
options[service] = {}
- browser.storage.local.get([`disable${utils.camelCase(service)}`, `${service}RedirectType`, `${service}Frontend`], r => {
- options[service].disabled = r["disable" + utils.camelCase(service)]
+ browser.storage.local.get([`${utils.camelCase(service)}Enable`, `${service}RedirectType`, `${service}Frontend`], r => {
+ options[service].enabled = r[utils.camelCase(service) + "Enable"]
options[service].frontend = r[service + "Frontend"]
options[service].redirectType = r[service + "RedirectType"]
// console.log(r)
@@ -60,19 +60,19 @@ function all(service) {
return tmp
}
-getConfig()
+await getConfig()
init()
browser.storage.onChanged.addListener(init)
function redirect(url, type, initiator) {
let randomInstance
- let frontend = options[service].frontend
+ let frontend
let network = options.network
let networkFallback = options.networkFallback
- let redirectType = options[service].redirectType
+ let redirectType
if (url.pathname == "/") return
for (const service in config.services) {
- if (options[service].disabled && !disableOverride) continue
+ if (!options[service].enabled && !disableOverride) continue
let targets = service.targets
if (targets == "datajson") {
browser.storage.local.get(`${service}Targets`, (targets = r[service + "Targets"]))
@@ -81,11 +81,18 @@ function redirect(url, type, initiator) {
if (initiator && (all(service).includes(initiator.origin) || targets.includes(initiator.host))) continue
if (!targets.some(rx => rx.test(url.href))) continue
if (type != redirectType && type != "both") continue
+
+ frontend = options[service].frontend
+ redirectType = options[service].redirectType
+
// browser.storage.local.get(`${service}Frontend`, (frontend = r[service + "Frontend"]))
- let instanceList = [...[service + utils.camelCase(network) + "RedirectsChecks"], ...[service + utils.camelCase(network) + "CustomRedirects"]]
- if (instanceList.length === 0 && networkFallback) instanceList = [...[service + "ClearnetRedirectsChecks"], ...[service + "ClearnetCustomRedirects"]]
- if (instanceList.length === 0 && redirects.indexOf(frontend) != -1) return
- randomInstance = utils.getRandomInstance(instanceList)
+
+ if (config.services[service].frontends[frontend].instanceList) {
+ let instanceList = [...[frontend + utils.camelCase(network) + "RedirectsChecks"], ...[frontend + utils.camelCase(network) + "CustomRedirects"]]
+ if (instanceList.length === 0 && networkFallback) instanceList = [...[frontend + "ClearnetRedirectsChecks"], ...[frontend + "ClearnetCustomRedirects"]]
+ if (instanceList.length === 0 && redirects.indexOf(frontend) != -1) return
+ randomInstance = utils.getRandomInstance(instanceList)
+ }
}
// Here is a (temperory) space for defining constants required in 2 or more switch cases.
@@ -114,7 +121,7 @@ function redirect(url, type, initiator) {
.replace("/watch?v=", "/listen?id=")
.replace("/channel/", "/artist/")
.replace("/playlist?list=", "/playlist/VL")
- .replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/") + "?filter=song")
+ .replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/") + "?filter=all")
case "hyperpipe":
return `${randomInstance}${url.pathname}${url.search}`.replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/"))
case "bibliogram":
@@ -386,7 +393,7 @@ function initDefaults() {
// console.log(redirects)
// console.log(config)
browser.storage.local.set({
- redirects,
+ redirects: redirects.invidious,
})
browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], async r => {
// console.log(r)
@@ -395,7 +402,7 @@ function initDefaults() {
browser.storage.local.set({ [service + "Targets"]: redirects[service] })
}
for (const defaultOption in config.services[service].defaults) {
- browser.storage.local.set({ [defaultOption]: config.services[service].defaults[defaultOption] })
+ browser.storage.local.set({ [service + camelCase(defaultOption)]: config.services[service].defaults[defaultOption] })
}
for (const frontend in config.services[service].frontends) {
let clearnetChecks = redirects[frontend].clearnet