summaryrefslogtreecommitdiffstats
path: root/userscripts/untrack-url
diff options
context:
space:
mode:
authorsquibid <me@zacharyscheiman.com>2023-03-17 12:45:54 -0400
committersquibid <me@zacharyscheiman.com>2023-03-17 12:45:54 -0400
commitd4820f3a3bcaed29015d884008a075219e0953cb (patch)
tree3f3a36519c80c37f09d975f20a75cf8707914c9c /userscripts/untrack-url
downloadqutebrowser-d4820f3a3bcaed29015d884008a075219e0953cb.tar.gz
qutebrowser-d4820f3a3bcaed29015d884008a075219e0953cb.tar.bz2
qutebrowser-d4820f3a3bcaed29015d884008a075219e0953cb.zip
initial commitHEADmaster
Diffstat (limited to '')
-rwxr-xr-xuserscripts/untrack-url195
1 files changed, 195 insertions, 0 deletions
diff --git a/userscripts/untrack-url b/userscripts/untrack-url
new file mode 100755
index 0000000..c0a00bf
--- /dev/null
+++ b/userscripts/untrack-url
@@ -0,0 +1,195 @@
+#!/bin/python
+import random
+import sys
+import os
+
+DEST_DOMAINS = {
+ "nitter": [
+ "nitter.net",
+ "nitter.42l.fr",
+ "nitter.pussthecat.org",
+ "nitter.nixnet.services",
+ "nitter.fdn.fr",
+ "nitter.1d4.us",
+ "nitter.kavin.rocks",
+ "nitter.vxempire.xyz",
+ "nitter.unixfox.eu",
+ "nitter.domain.glass",
+ "nitter.eu",
+ "nitter.ethibox.fr",
+ "nitter.namazso.eu",
+ "nitter.mailstation.de",
+ "nitter.actionsack.com",
+ "nitter.cattube.org",
+ "nitter.40two.app",
+ "nitter.skrep.in",
+ "nitter.hu",
+ "nitter.database.red",
+ "nitter.exonip.de",
+ "nitter.dark.fail",
+ "nitter.moomoo.me",
+ "nitter.ortion.xyz",
+ ],
+ "invidious": [
+ "yewtu.be",
+ "invidious.snopyta.org",
+ "invidious.kavin.rocks",
+ "invidious.silkky.cloud",
+ "invidious.048596.xyz",
+ "invidious.exonip.de"
+ "ytprivate.com",
+ "tube.cadence.moe",
+ ],
+ "libreddit": [
+ "libreddit.de",
+ "r.nf",
+ "lr.vern.cc",
+ "reddi.tk",
+ "r.darklab.sh",
+ "libreddit.tux.pizza",
+ ],
+ "bibliogram": [
+ ],
+ "openstreetmap": [
+ "www.openstreetmap.org",
+ ],
+ "imgin": [
+ "imgin.voidnet.tech",
+ ],
+ "simplytranslate": [
+ "simplytranslate.org",
+ ],
+ "breezewiki": [
+ "breezewiki.com"
+ ],
+ "scribe": [
+ "scribe.rip"
+ ],
+ "libremdb": [
+ "libremdb.iket.me",
+ "libremdb.lunar.icu",
+ "binge.whatever.social",
+ ],
+ "neuters": [
+ "neuters.de"
+ ],
+ "wikiless": [
+ "wikiless.org",
+ "wiki.604kph.xyz",
+ "wiki.froth.zone",
+ "wikiless.lunar.icu",
+ "wiki.slipfox.xyz",
+ ],
+ "librarian": [
+ "lbry.projectsegfau.lt",
+ "librarian.esmailelbob.xyz",
+ "lbry.slipfox.xyz",
+ "lbry.mywire.org",
+ "lbry.ooguy.com",
+ "lbn.frail.duckdns.org",
+ ],
+}
+
+SRC_DOMAINS = {
+ "youtube": [
+ "www.youtube.com",
+ "m.youtube.com",
+ "youtube.com",
+ "youtu.be",
+ ],
+ "twitter": [
+ "mobile.twitter.com",
+ "twitter.com",
+ ],
+ "instagram": [
+ "www.instagram.com",
+ "instagram.com",
+ ],
+ "reddit": [
+ "old.reddit.com",
+ "www.reddit.com",
+ "reddit.com",
+ ],
+ "googlemaps": [
+ "maps.google.com",
+ ],
+ "imgur": [
+ "imgur.com",
+ ],
+ "translate": [
+ "translate.google.com",
+ "deepl.com",
+ ],
+ "fandom": [
+ "fandom.com"
+ ],
+ "medium": [
+ "medium.com"
+ ],
+ "imdb": [
+ "imdb.com"
+ ],
+ "reuters": [
+ "reuters.com"
+ ],
+ "wikipedia": [
+ "en.wikipedia.org",
+ "wikipedia.org"
+ ],
+ "odysee": [
+ "odysee.com"
+ ],
+}
+
+SRC_TO_DEST = {
+ "googlemaps": "openstreetmaps",
+ "instagram": "bibliogram",
+ "reddit": "libreddit",
+ "twitter": "nitter",
+ "youtube": "invidious",
+ "imgur": "imgin",
+ "translate": "simplytranslate",
+ "fandom": "breezewiki",
+ "medium": "scribe",
+ "imdb": "libremdb",
+ "reuters": "neuters",
+ "wikipedia": "wikiless",
+ "odysee": "librarian",
+}
+
+DEST_TO_SRC = {
+ dest: src for src,dest in SRC_TO_DEST.items()
+}
+
+def get_dest_type(url):
+ for src in SRC_TO_DEST:
+ for domain in SRC_DOMAINS[src]:
+ if domain in url:
+ return SRC_TO_DEST[src]
+ return ""
+
+def get_untracked_url(url, dest_domain, dest_type):
+ src_type = DEST_TO_SRC[dest_type]
+ src_domains = SRC_DOMAINS[src_type]
+ for domain in src_domains:
+ if domain in url:
+ return url.replace(domain, dest_domain)
+ return ""
+
+url = os.environ['QUTE_URL']
+
+# validate stuff
+if (url == ""):
+ exit(1)
+dest_type = get_dest_type(url)
+if (dest_type == ""):
+ exit(1)
+
+instances = DEST_DOMAINS[dest_type]
+instance = instances[0]
+untracked_url = get_untracked_url(url, instance, dest_type)
+
+QUTE_FIFO = os.environ['QUTE_FIFO']
+with open(QUTE_FIFO, 'a') as qute_fifo:
+ qute_command = f"{'open'} {untracked_url}"
+ qute_fifo.write(qute_command)