Jump to content

User:Werdna/forcesecure.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// ==UserScript==
// @name           Rewrite diffs
// @namespace      http://www.epstone.net
// @description    Rewrites diff links to point to secure.wikimedia.org instead
// @include        https://secure.wikimedia.org/*,http://*.*wiki*.org/*
// ==/UserScript==

var WikiLinkRegex = /http\:\/\/(\w+)\.(\w+)\.org\/(.+)/;

if (WikiLinkRegex.test(window.location)) {
	var newhref = window.location.href;
	newhref = newhref.replace( WikiLinkRegex, "http://secure.wikimedia.org/$2/$1/$3" );
	newhref = newhref.replace( /\/wikimedia\//, '/wikipedia/' );
	newhref = newhref.replace( /\/(\w+)\/www\//, '/wikipedia/$1' );
	window.location.replace(newhref);
}

var div = document.getElementById('mw_contentholder');
if (!div)
	div = document.getElementById('bodyContent');
	
var links = div.getElementsByTagName('a');

var i = 0;
var length = links.length;
var shown = 0;

for (i=0;i<length;i++)
{
	link = links[i];
	if (link && WikiLinkRegex.test(link.href))
	{
		newhref = link.href.replace( WikiLinkRegex, "http://secure.wikimedia.org/$2/$1/$3" );
		newhref = newhref.replace( /\/wikimedia\//, '/wikipedia/' );
		newhref = newhref.replace( /\/(\w+)\/www\//, '/wikipedia/$1/' );
		link.href = newhref;
	}
}