aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-08-26 15:22:09 +1000
committerYuchen Pei <id@ypei.org>2023-09-09 14:31:52 +1000
commit34e527313edbcc7d41afa4f2992cfb4fc10ba81c (patch)
tree9052f388ff6f99ccace115bb009e38537515402f
parentb48f2c46114e1e5e997b0e58e4402699686bd540 (diff)
Add extension preferences to Redirector.HEADmaster
A set of preloaded redirects. Caveat: still need to open the redirect tab before the redirection is in effect.
-rw-r--r--js/redirectorpage.js381
-rw-r--r--manifest.json4
2 files changed, 365 insertions, 20 deletions
diff --git a/js/redirectorpage.js b/js/redirectorpage.js
index 38e1331..d1219ec 100644
--- a/js/redirectorpage.js
+++ b/js/redirectorpage.js
@@ -1,3 +1,362 @@
+var DEFAULT_REDIRECTS = [
+ {
+ "description": "youtube to invidious",
+ "exampleUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
+ "exampleResult": "https://yewtu.be/watch?v=dQw4w9WgXcQ",
+ "error": null,
+ "includePattern": "https://www.youtube.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://yewtu.be/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "twitter to nitter",
+ "exampleUrl": "https://twitter.com/fsf/status/1376714994721689601",
+ "exampleResult": "https://nitter.net/fsf/status/1376714994721689601",
+ "error": null,
+ "includePattern": "https://twitter.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://nitter.net/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "reddit to teddit",
+ "exampleUrl": "https://www.reddit.com/r/webhosting/comments/izq39w/hiding_public_ip/",
+ "exampleResult": "https://teddit.net/r/webhosting/comments/izq39w/hiding_public_ip/",
+ "error": null,
+ "includePattern": "https://www.reddit.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://teddit.net/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": true,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "old reddit to teddit",
+ "exampleUrl": "https://old.reddit.com/r/webhosting/comments/izq39w/hiding_public_ip/",
+ "exampleResult": "https://teddit.net/r/webhosting/comments/izq39w/hiding_public_ip/",
+ "error": null,
+ "includePattern": "https://old.reddit.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://teddit.net/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": true,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "Google to ddg",
+ "exampleUrl": "https://www.google.com/search?q=example",
+ "exampleResult": "https://html.duckduckgo.com/html?q=example",
+ "error": null,
+ "includePattern": "https://www.google.com/search?q=*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://html.duckduckgo.com/html?q=$1",
+ "patternType": "W",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "instagram to bibliogram",
+ "exampleUrl": "https://www.instagram.com/natgeo",
+ "exampleResult": "https://bibliogram.froth.zone/u/natgeo",
+ "error": null,
+ "includePattern": "https://www.instagram.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://bibliogram.froth.zone/u/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "ddg to ddg html",
+ "exampleUrl": "https://duckduckgo.com/?t=ffsb&q=xml",
+ "exampleResult": "https://html.duckduckgo.com/html?q=xml",
+ "error": null,
+ "includePattern": "https://duckduckgo.com/(.*)&q=(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://html.duckduckgo.com/html?q=$2",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "imgur to raw image",
+ "exampleUrl": "https://imgur.com/nWjVtF1",
+ "exampleResult": "https://i.imgur.com/nWjVtF1",
+ "error": null,
+ "includePattern": "https://imgur.com/*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://i.imgur.com/$1",
+ "patternType": "W",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "php manual to english",
+ "exampleUrl": "https://www.php.net/manual/ru/function.debug-backtrace.php",
+ "exampleResult": "https://www.php.net/manual/en/function.debug-backtrace.php",
+ "error": null,
+ "includePattern": "https://www.php.net/manual/ru/*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://www.php.net/manual/en/$1",
+ "patternType": "W",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "google sheets",
+ "exampleUrl": "https://docs.google.com/spreadsheets/d/1cKXeUVJ2W2y7FjwnqchNrJllnm11fBW0xWWTF97ewE8/edit?usp=drivesdk",
+ "exampleResult": "https://docs.google.com/spreadsheets/d/1cKXeUVJ2W2y7FjwnqchNrJllnm11fBW0xWWTF97ewE8/export?format=ods",
+ "error": null,
+ "includePattern": "https://docs.google.com/spreadsheets/(.*)/.*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://docs.google.com/spreadsheets/$1/export?format=ods",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "google docs",
+ "exampleUrl": "https://docs.google.com/document/d/1P4bAdnp8JqZRH9EXz4MrQzrb2oCwnJM-myy_jCXLMLo/edit",
+ "exampleResult": "https://docs.google.com/document/d/1P4bAdnp8JqZRH9EXz4MrQzrb2oCwnJM-myy_jCXLMLo/export?format=odt",
+ "error": null,
+ "includePattern": "https://docs.google.com/document/(.*)/.*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://docs.google.com/document/$1/export?format=odt",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "ghc (hackage) -> ghc-9.2.2 (download.haskell.org)",
+ "exampleUrl": "https://hackage.haskell.org/package/ghc/docs/GHC-Unit-State.html#v:lookupPackageName",
+ "exampleResult": "https://downloads.haskell.org/ghc/9.2.2/docs/html/libraries/ghc-9.2.2/GHC-Unit-State.html#v:lookupPackageName",
+ "error": null,
+ "includePattern": "https://hackage.haskell.org/package/ghc/docs/*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://downloads.haskell.org/ghc/9.2.2/docs/html/libraries/ghc-9.2.2/$1",
+ "patternType": "W",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "remove ddg tracking",
+ "exampleUrl": "https://duckduckgo.com/l/?uddg=https%3A%2F%2Fsimplecheatsheet.com%2Forg%2Dmode%2Dtables%2F&rut=dfcd39afaca8d93796ddc81b894abc0c6bb471b47cb709e7331a91a0f88a9ec4",
+ "exampleResult": "https://simplecheatsheet.com/org-mode-tables/",
+ "error": null,
+ "includePattern": "https://duckduckgo.com/l/?uddg=*&rut=*",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "$1",
+ "patternType": "W",
+ "processMatches": "urlDecode",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "tiktok to proxitok",
+ "exampleUrl": "https://www.tiktok.com/@tiktok",
+ "exampleResult": "https://proxitok.pabloferreiro.es/@tiktok",
+ "error": null,
+ "includePattern": "(.*//.*)(tiktok.com)(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://proxitok.pabloferreiro.es$3",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "Imgur -> rimgo",
+ "exampleUrl": "https://imgur.com/a/H8M4rcp",
+ "exampleResult": "https://rimgo.projectsegfau.lt/a/H8M4rcp",
+ "error": null,
+ "includePattern": "^https?://i?.?imgur.com(/.*)?$",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://rimgo.projectsegfau.lt$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "medium.com -> scribe.rip",
+ "exampleUrl": "https://medium.com/@zw3rk/template-haskell-75c7b67f9718",
+ "exampleResult": "https://scribe.rip/@zw3rk/template-haskell-75c7b67f9718",
+ "error": null,
+ "includePattern": "https://medium.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://scribe.rip/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "Quora to Quetre",
+ "exampleUrl": "https://www.quora.com/Linux-Kernel-Why-are-we-using-two-variables-mm_users-and-mm_count-in-mm_struct?share=1",
+ "exampleResult": "https://quetre.esmailelbob.xyz/Linux-Kernel-Why-are-we-using-two-variables-mm_users-and-mm_count-in-mm_struct?share=1",
+ "error": null,
+ "includePattern": "https:\\/\\/.{2,}\\.quora\\.com\\/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://quetre.esmailelbob.xyz/$1",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "IMDb to libremdb",
+ "exampleUrl": "https://www.imdb.com/title/tt0258463/?ref_=tt_sims_tt_t_4",
+ "exampleResult": "https://libremdb.nerdyfam.tech/title/tt0258463/?ref_=tt_sims_tt_t_4",
+ "error": null,
+ "includePattern": "https?:\\/\\/(www\\.)?imdb\\.com\\/(.*)",
+ "excludePattern": "https?://(www\\.)?imdb\\.com/chart/toptv",
+ "patternDesc": "",
+ "redirectUrl": "https://libremdb.nerdyfam.tech/$2",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "fandom to breezewiki",
+ "exampleUrl": "https://minecraft.fandom.com/wiki/Bricks",
+ "exampleResult": "https://breezewiki.com/minecraft/wiki/Bricks",
+ "error": null,
+ "includePattern": "https://*.fandom.com/wiki/*",
+ "excludePattern": "https://www.fandom.com/*",
+ "patternDesc": "",
+ "redirectUrl": "https://breezewiki.com/$1/wiki/$2",
+ "patternType": "W",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "goodreads to biblioreads",
+ "exampleUrl": "https://www.goodreads.com/book/show/5907.The_Hobbit",
+ "exampleResult": "https://biblioreads.ml/book/show/5907.The_Hobbit",
+ "error": null,
+ "includePattern": "^(?:https?://)www\\.goodreads\\.com/(book|work|author|series|quotes)(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://biblioreads.ml/$1$2",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": true,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ },
+ {
+ "description": "reddit to old reddit",
+ "exampleUrl": "https://www.reddit.com/r/torrents/comments/g5yffq/qbittorrent_vs_transmission_how_are_you_guys_even/",
+ "exampleResult": "https://old.reddit.com/r/torrents/comments/g5yffq/qbittorrent_vs_transmission_how_are_you_guys_even/",
+ "error": null,
+ "includePattern": "https://(www)?.reddit.com/(.*)",
+ "excludePattern": "",
+ "patternDesc": "",
+ "redirectUrl": "https://old.reddit.com/$2",
+ "patternType": "R",
+ "processMatches": "noProcessing",
+ "disabled": false,
+ "grouped": false,
+ "appliesTo": [
+ "main_frame"
+ ]
+ }
+];
var REDIRECTS = []; // The global redirects list...
var options = {
isSyncEnabled : false
@@ -280,24 +639,10 @@ function pageLoad() {
if (response.redirects.length === 0) {
//Add example redirect for first time users...
- REDIRECTS.push(new Redirect(
- {
- "description": "Example redirect, try going to http://example.com/anywordhere",
- "exampleUrl": "http://example.com/some-word-that-matches-wildcard",
- "exampleResult": "https://google.com/search?q=some-word-that-matches-wildcard",
- "error": null,
- "includePattern": "http://example.com/*",
- "excludePattern": "",
- "patternDesc": "Any word after example.com leads to google search for that word.",
- "redirectUrl": "https://google.com/search?q=$1",
- "patternType": "W",
- "processMatches": "noProcessing",
- "disabled": false,
- "appliesTo": [
- "main_frame"
- ]
- }
- ));
+ for (var i=0; i < DEFAULT_REDIRECTS.length; i++) {
+ REDIRECTS.push(new Redirect(DEFAULT_REDIRECTS[i]));
+ }
+ saveChanges();
}
renderRedirects();
});
diff --git a/manifest.json b/manifest.json
index 19b88bb..835d676 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Redirector",
"description": "Automatically redirect content based on user-defined rules.",
- "version": "3.5.4",
+ "version": "3.5.4-custom",
"icons": {
"16": "images/icon-light-theme-16.png",
"19": "images/icon-light-theme-19.png",
@@ -89,4 +89,4 @@
}
]
}
-} \ No newline at end of file
+}