diff options
Diffstat (limited to '')
-rwxr-xr-x | userscripts/untrack-url | 195 |
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) |