From f47f9f51ea16b14e950a7efc34e3d3a15a136128 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Fri, 11 Nov 2022 06:11:36 +0300 Subject: fixed medium archive links redirecting https://github.com/libredirect/libredirect/issues/527 --- src/assets/javascripts/services.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/assets/javascripts/services.js') diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 432420fb..bcf35822 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -47,7 +47,7 @@ function all(service, frontend, options, config, redirects) { function regexArray(service, url, config) { if (config.services[service].targets == "datajson") { - if (targets[service].includes(utils.protocolHost(url))) return true + if (targets[service].startsWith(utils.protocolHost(url))) return true } else { const targetList = config.services[service].targets for (const targetString in targetList) { -- cgit 1.4.1 From 72ee64fdb982b30acdbeba0d4e8dad8f7749b5fd Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sat, 12 Nov 2022 11:54:34 +0300 Subject: Fixed not redirecting https://github.com/libredirect/libredirect/issues/525 --- .prettierignore | 9 --------- package.json | 13 +------------ src/assets/javascripts/services.js | 14 +++++++++++--- src/config/config.json | 1 - src/pages/background/background.js | 1 - src/pages/options/widgets/services.js | 34 +++++++++++++++++++--------------- 6 files changed, 31 insertions(+), 41 deletions(-) delete mode 100644 .prettierignore (limited to 'src/assets/javascripts/services.js') diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index d789b742..00000000 --- a/.prettierignore +++ /dev/null @@ -1,9 +0,0 @@ -web-ext-artifacts/ -.DS_Store -nod -node_modules -package-lock.json -src/instances/data.json -src/instances/blacklist.json -src/_locales/ -.vscode diff --git a/package.json b/package.json index 98351dad..ade219b1 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "build": "web-ext build", "test": "web-ext lint", "instances": "python3 src/instances/get_instances.py && git update-index --assume-unchanged src/instances/blacklist.json src/instances/data.json", - "ejs": "ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html && ejs src/pages/popup/popup.ejs -f src/config/config.json -o src/pages/popup/popup.html && prettier -w src/pages/options/index.html src/pages/popup/popup.html" + "ejs": "ejs src/pages/options/index.ejs -f src/config/config.json -o src/pages/options/index.html && ejs src/pages/popup/popup.ejs -f src/config/config.json -o src/pages/popup/popup.html" }, "repository": { "type": "git", @@ -24,19 +24,8 @@ "homepage": "https://libredirect.codeberg.page", "devDependencies": { "ejs": "^3.1.8", - "prettier": "^2.7.1", "web-ext": "^7.2.0" }, - "prettier": { - "semi": false, - "tabWidth": 2, - "useTabs": true, - "arrowParens": "avoid", - "printWidth": 200, - "bracketSameLine": true, - "endOfLine": "lf", - "singleQuote": false - }, "webExt": { "ignoreFiles": [ "instances/get_instances.py", diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index bcf35822..9d80e17a 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -59,15 +59,17 @@ function regexArray(service, url, config) { } function redirect(url, type, initiator, forceRedirection) { - if (type != "main_frame" && type != "sub_frame") return + if (type != "main_frame" && type != "sub_frame" && type != "image") return let randomInstance let frontend for (const service in config.services) { + if (!forceRedirection && !options[service].enabled) continue + if (config.services[service].embeddable && type != options[service].redirectType && options[service].redirectType != "both") continue if (!config.services[service].embeddable && type != "main_frame") continue - // let targets = new RegExp(config.services[service].targets.join("|"), "i") + // let targets = new RegExp(config.services[service].targets.join("|"), "i") if (!regexArray(service, url, config)) continue // if (initiator) { // console.log(initiator.host) @@ -75,11 +77,17 @@ function redirect(url, type, initiator, forceRedirection) { // //if (all(service, null, options, config, redirects).includes(initiator.origin) && reverse(initiator) == url) return "BYPASSTAB" // } + if (Object.keys(config.services[service].frontends).length > 1) { - if (type == "sub_frame" && config.services[service].embeddable && !config.services[service].frontends[options[service].frontend].embeddable) frontend = options[service].embedFrontend + if ( + type == "sub_frame" && config.services[service].embeddable + && + !config.services[service].frontends[options[service].frontend].embeddable + ) frontend = options[service].embedFrontend else frontend = options[service].frontend } else frontend = Object.keys(config.services[service].frontends)[0] + if (config.services[service].frontends[frontend].instanceList) { let instanceList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom] if (instanceList.length === 0 && options.networkFallback) instanceList = [...options[frontend].clearnet.enabled, ...options[frontend].clearnet.custom] diff --git a/src/config/config.json b/src/config/config.json index 7b81d9f2..8b99423a 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -309,7 +309,6 @@ "frontends": { "rimgo": { "name": "rimgo", - "embeddable": true, "instanceList": true } }, diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 71fff06c..3a695048 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -56,7 +56,6 @@ browser.webRequest.onBeforeRequest.addListener( } catch { return null } - if (tabIdRedirects[details.tabId] == false) return null let newUrl = servicesHelper.redirect(url, details.type, initiator, tabIdRedirects[details.tabId]) diff --git a/src/pages/options/widgets/services.js b/src/pages/options/widgets/services.js index 37385faa..12904130 100644 --- a/src/pages/options/widgets/services.js +++ b/src/pages/options/widgets/services.js @@ -31,28 +31,32 @@ function changeFrontendsSettings(service) { for (const frontend in config.services[service].frontends) { if (config.services[service].frontends[frontend].instanceList) { const frontendDiv = document.getElementById(frontend) - if (frontend == divs[service].frontend.value) { - frontendDiv.style.display = "block" - } else { - frontendDiv.style.display = "none" + if (typeof divs[service].frontend !== "undefined") { + if (frontend == divs[service].frontend.value) { + frontendDiv.style.display = "block" + } else { + frontendDiv.style.display = "none" + } } } } if (config.services[service].embeddable) { - if (!config.services[service].frontends[divs[service].frontend.value].embeddable) { - divs[service].embedFrontend.disabled = false - for (const frontend in config.services[service].frontends) { - if (config.services[service].frontends[frontend].embeddable) { - const frontendDiv = document.getElementById(frontend) - if (frontend == divs[service].embedFrontend.value) { - frontendDiv.style.display = "block" - } else { - frontendDiv.style.display = "none" + if (typeof divs[service].frontend !== "undefined") { + if (!config.services[service].frontends[divs[service].frontend.value].embeddable) { + divs[service].embedFrontend.disabled = false + for (const frontend in config.services[service].frontends) { + if (config.services[service].frontends[frontend].embeddable) { + const frontendDiv = document.getElementById(frontend) + if (frontend == divs[service].embedFrontend.value) { + frontendDiv.style.display = "block" + } else { + frontendDiv.style.display = "none" + } } } - } - } else if (Object.keys(config.services[service].frontends).length > 1) divs[service].embedFrontend.disabled = true + } else if (Object.keys(config.services[service].frontends).length > 1) divs[service].embedFrontend.disabled = true + } } } -- cgit 1.4.1 From 544b69602e3f48018bc4feb2cf39a44dd3b4c52a Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sat, 12 Nov 2022 12:51:58 +0300 Subject: Added excludeTargets for more basic frontends https://github.com/libredirect/libredirect/issues/531 --- src/assets/javascripts/services.js | 23 +++++++++++++---------- src/config/config.json | 18 +++++++++++++++++- 2 files changed, 30 insertions(+), 11 deletions(-) (limited to 'src/assets/javascripts/services.js') diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 9d80e17a..65a359e3 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -45,11 +45,15 @@ function all(service, frontend, options, config, redirects) { return instances } -function regexArray(service, url, config) { +function regexArray(service, url, config, frontend) { if (config.services[service].targets == "datajson") { if (targets[service].startsWith(utils.protocolHost(url))) return true } else { const targetList = config.services[service].targets + if (frontend && config.services[service].frontends[frontend].excludeTargets) + for (const i in config.services[service].frontends[frontend].excludeTargets) { + targetList = targetList.splice(i, 1) + } for (const targetString in targetList) { const target = new RegExp(targetList[targetString]) if (target.test(url.href)) return true @@ -69,15 +73,6 @@ function redirect(url, type, initiator, forceRedirection) { if (config.services[service].embeddable && type != options[service].redirectType && options[service].redirectType != "both") continue if (!config.services[service].embeddable && type != "main_frame") continue - // let targets = new RegExp(config.services[service].targets.join("|"), "i") - if (!regexArray(service, url, config)) continue - // if (initiator) { - // console.log(initiator.host) - // if (targets.test(initiator.host)) continue - // //if (all(service, null, options, config, redirects).includes(initiator.origin) && reverse(initiator) == url) return "BYPASSTAB" - // } - - if (Object.keys(config.services[service].frontends).length > 1) { if ( type == "sub_frame" && config.services[service].embeddable @@ -87,6 +82,14 @@ function redirect(url, type, initiator, forceRedirection) { else frontend = options[service].frontend } else frontend = Object.keys(config.services[service].frontends)[0] + // let targets = new RegExp(config.services[service].targets.join("|"), "i") + if (!regexArray(service, url, config, frontend)) continue + // if (initiator) { + // console.log(initiator.host) + // if (targets.test(initiator.host)) continue + // //if (all(service, null, options, config, redirects).includes(initiator.origin) && reverse(initiator) == url) return "BYPASSTAB" + // } + if (config.services[service].frontends[frontend].instanceList) { let instanceList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom] diff --git a/src/config/config.json b/src/config/config.json index 8b99423a..e7d468b6 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -34,6 +34,10 @@ "instanceList": true }, "piped": { + "excludeTargets": [ + 1, + 2 + ], "preferences": { "localstorage": [ "bufferGoal", @@ -62,6 +66,10 @@ "instanceList": true }, "pipedMaterial": { + "excludeTargets": [ + 1, + 2 + ], "preferences": { "localstorage": [ "PREFERENCES" @@ -82,11 +90,19 @@ "instanceList": true }, "freetube": { + "excludeTargets": [ + 1, + 2 + ], "name": "FreeTube", "embeddable": false, "instanceList": false }, "yattee": { + "excludeTargets": [ + 1, + 2 + ], "name": "Yattee", "embeddable": false, "instanceList": false @@ -732,4 +748,4 @@ "color": "grey" } } -} +} \ No newline at end of file -- cgit 1.4.1 From 4625aa07feb647ecbaa9a2316e778a7bcc01c605 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Mon, 21 Nov 2022 05:43:49 +0300 Subject: Fixed Bypass not working https://github.com/libredirect/libredirect/issues/475 --- src/assets/javascripts/services.js | 11 +++-------- src/config/config.json | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'src/assets/javascripts/services.js') diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 65a359e3..a8d99075 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -82,14 +82,9 @@ function redirect(url, type, initiator, forceRedirection) { else frontend = options[service].frontend } else frontend = Object.keys(config.services[service].frontends)[0] - // let targets = new RegExp(config.services[service].targets.join("|"), "i") if (!regexArray(service, url, config, frontend)) continue - // if (initiator) { - // console.log(initiator.host) - // if (targets.test(initiator.host)) continue - // //if (all(service, null, options, config, redirects).includes(initiator.origin) && reverse(initiator) == url) return "BYPASSTAB" - // } + if (initiator && all(service, null, options, config, redirects).includes(initiator.origin)) return "BYPASSTAB" if (config.services[service].frontends[frontend].instanceList) { let instanceList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom] @@ -99,7 +94,7 @@ function redirect(url, type, initiator, forceRedirection) { } else if (config.services[service].frontends[frontend].singleInstance) randomInstance = config.services[service].frontends[frontend].singleInstance break } - if (!frontend) return + if (!frontend || !randomInstance) return // Here is a (temperory) space for defining constants required in 2 or more switch cases. // When possible, try have the two switch cases share all their code as done with searx and searxng. @@ -119,7 +114,7 @@ function redirect(url, type, initiator, forceRedirection) { } return [zoom, lon, lat] } - + console.log(frontend) switch (frontend) { // This is where all instance-specific code must be ran to convert the service url to one that can be understood by the frontend. case "beatbump": diff --git a/src/config/config.json b/src/config/config.json index e7d468b6..011347f5 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -702,7 +702,7 @@ "frontends": { "send": { "name": "Send", - "instanceList": "true" + "instanceList": true } }, "targets": [ -- cgit 1.4.1