#!/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)