Categories
System Administration

Redirecting to mobile Wikipedia

Wikipedia both has a traditional and progressive website that is shown on mobile devices. After years the progressive website is still not shown on desktops sadly enough, but with a browser plugin a redirect can be triggered to the mobile site in most browsers. This as the Redirector plugin works at least in Mozilla Firefox, Google Chrome and Chromium, and will most likely also work in future when Microsoft Edge switches to the Chromium engine.

The configuration in JSON-format below can be imported to setup the Redirector plugin. After enabling the redirect rules, the browser should redirect the Wikipedia to the mobile Wikipedia website.

{
    "createdBy": "Redirector v3.2",
    "createdAt": "2019-04-05T16:30:43.187Z",
    "redirects": [
        {
            "description": "Wikipedia",
            "exampleUrl": "https://en.wikipedia.org/wiki/Wikipedia:About",
            "exampleResult": "https://en.m.wikipedia.org/wiki/Wikipedia:About",
            "error": null,
            "includePattern": "https://([a-z]{2}).(wikipedia|wiktionary|wikiquote|wikisource|wikibooks|wikiversity|wikinews|wikivoyage).org/wiki/(.+)",
            "excludePattern": "\\.m\\.wikipedia\\.org",
            "patternDesc": "",
            "redirectUrl": "https://$1.m.$2.org/wiki/$3",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "appliesTo": [
                "main_frame"
            ]
        }
    ]
}

For now the configuration should cover the main Wikipedia websites and a most of the sub-projects in all languages.

Update 2019-05-25: Adding redirect for Twitter.

{
    "createdBy": "Redirector v3.2",
    "createdAt": "2019-05-24T20:05:14.345Z",
    "redirects": [
        {
            "description": "Twitter",
            "exampleUrl": "https://twitter.com/notifications",
            "exampleResult": "https://mobile.twitter.com/notifications",
            "error": null,
            "includePattern": "https://twitter.com/(.+)",
            "excludePattern": "",
            "patternDesc": "",
            "redirectUrl": "https://mobile.twitter.com/$1",
            "patternType": "R",
            "processMatches": "noProcessing",
            "disabled": false,
            "appliesTo": [
                "main_frame"
            ]
        }
    ]
}
Categories
Internet, Unix en security

Dovecot en verlopen berichten

Vroeger moest je met Courier en oudere versies van Dovecot nog handmatig mail verwijderen die was verlopen. Dit mede om oa Trash en Spam-folders te legen na een x-aantal dagen, maar zodra de mailstore begint te groeien begint dit steeds meer tijd te korten. Daarbij is niet elke implementatie van find even goed waardoor je alleen per 24 uur kan schonen. Maar met oa de komst van Dovecot 1.2 is de expire-plugin op orde en kan met een database backend wordt gekeken welke folders moeten worden geschoond.

De eerste aanpassing is om de configuratie file van Dovecot aan te passen met het volgende en Dovecot te herstarten.

protocol lda {
mail_plugins = expire ...
}
protocol imap {
mail_plugins = expire ...
}
dict {
expire = pgsql:/etc/dovecot/dovecot-dict-expire.conf
}
plugin {
expire = Trash 8 Trash/* 8 Junk 30
expire_dict = proxy::expire
}

Nu Dovecot weet wat de expire policy is voor oa de Junk-folder en de Trash-folder kan in een database wordt bijgehouden wanneer het volgende moment is dat er moet worden opgeruimd. Dit wordt gedaan wanneer er wijzigingen zijn aan de mailbox via de delivery agent of de imap-server. Als je lang genoeg wacht komt je vanzelf in de situatie dat de onderstaande test-commando’s aangeven en er daadwerkelijk kan worden opgeruimd.

$ sudo /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test
Info: user1/Trash: stop, expire time in future: Tue Jan 26 17:15:48 2010
...
sleep
...
$ sudo /usr/sbin/dovecot --exec-mail ext /usr/lib/dovecot/expire-tool.sh --test
Info: user1/Trash: seq=1 uid=35624: Expunge
Info: user1/Trash: seq=2 uid=35625: Expunge
...
Info: user1/Trash: seq=89 uid=35721: Expunge
Info: user1/Trash: timestamp 1263658548 (Tue Jan 26 17:15:48 2010) ->; 1263671263 (Tue Jan 26 20:47:43 2010)
Info: user2/Trash: stop, expire time in future: Tue Jan 26 23:04:22 2010

Als je nu dit commando draait zonder de optie –test dan zullen de verlopen berichten daadwerkelijk worden verwijdert. Nu blijft de vraag hoe vaak je dit moet draaien en dit hangt af van belasting, maar ook hoeveel je kan bezuinigen aan schijfruimte of hoeveel zin het heeft om dit meer dan eens per dag te draaien.