From df07b8a7f43f0f68c0125c39abf6aca37d767d54 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Mon, 11 Oct 2021 10:04:25 +0700 Subject: Add redirect from Medium to Scribe Multiple Medium domains would be redirected to two known Scribe instances: scribe.rip scribe.nixnet.services --- src/assets/javascripts/helpers/medium.js | 26 +++++++++++++ src/pages/background/background.js | 63 ++++++++++++++++++++++++++++++++ src/pages/options/options.html | 32 ++++++++++++++++ src/pages/options/options.js | 22 +++++++++++ 4 files changed, 143 insertions(+) create mode 100644 src/assets/javascripts/helpers/medium.js diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js new file mode 100644 index 00000000..c2a3d291 --- /dev/null +++ b/src/assets/javascripts/helpers/medium.js @@ -0,0 +1,26 @@ +const targets = [ + "medium.com", + /.*.medium.com/, + /* Other domains of medium blogs, source(s): + * https://findingtom.com/best-medium-blogs-to-follow/#1-forge + * */ + "towardsdatascience.com", + "uxdesign.cc", + "uxplanet.org", + "betterprogramming.pub", + "aninjusticemag.com", + "betterhumans.pub", + "psiloveyou.xyz", + "entrepreneurshandbook.co", + "blog.coinbase.com" +]; + +const redirects = [ + "https://scribe.rip", + "https://scribe.nixnet.services/" +]; + +export default { + targets, + redirects, +}; diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 9b8c3a13..453788c8 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -5,6 +5,7 @@ import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; import youtubeHelper from "../../assets/javascripts/helpers/youtube.js"; import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; import mapsHelper from "../../assets/javascripts/helpers/google-maps.js"; +import mediumHelper from "../../assets/javascripts/helpers/medium.js"; import redditHelper from "../../assets/javascripts/helpers/reddit.js"; import searchHelper from "../../assets/javascripts/helpers/google-search.js"; import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js"; @@ -13,6 +14,9 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; const nitterInstances = twitterHelper.redirects; const twitterDomains = twitterHelper.targets; const youtubeDomains = youtubeHelper.targets; +const mediumDomains = mediumHelper.targets; +const scribeInstances = mediumHelper.redirects; +const scribeDefault = mediumHelper.redirects[0]; const invidiousInstances = youtubeHelper.redirects; const instagramDomains = instagramHelper.targets; const bibliogramInstances = instagramHelper.redirects; @@ -43,6 +47,7 @@ let disableInvidious; let disableBibliogram; let disableOsm; let disableReddit; +let disableScribe; let disableSearchEngine; let disableSimplyTranslate; let disableWikipedia; @@ -50,6 +55,7 @@ let nitterInstance; let invidiousInstance; let bibliogramInstance; let osmInstance; +let scribeInstance; let redditInstance; let searchEngineInstance; let simplyTranslateInstance; @@ -77,6 +83,7 @@ browser.storage.sync.get( "bibliogramInstance", "osmInstance", "redditInstance", + "scribeInstance", "searchEngineInstance", "simplyTranslateInstance", "wikipediaInstance", @@ -85,6 +92,7 @@ browser.storage.sync.get( "disableBibliogram", "disableOsm", "disableReddit", + "disableScribe", "disableSearchEngine", "disableSimplyTranslate", "disableWikipedia", @@ -108,6 +116,7 @@ browser.storage.sync.get( bibliogramInstance = result.bibliogramInstance; osmInstance = result.osmInstance || osmDefault; redditInstance = result.redditInstance || redditDefault; + scribeInstance = result.scribeInstance || scribeDefault; searchEngineInstance = result.searchEngineInstance; simplyTranslateInstance = result.simplyTranslateInstance || simplyTranslateDefault; @@ -169,6 +178,9 @@ browser.storage.onChanged.addListener((changes) => { if ("redditInstance" in changes) { redditInstance = changes.redditInstance.newValue || redditDefault; } + if ("scribeInstance" in changes) { + scribeInstance = changes.scribeInstance.newValue || scribeDefault; + } if ("searchEngineInstance" in changes) { searchEngineInstance = changes.searchEngineInstance.newValue; } @@ -515,6 +527,53 @@ function redirectReddit(url, initiator, type) { return `${redditInstance}${url.pathname}${url.search}`; } +function redirectScribe(url, initiator, type) { + if (disableScribe || isException(url, initiator)) { + return null; + } + // Do not redirect when already on the selected view + if ( + (initiator && initiator.origin === scribeInstance) || + url.origin === scribeInstance + ) { + return null; + } + // Do not redirect exclusions nor anything other than main_frame + if (type !== "main_frame") { + return null; + } + if (url.host === "i.redd.it") { + if (scribeInstance.includes("libredd")) { + return `${scribeInstance}/img${url.pathname}${url.search}`; + } else if (scribeInstance.includes("teddit")) { + // As of 2021-04-09, redirects for teddit images are nontrivial: + // - navigating to the image before ever navigating to its page causes + // 404 error (probably needs fix on teddit project) + // - some image links on teddit are very different + // Therefore, don't support redirecting image links for teddit. + return null; + } else { + return null; + } + } else if (url.host === "redd.it") { + if ( + scribeInstance.includes("teddit") && + !url.pathname.match(/^\/+[^\/]+\/+[^\/]/) + ) { + // As of 2021-04-22, redirects for teddit redd.it/foo links don't work. + // It appears that adding "/comments" as a prefix works, so manually add + // that prefix if it is missing. Even though redd.it/comments/foo links + // don't seem to work or exist, guard against affecting those kinds of + // paths. + // + // Note the difference between redd.it/comments/foo (doesn't work) and + // teddit.net/comments/foo (works). + return `${scribeInstance}/comments${url.pathname}${url.search}`; + } + } + return `${scribeInstance}${url.pathname}${url.search}`; +} + function redirectSearchEngine(url, initiator) { if (disableSearchEngine || isException(url, initiator)) { return null; @@ -607,6 +666,10 @@ browser.webRequest.onBeforeRequest.addListener( redirect = { redirectUrl: redirectReddit(url, initiator, details.type), }; + } else if (mediumDomains.includes(url.host)) { + redirect = { + redirectUrl: redirectScribe(url, initiator, details.type), + }; } else if (url.href.match(googleSearchRegex)) { redirect = { redirectUrl: redirectSearchEngine(url, initiator), diff --git a/src/pages/options/options.html b/src/pages/options/options.html index 65f1e9ab..43db929d 100644 --- a/src/pages/options/options.html +++ b/src/pages/options/options.html @@ -141,6 +141,28 @@ + +
+ + + + + + + +
+

+ Scribe Redirects +

+
+   + +
@@ -256,6 +278,16 @@ /> +
+

Scribe Instance

+
+ +
+

Search Engine Instance

diff --git a/src/pages/options/options.js b/src/pages/options/options.js index 91e7ac05..938abd24 100644 --- a/src/pages/options/options.js +++ b/src/pages/options/options.js @@ -6,6 +6,7 @@ import youtubeHelper from "../../assets/javascripts/helpers/youtube.js"; import instagramHelper from "../../assets/javascripts/helpers/instagram.js"; import mapsHelper from "../../assets/javascripts/helpers/google-maps.js"; import redditHelper from "../../assets/javascripts/helpers/reddit.js"; +import mediumHelper from "../../assets/javascripts/helpers/medium.js"; import searchHelper from "../../assets/javascripts/helpers/google-search.js"; import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js"; import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js"; @@ -15,6 +16,7 @@ const invidiousInstances = youtubeHelper.redirects; const bibliogramInstances = instagramHelper.redirects; const osmInstances = mapsHelper.redirects; const redditInstances = redditHelper.redirects; +const scribeInstances = mediumHelper.redirects; const searchEngineInstances = searchHelper.redirects; const simplyTranslateInstances = googleTranslateHelper.redirects; const wikipediaInstances = wikipediaHelper.redirects; @@ -24,6 +26,7 @@ const autocompletes = [ { id: "bibliogram-instance", instances: bibliogramInstances }, { id: "osm-instance", instances: osmInstances }, { id: "reddit-instance", instances: redditInstances }, + { id: "scribe-instance", instances: scribeInstances }, { id: "search-engine-instance", instances: searchEngineInstances.map((instance) => instance.link), @@ -38,6 +41,7 @@ let invidiousInstance = document.getElementById("invidious-instance"); let bibliogramInstance = document.getElementById("bibliogram-instance"); let osmInstance = document.getElementById("osm-instance"); let redditInstance = document.getElementById("reddit-instance"); +let scribeInstance = document.getElementById("scribe-instance"); let searchEngineInstance = document.getElementById("search-engine-instance"); let simplyTranslateInstance = document.getElementById( "simply-translate-instance" @@ -48,6 +52,7 @@ let disableInvidious = document.getElementById("disable-invidious"); let disableBibliogram = document.getElementById("disable-bibliogram"); let disableOsm = document.getElementById("disable-osm"); let disableReddit = document.getElementById("disable-reddit"); +let disableScribe = document.getElementById("disable-scribe"); let disableSearchEngine = document.getElementById("disable-search-engine"); let disableSimplyTranslate = document.getElementById( "disable-simply-translate" @@ -103,6 +108,7 @@ browser.storage.sync.get( "bibliogramInstance", "osmInstance", "redditInstance", + "scribeInstance", "searchEngineInstance", "simplyTranslateInstance", "wikipediaInstance", @@ -111,6 +117,7 @@ browser.storage.sync.get( "disableBibliogram", "disableOsm", "disableReddit", + "disableScribe", "disableSearchEngine", "disableSimplyTranslate", "disableWikipedia", @@ -139,6 +146,7 @@ browser.storage.sync.get( bibliogramInstance.value = result.bibliogramInstance || ""; osmInstance.value = result.osmInstance || ""; redditInstance.value = result.redditInstance || ""; + scribeInstance.value = result.scribeInstance || ""; searchEngineInstance.value = (result.searchEngineInstance && result.searchEngineInstance.link) || ""; simplyTranslateInstance.value = result.simplyTranslateInstance || ""; @@ -148,6 +156,7 @@ browser.storage.sync.get( disableBibliogram.checked = !result.disableBibliogram; disableOsm.checked = !result.disableOsm; disableReddit.checked = !result.disableReddit; + disableScribe.checked = !result.disableScribe; disableSearchEngine.checked = !result.disableSearchEngine; disableSimplyTranslate.checked = !result.disableSimplyTranslate; disableWikipedia.checked = !result.disableWikipedia; @@ -311,6 +320,15 @@ const redditInstanceChange = debounce(() => { }, 500); redditInstance.addEventListener("input", redditInstanceChange); +const scribeInstanceChange = debounce(() => { + if (scribeInstance.checkValidity()) { + browser.storage.sync.set({ + scribeInstance: parseURL(scribeInstance.value), + }); + } +}, 500); +scribeInstance.addEventListener("input", scribeInstanceChange); + const searchEngineInstanceChange = debounce(() => { const instance = searchEngineInstances.find( (instance) => instance.link === searchEngineInstance.value @@ -369,6 +387,10 @@ disableReddit.addEventListener("change", (event) => { browser.storage.sync.set({ disableReddit: !event.target.checked }); }); +disableScribe.addEventListener("change", (event) => { + browser.storage.sync.set({ disableScribe: !event.target.checked }); +}); + disableSearchEngine.addEventListener("change", (event) => { browser.storage.sync.set({ disableSearchEngine: !event.target.checked }); }); -- cgit 1.4.1 From 362bef86586f04f615b97fdb740424e6568002e0 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Tue, 12 Oct 2021 15:24:16 +0700 Subject: Fix copy-and-replace mistakes - Change scribe's default input to 'Random instance (none selected)' - Add random pool variables and functions for scribe --- src/pages/background/background.js | 71 ++++++++++++++++++-------------------- src/pages/options/options.html | 2 +- src/pages/options/options.js | 13 ++++++- 3 files changed, 46 insertions(+), 40 deletions(-) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 453788c8..d7e37591 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -72,6 +72,7 @@ let useFreeTube; let nitterRandomPool; let invidiousRandomPool; let bibliogramRandomPool; +let scribeRandomPool; let exceptions; window.browser = window.browser || window.chrome; @@ -108,6 +109,7 @@ browser.storage.sync.get( "nitterRandomPool", "invidiousRandomPool", "bibliogramRandomPool", + "scribeRandomPool", "exceptions", ], (result) => { @@ -152,6 +154,9 @@ browser.storage.sync.get( bibliogramRandomPool = result.bibliogramRandomPool ? result.bibliogramRandomPool.split(",") : commonHelper.filterInstances(bibliogramInstances); + scribeRandomPool = result.scribeRandomPool + ? result.scribeRandomPool.split(",") + : commonHelper.filterInstances(bibliogramInstances); } ); @@ -244,6 +249,9 @@ browser.storage.onChanged.addListener((changes) => { if ("bibliogramRandomPool" in changes) { bibliogramRandomPool = changes.bibliogramRandomPool.newValue.split(","); } + if ("scribeRandomPool" in changes) { + scribeRandomPool = changes.scribeRandomPool.newValue.split(","); + } if ("exceptions" in changes) { exceptions = changes.exceptions.newValue.map((e) => { return new RegExp(e); @@ -527,51 +535,38 @@ function redirectReddit(url, initiator, type) { return `${redditInstance}${url.pathname}${url.search}`; } -function redirectScribe(url, initiator, type) { +function redirectMedium(url, initiator) { if (disableScribe || isException(url, initiator)) { return null; } - // Do not redirect when already on the selected view - if ( - (initiator && initiator.origin === scribeInstance) || - url.origin === scribeInstance - ) { + if (url.pathname.split("/").includes("home")) { return null; } - // Do not redirect exclusions nor anything other than main_frame - if (type !== "main_frame") { + if ( + isFirefox() && + initiator && + (initiator.origin === scribeInstance || + scribeInstances.includes(initiator.origin) || + mediumDomains.includes(initiator.host)) + ) { + browser.storage.sync.set({ + redirectBypassFlag: true, + }); return null; } - if (url.host === "i.redd.it") { - if (scribeInstance.includes("libredd")) { - return `${scribeInstance}/img${url.pathname}${url.search}`; - } else if (scribeInstance.includes("teddit")) { - // As of 2021-04-09, redirects for teddit images are nontrivial: - // - navigating to the image before ever navigating to its page causes - // 404 error (probably needs fix on teddit project) - // - some image links on teddit are very different - // Therefore, don't support redirecting image links for teddit. - return null; - } else { - return null; - } - } else if (url.host === "redd.it") { - if ( - scribeInstance.includes("teddit") && - !url.pathname.match(/^\/+[^\/]+\/+[^\/]/) - ) { - // As of 2021-04-22, redirects for teddit redd.it/foo links don't work. - // It appears that adding "/comments" as a prefix works, so manually add - // that prefix if it is missing. Even though redd.it/comments/foo links - // don't seem to work or exist, guard against affecting those kinds of - // paths. - // - // Note the difference between redd.it/comments/foo (doesn't work) and - // teddit.net/comments/foo (works). - return `${scribeInstance}/comments${url.pathname}${url.search}`; - } + if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") { + return `${ + scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) + }/pic/${encodeURIComponent(url.href)}`; + } else if (url.pathname.split("/").includes("tweets")) { + return `${ + scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) + }${url.pathname.replace("/tweets", "")}${url.search}`; + } else { + return `${ + scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) + }${url.pathname}${url.search}`; } - return `${scribeInstance}${url.pathname}${url.search}`; } function redirectSearchEngine(url, initiator) { @@ -668,7 +663,7 @@ browser.webRequest.onBeforeRequest.addListener( }; } else if (mediumDomains.includes(url.host)) { redirect = { - redirectUrl: redirectScribe(url, initiator, details.type), + redirectUrl: redirectMedium(url, initiator, details.type), }; } else if (url.href.match(googleSearchRegex)) { redirect = { diff --git a/src/pages/options/options.html b/src/pages/options/options.html index 43db929d..bafff5f8 100644 --- a/src/pages/options/options.html +++ b/src/pages/options/options.html @@ -284,7 +284,7 @@
diff --git a/src/pages/options/options.js b/src/pages/options/options.js index 938abd24..71bdc99e 100644 --- a/src/pages/options/options.js +++ b/src/pages/options/options.js @@ -73,6 +73,7 @@ let useFreeTube = document.getElementById("use-freetube"); let nitterRandomPool = document.getElementById("nitter-random-pool"); let invidiousRandomPool = document.getElementById("invidious-random-pool"); let bibliogramRandomPool = document.getElementById("bibliogram-random-pool"); +let scribeRandomPool = document.getElementById("scribe-random-pool"); let exceptions; window.browser = window.browser || window.chrome; @@ -137,6 +138,7 @@ browser.storage.sync.get( "nitterRandomPool", "invidiousRandomPool", "bibliogramRandomPool", + "scribeRandomPool", ], (result) => { theme.value = result.theme || ""; @@ -184,6 +186,9 @@ browser.storage.sync.get( bibliogramRandomPool.value = result.bibliogramRandomPool || commonHelper.filterInstances(bibliogramInstances); + scribeRandomPool.value = + result.scribeRandomPool || + commonHelper.filterInstances(scribeInstances); } ); @@ -474,7 +479,13 @@ const bibliogramRandomPoolChange = debounce(() => { bibliogramRandomPool: bibliogramRandomPool.value, }); }, 500); -bibliogramRandomPool.addEventListener("input", bibliogramRandomPoolChange); + +const scribeRandomPoolChange = debounce(() => { + browser.storage.sync.set({ + scribeRandomPool: scribeRandomPool.value, + }); +}, 500); +scribeRandomPool.addEventListener("input", scribeRandomPoolChange); theme.addEventListener("change", (event) => { const value = event.target.options[theme.selectedIndex].value; -- cgit 1.4.1 From 9acdf590994fb93fe7a24a10244348769a360907 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Wed, 13 Oct 2021 15:59:42 +0700 Subject: Restore the mistakenly removed line Bibliogram randomization would be removed if that removal were merged. --- src/pages/options/options.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/options/options.js b/src/pages/options/options.js index 71bdc99e..4a148dfd 100644 --- a/src/pages/options/options.js +++ b/src/pages/options/options.js @@ -479,6 +479,7 @@ const bibliogramRandomPoolChange = debounce(() => { bibliogramRandomPool: bibliogramRandomPool.value, }); }, 500); +bibliogramRandomPool.addEventListener("input", bibliogramRandomPoolChange); const scribeRandomPoolChange = debounce(() => { browser.storage.sync.set({ -- cgit 1.4.1 From bafc445a5bb2fd377dd43bdc9874e058c20bfe10 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Thu, 14 Oct 2021 22:28:03 +0700 Subject: Remove trailing slash --- src/assets/javascripts/helpers/medium.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js index c2a3d291..9f14902c 100644 --- a/src/assets/javascripts/helpers/medium.js +++ b/src/assets/javascripts/helpers/medium.js @@ -17,7 +17,7 @@ const targets = [ const redirects = [ "https://scribe.rip", - "https://scribe.nixnet.services/" + "https://scribe.nixnet.services" ]; export default { -- cgit 1.4.1 From 4dc7fb4cce36794669ab529a67e644459f151c73 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Sun, 17 Oct 2021 19:30:20 +0700 Subject: Fix copying mistake --- src/pages/background/background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d7e37591..7e2ecb6f 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -156,7 +156,7 @@ browser.storage.sync.get( : commonHelper.filterInstances(bibliogramInstances); scribeRandomPool = result.scribeRandomPool ? result.scribeRandomPool.split(",") - : commonHelper.filterInstances(bibliogramInstances); + : commonHelper.filterInstances(scribeInstances); } ); -- cgit 1.4.1 From e9f957f7d55a940aaa4600dc1d3209bb53e71a39 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Sun, 17 Oct 2021 19:30:51 +0700 Subject: Add "New" badge for Scribe --- src/pages/options/options.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/options/options.html b/src/pages/options/options.html index bafff5f8..7ae481c2 100644 --- a/src/pages/options/options.html +++ b/src/pages/options/options.html @@ -210,7 +210,7 @@
-

Wikipedia Redirects

+

Wikipedia Redirects

-

Scribe Instance

+

Scribe Instance

Date: Sun, 17 Oct 2021 19:45:16 +0700 Subject: Add missing scripts for Scribe in popup Also fix Wikipedia's typo --- src/pages/popup/popup.html | 32 +++++++++++++++++++++++++++----- src/pages/popup/popup.js | 7 +++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html index ada7e756..6b084880 100644 --- a/src/pages/popup/popup.html +++ b/src/pages/popup/popup.html @@ -186,25 +186,47 @@
- +
+ + + + + + +
+

+ Wikipedia Redirects +

+
+   + +
+
+ +
+ diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 4309c601..13d04f6b 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -8,6 +8,7 @@ let disableReddit = document.querySelector("#disable-reddit"); let disableSearchEngine = document.querySelector("#disable-searchEngine"); let disableSimplyTranslate = document.querySelector("#disable-simplyTranslate"); let disableWikipedia = document.querySelector("#disable-wikipedia"); +let disableScribe = document.querySelector("#disable-scribe"); let version = document.querySelector("#version"); window.browser = window.browser || window.chrome; @@ -22,6 +23,7 @@ browser.storage.sync.get( "disableSearchEngine", "disableSimplyTranslate", "disableWikipedia", + "disableScribe", "theme", ], (result) => { @@ -34,6 +36,7 @@ browser.storage.sync.get( disableSearchEngine.checked = !result.disableSearchEngine; disableSimplyTranslate.checked = !result.disableSimplyTranslate; disableWikipedia.checked = !result.disableWikipedia; + disableScribe.checked = !result.disableScribe; } ); @@ -71,6 +74,10 @@ disableWikipedia.addEventListener("change", (event) => { browser.storage.sync.set({ disableWikipedia: !event.target.checked }); }); +disableScribe.addEventListener("change", (event) => { + browser.storage.sync.set({ disableScribe: !event.target.checked }); +}); + document.querySelector("#more-options").addEventListener("click", () => { browser.runtime.openOptionsPage(); }); -- cgit 1.4.1 From 03d5354430403751d915ddec696d86a823422994 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Sun, 17 Oct 2021 20:03:02 +0700 Subject: Add data attributes for scribe random pool This fixes random pool dropdown brokeness --- src/pages/options/options.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/pages/options/options.html b/src/pages/options/options.html index 7ae481c2..5b68ed10 100644 --- a/src/pages/options/options.html +++ b/src/pages/options/options.html @@ -279,11 +279,14 @@
-

Scribe Instance

+

Scribe Instance

@@ -589,6 +592,16 @@ type="text" />
+
+

+ Scribe random instance pool (comma-separated) +

+ +

-- cgit 1.4.1 From 263626d7d1225c7294ade084fee4ff30f036af2d Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Fri, 29 Oct 2021 20:35:33 +0700 Subject: Remove default scribe instance --- src/pages/background/background.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 7e2ecb6f..3a8103df 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -118,12 +118,13 @@ browser.storage.sync.get( bibliogramInstance = result.bibliogramInstance; osmInstance = result.osmInstance || osmDefault; redditInstance = result.redditInstance || redditDefault; - scribeInstance = result.scribeInstance || scribeDefault; + scribeInstance = result.scribeInstance; searchEngineInstance = result.searchEngineInstance; simplyTranslateInstance = result.simplyTranslateInstance || simplyTranslateDefault; wikipediaInstance = result.wikipediaInstance || wikipediaDefault; disableNitter = result.disableNitter; + disableScribe = result.disableScribe; disableInvidious = result.disableInvidious; disableBibliogram = result.disableBibliogram; disableOsm = result.disableOsm; @@ -554,19 +555,9 @@ function redirectMedium(url, initiator) { }); return null; } - if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") { - return `${ - scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) - }/pic/${encodeURIComponent(url.href)}`; - } else if (url.pathname.split("/").includes("tweets")) { - return `${ - scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) - }${url.pathname.replace("/tweets", "")}${url.search}`; - } else { - return `${ + return `${ scribeInstance || commonHelper.getRandomInstance(scribeRandomPool) }${url.pathname}${url.search}`; - } } function redirectSearchEngine(url, initiator) { -- cgit 1.4.1 From b0da859852cbe60a91d1db2e866abbbe35f404cc Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Fri, 29 Oct 2021 20:55:16 +0700 Subject: Detect setting change for scribe redirect --- src/pages/background/background.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 3a8103df..741bf6a1 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -193,6 +193,9 @@ browser.storage.onChanged.addListener((changes) => { if ("disableNitter" in changes) { disableNitter = changes.disableNitter.newValue; } + if ("disableScribe" in changes) { + disableScribe = changes.disableScribe.newValue; + } if ("disableInvidious" in changes) { disableInvidious = changes.disableInvidious.newValue; } @@ -540,9 +543,6 @@ function redirectMedium(url, initiator) { if (disableScribe || isException(url, initiator)) { return null; } - if (url.pathname.split("/").includes("home")) { - return null; - } if ( isFirefox() && initiator && @@ -654,7 +654,7 @@ browser.webRequest.onBeforeRequest.addListener( }; } else if (mediumDomains.includes(url.host)) { redirect = { - redirectUrl: redirectMedium(url, initiator, details.type), + redirectUrl: redirectMedium(url, initiator), }; } else if (url.href.match(googleSearchRegex)) { redirect = { -- cgit 1.4.1 From 9383a66882899c99d164b7030d69c1384a6815a3 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Fri, 29 Oct 2021 20:55:33 +0700 Subject: Add locale for scribe --- src/_locales/en/messages.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 18a4754e..0f726fae 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -11,6 +11,10 @@ "message": "Nitter Instance", "description": "Label for Nitter instance field option (options)." }, + "scribeInstance": { + "message": "Scribe Instance", + "description": "Label for Scribe instance field option (options)." + }, "invidiousInstance": { "message": "Invidious Instance", "description": "Label for Invidious instance field option (options)." @@ -43,6 +47,10 @@ "message": "Nitter Redirects", "description": "Label for enable/disable Nitter redirects option (options & pop-up)." }, + "disableScribe": { + "message": "Scribe Redirects", + "description": "Label for enable/disable Scribe redirects option (options & pop-up)." + }, "disableInvidious": { "message": "Invidious Redirects", "description": "Label for enable/disable Invidious redirects option (options & pop-up)." @@ -143,9 +151,9 @@ "message": "Use FreeTube over Invidious when possible", "description": "Label for 'Use FreeTube over Invidious when possible' option (options)." }, - "nitterRandomPool": { - "message": "Nitter random instance pool (comma-separated)", - "description": "Label for 'Nitter random instance pool (comma-separated)' option (options)." + "scribeRandomPool": { + "message": "Scribe random instance pool (comma-separated)", + "description": "Label for 'Scribe random instance pool (comma-separated)' option (options)." }, "invidiousRandomPool": { "message": "Invidious random instance pool (comma-separated)", -- cgit 1.4.1 From dd9e9dc3632d5d5e1bf4532b3d3bffbb4dd606a4 Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Fri, 29 Oct 2021 21:03:42 +0700 Subject: Add Scribe to README --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 28958aa3..acd468e5 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ ## About -A web extension that redirects _Twitter, YouTube, Instagram, Google Maps, Reddit, Google Search, & Google Translate_ requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/iv-org/invidious), [FreeTube](https://github.com/FreeTubeApp/FreeTube), [Bibliogram](https://sr.ht/~cadence/bibliogram/), [OpenStreetMap](https://www.openstreetmap.org/), [SimplyTranslate](https://git.sr.ht/~metalune/simplytranslate_web) & Private Search Engines like [DuckDuckGo](https://duckduckgo.com) and [Startpage](https://startpage.com). +A web extension that redirects _Twitter, YouTube, Instagram, Google Maps, Reddit, Medium, Google Search, & Google Translate_ requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/iv-org/invidious), [FreeTube](https://github.com/FreeTubeApp/FreeTube), [Bibliogram](https://sr.ht/~cadence/bibliogram/), [OpenStreetMap](https://www.openstreetmap.org/), [Scribe](https://sr.ht/~edwardloveall/scribe/), [SimplyTranslate](https://git.sr.ht/~metalune/simplytranslate_web) & Private Search Engines like [DuckDuckGo](https://duckduckgo.com) and [Startpage](https://startpage.com). It's possible to toggle all redirects on and off. The extension will default to using random instances if none are selected. If these instances are not working, you can try and set a custom instance from the list below. @@ -47,6 +47,9 @@ Privacy Redirect allows setting custom instances, instances can be found here: - [Mojeek](https://www.mojeek.com) - [Presearch](https://www.presearch.org) - [Whoogle](https://benbusby.com/projects/whoogle-search/) +- [Scribe](https://sr.ht/~edwardloveall/scribe/) instances:, an alternative frontend for Medium: + - [scribe.rip](https://scribe.rip/) + - [NixNet scribe](scribe.nixnet.services/) ## Development -- cgit 1.4.1 From 044086d4e7cc9ce60259c50a3da319a09c6db37c Mon Sep 17 00:00:00 2001 From: Ngô Ngọc Đức Huy Date: Sat, 6 Nov 2021 17:33:58 +0700 Subject: Restore accidentally deleted lines --- src/_locales/en/messages.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 0f726fae..b2988eca 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -151,6 +151,10 @@ "message": "Use FreeTube over Invidious when possible", "description": "Label for 'Use FreeTube over Invidious when possible' option (options)." }, + "nitterRandomPool": { + "message": "Nitter random instance pool (comma-separated)", + "description": "Label for 'Nitter random instance pool (comma-separated)' option (options)." + }, "scribeRandomPool": { "message": "Scribe random instance pool (comma-separated)", "description": "Label for 'Scribe random instance pool (comma-separated)' option (options)." -- cgit 1.4.1

- Wikipedia Redirects + Scribe Redirects

  - +