shore up browser settings - dotfiles - These are my dotfiles. There are many like it, but these are mine.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 5ecfc9b94f8a19c3bd7230e3d3a25c39b4f277e4
 (DIR) parent da516cf043b452115b244b84b4d8c33b1d6620bd
 (HTM) Author: Jay Scott <me@jay.scot>
       Date:   Sun, 15 Jan 2023 22:55:53 +0000
       
       shore up browser settings
       
       Diffstat:
         M qutebrowser/config.py               |       1 +
         D qutebrowser/scripts/redirectors.py  |      26 --------------------------
         A qutebrowser/scripts/redirects.py    |      70 +++++++++++++++++++++++++++++++
         M sfeed/sfeedrc                       |       1 +
       
       4 files changed, 72 insertions(+), 26 deletions(-)
       ---
 (DIR) diff --git a/qutebrowser/config.py b/qutebrowser/config.py
       @@ -5,6 +5,7 @@ try:
        
            # gruvbox colour theme
            config.source('scripts/gruvbox.py')
       +    config.source('scripts/redirects.py')
        
        except ImportError:
            pass
 (DIR) diff --git a/qutebrowser/scripts/redirectors.py b/qutebrowser/scripts/redirectors.py
       @@ -1,26 +0,0 @@
       -import operator, re, typing
       -from urllib.parse import urljoin
       -
       -from qutebrowser.api import interceptor, message
       -from PyQt5.QtCore import QUrl
       -
       -
       -REDIRECT_MAP = {
       -        "reddit.com": operator.methodcaller('setHost', 'old.reddit.com'),
       -        "www.reddit.com": operator.methodcaller('setHost', 'old.reddit.com'),
       -    "twitter.com": operator.methodcaller('setHost', 'nitter.pussthecat.org'),
       -    "www.twitter.com": operator.methodcaller('setHost', 'nitter.pussthecat.org'),
       -}
       -
       -def int_fn(info: interceptor.Request):
       -        if (info.resource_type != interceptor.ResourceType.main_frame or
       -                        info.request_url.scheme() in {"data", "blob"}):
       -                return
       -        url = info.request_url
       -        redir = REDIRECT_MAP.get(url.host())
       -        if redir is not None and redir(url) is not False:
       -                message.info("Redirecting to " + url.toString())
       -                info.redirect(url)
       -
       -
       -interceptor.register(int_fn)
 (DIR) diff --git a/qutebrowser/scripts/redirects.py b/qutebrowser/scripts/redirects.py
       @@ -0,0 +1,70 @@
       +from qutebrowser.api import interceptor
       +from urllib.parse import urljoin
       +from PyQt5.QtCore import QUrl
       +import operator
       +
       +o = operator.methodcaller
       +s = 'setHost'
       +i = interceptor
       +
       +def farside(url: QUrl, i) -> bool:
       +    url.setHost('farside.link')
       +    p = url.path().strip('/')
       +    url.setPath(urljoin(i, p))
       +    return True
       +
       +def nitter(url: QUrl) -> bool:
       +    return farside(url, '/nitter/')
       +def rimgo(url: QUrl) -> bool:
       +    return farside(url, '/rimgo/')
       +def scribe(url: QUrl) -> bool:
       +    return farside(url, '/scribe/')
       +def wikiless(url: QUrl) -> bool:
       +    return farside(url, '/wikiless/')
       +def invid(url: QUrl) -> bool:
       +    return farside(url, '/invidious/')
       +def reddit(url: QUrl) -> bool:
       +    return farside(url, '/libreddit/')
       +def bibliogram(url: QUrl) -> bool:
       +    return farside(url, '/bibliogram/')
       +def simplytranslate(url: QUrl) -> bool:
       +    return farside(url, '/simplytranslate/')
       +def proxitok(url: QUrl) -> bool:
       +    return farside(url, '/proxitok/')
       +def querte (url: QUrl) -> bool:
       +    return farside(url, '/querte/')
       +
       +map = {
       +        "reddit.com": reddit,
       +        "www.reddit.com": reddit,
       +        "old.reddit.com": reddit,
       +
       +        "youtu.be": invid,
       +        "youtube.com": invid,
       +        "www.youtube.com": invid,
       +
       +        "twitter.com": nitter,
       +        "mobile.twitter.com": nitter,
       +
       +        "imgur.com" : rimgo,
       +        "medium.com" : scribe,
       +        "en.wikipedia.org" : wikiless,
       +        "www.instagram.com": bibliogram,
       +        "translate.google.com" : simplytranslate,
       +        "vm.tiktok.com" : proxitok,
       +        "www.tiktok.com" : proxitok,
       +        "www.quora.com": querte,
       +
       +        "www.twitch.tv" : o(s, 'm.twitch.tv'),
       +        "tumblr.com" : o(s, 'splashblr.fly.dev'),
       +        "www.npr.org" : o(s, 'text.npr.org'),
       +        }
       +def f(info: i.Request):
       +    if (info.resource_type != i.ResourceType.main_frame or
       +            info.request_url.scheme() in {"data", "blob"}):
       +        return
       +    url = info.request_url
       +    redir = map.get(url.host())
       +    if redir is not None and redir(url) is not False:
       +        info.redirect(url)
       +i.register(f)
 (DIR) diff --git a/sfeed/sfeedrc b/sfeed/sfeedrc
       @@ -17,6 +17,7 @@ feeds() {
                feed 'tvtorrents' 'https://showrss.info/other/all.rss'
                feed 'linuxtorrents' 'http://feed.rutracker.cc/atom/f/1992.atom'
                feed 'gamingonlinux' 'https://www.gamingonlinux.com/article_rss.php'
       +        feed 'lwn' 'https://lwn.net/headlines/rss'
                # apps
                feed 'qutebrowser' 'https://blog.qutebrowser.org/feeds/all.atom.xml'
                feed 'rdrview' 'https://github.com/eafer/rdrview/commits/master.atom'