User:OwenBlacker/global.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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
function AddPurgeTab()
{
   var wgCanonicalNamespace = mw.config.get('wgCanonicalNamespace');
   var wgPageName = mw.config.get('wgPageName');

   if (wgCanonicalNamespace != "Special")
   {
      mw.util.addPortletLink("p-cactions", "/w/index.php?title=" + wgPageName + "&action=purge", "Purge", '', "purge the cache");
      console.log("AddPurgeTab complete.");
   }
   else
   {
      console.log("AddPurgeTab had nothing to do.");
   }
}

function externISBN() {
   var counter = 0;

   var wgCanonicalNamespace = mw.config.get('wgCanonicalNamespace');
   var wgPageName = mw.config.get('wgPageName');
   var wgTitle = mw.config.get('wgTitle');

   for (var i = 0; i < document.links.length; i++)
   {
      if (wgPageName != "Special:BookSources"
         && !(wgTitle == "Book sources" && wgCanonicalNamespace == "Project"))
      {
         if (document.links[i].href.match(/Special:BookSources\/([0-9X -]{10,17})$/i))
         {
           var isbn = new String(RegExp.$1).replace(/[^0-9X]/gi, '');
           document.links[i].href = "https://smile.amazon.co.uk/s?k=" + isbn;
           counter++;
         }
      }
   }

   console.log("externISBN replaced " + counter + " book links.");
}

function FixBadSearches()
{
	if (navigator.userAgent.indexOf("MSIE") > 0) return;

	console.log("FixBadSearches loaded.");

	var elems = $(".noarticletext");
	var url = String(document.location) + '';

	if (
		elems != null && elems.length > 0
		&& url.indexOf("autoredirect=true") < 0
	)
	{
		if (
			(url.indexOf('+') >= 0 || url.indexOf('%2B') >= 0)
			&& url.indexOf('LGBT') < 0
			&& url.indexOf("common.js") < 0
		)
		{
			document.location.replace(url.replace(/\+|(%2B)/gi, '_') + "?autoredirect=true");
		}
		
		if (url.indexOf('Tempalte') >= 0)
		{
			document.location.replace(url.replace(/Tempalte/g, 'Template') + "?autoredirect=true");
		}
		
		if (url.indexOf('lanugage') >= 0)
		{
			document.location.replace(url.replace(/lanugage/g, 'language') + "?autoredirect=true");
		}
		
		if (url.indexOf('(dab)') >= 0)
		{
			document.location.replace(url.replace(/\(dab\)/g, '(disambiguation)') + "?autoredirect=true");
		}
		
		// if (url.match(/[/_][A-Z][A-Z]/))
		// {
		// 	document.location.replace(
		// 		url.replace(/([/_])([A-Z][A-Z])/, "$1" + "$2" + "$3".toLowerCase())
		// 		+ "?autoredirect=true");
		// }
	}
     
	if ($(".mw-special-Badtitle") != null && url.indexOf('%5D') >= 0)
	{
		document.location.replace(url.replace(/%5D/gi, '') + "?autoredirect=true");
	}
}

function RemoveTitleTagFromEditSummary()
{
   $("#wpSummary").removeAttr("title");
   console.log("RemoveTitleTagFromEditSummary loaded.");
}

function OverrideStackingOverflow()
{
	$("div.mw-stack > div").removeAttr("style");
	console.log("OverrideStackingOverflow loaded.");
}

function AddCustomScriptAndStyleLinks()
{
   var jsLi = document.createElement("li");
   jsLi.setAttribute("id", "pt-userscripts");
   jsLi.setAttribute("class", "group-start");
   var jsLink = document.createElement("a");
   jsLink.setAttribute("href", "/wiki/User:OwenBlacker/common.js");
   jsLink.appendChild(document.createTextNode("📕💻"));
   jsLi.appendChild(jsLink);

   var js2Li = document.createElement("li");
   js2Li.setAttribute("id", "pt-groupscripts");
   var js2Link = document.createElement("a");
   js2Link.setAttribute("href", "https://meta.wikimedia.org/wiki/User:OwenBlacker/global.js");
   js2Link.appendChild(document.createTextNode("🌏💻"));
   js2Li.appendChild(js2Link);

   var cssLi = document.createElement("li");
   cssLi.setAttribute("id", "pt-userstyles");
   var cssLink = document.createElement("a");
   cssLink.setAttribute("href", "/wiki/User:OwenBlacker/common.css");
   cssLink.appendChild(document.createTextNode("📕🎨"));
   cssLi.appendChild(cssLink);

   var css2Li = document.createElement("li");
   css2Li.setAttribute("id", "pt-globalstyles");
   var css2Link = document.createElement("a");
   css2Link.setAttribute("href", "https://meta.wikimedia.org/wiki/User:OwenBlacker/global.css");
   css2Link.appendChild(document.createTextNode("🌏🎨"));
   css2Li.appendChild(css2Link);

   if (!!$("#pt-flyout").length)
   {
      $("#pt-watchlist-flyout").after(jsLi, js2Li, cssLi, css2Li);
      console.log("AddCustomScriptAndStyleLinks loaded after #pt-watchlist-flyout");
      if (!!$("#pt-mysandbox").length)
      {
         $("#pt-mysandbox").removeClass("group-start");
         console.log("AddCustomScriptAndStyleLinks removed .group-start from #pt-mysandbox");
      }
   }
   else
   {
      $("#pt-userpage").after(css2Li, cssLi, js2Li, jsLi);
      console.log("AddCustomScriptAndStyleLinks loaded after #pt-userpage (not within #pt-flyout)");
   }
}

$(externISBN);
$(FixBadSearches);
/*$(AddPurgeTab);*/
$(RemoveTitleTagFromEditSummary);
$(OverrideStackingOverflow);
$(AddCustomScriptAndStyleLinks);

mw.loader.load("https://www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript"); /* Backlink: [[d:User:Yair rand/WikidataInfo.js]] */
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Amorymeltzer/userinfo.js&action=raw&ctype=text/javascript');