Wikimedia secure links

By Ilmari Karonen Last update May 20, 2008 — Installed 136 times.
// ==UserScript==
// @name           Wikimedia secure links
// @namespace      http://vyznev.net/
// @description    Fixes links to Wikimedia websites to use the secure HTTPS interface. (Enabled by default only when already using the secure interface.)
// @include        https://secure.wikimedia.org/*
// ==/UserScript==

GM_addStyle("#bodyContent a[href ^=\"https://secure.wikimedia.org/\"] { background: none; padding-right: 0; }");  // hide padlock

var re = /^http:\/\/(?:([a-z0-9\\-]+)\.)?(wiki(?:[mp]edia|books|quotes|versity|news|source|mediafoundation)|wiktionary|mediawiki)\.org(\/w(?:iki)?\/.*|\/?)$/i;

var exclude = /^http:\/\/((download|upload|secure|bugzilla|www|wikimania[a-z0-9\\-]*)\.)?wikimedia\.org(\/|$)/i;

var links = document.getElementsByTagName("a");

for (var i = 0; i < links.length; i++) {
    var m = re.exec(links[i].href);
    if (!m || !m.length || exclude.test(links[i].href)) continue;

    if (!m[1]) m[1] = "en";
    if (m[3].length <= 1) m[3] = "/wiki/";

    m[1] = m[1].toLowerCase();
    m[2] = m[2].toLowerCase();

    if (m[2] == "wikimedia") { m[2] = "wikipedia"; }
    else if (m[2] == "mediawiki") { m[1] = m[2]; m[2] = "wikipedia"; }
    else if (m[2] == "wikimediafoundation") { m[1] = "foundation" ; m[2] = "wikipedia"; }

    links[i].href = "https://secure.wikimedia.org/" + m[2] + "/" + m[1] + m[3];
}