User:Tks4Fish/CAWhoisProxy.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.
/*
 * Script that adds a "CentralAuth" or "GlobalBlock/Proxy check/WHOIS" link on the top of [[Special:Contributions]] and in the Sidebar.
 * If loaded through [[Special:MyPage/global.js]], gives to Stewards access to the meta's CentralAuth page
 * in order to Lock/Hide the account.
 * Requested on [[phab:T169463]]
 * Author: Linedwell
 * Modified by Tks4Fish to include proxy check and WHOIS
 * Permalink of the original script: https://meta.wikimedia.org/w/index.php?title=User:Linedwell/centralauthlink.js&oldid=18904586
 */

$(document).ready(function ca_gbLinkContribs() {
	if( mw.config.get('wgCanonicalSpecialPageName') == 'Contributions' || mw.config.get('wgCanonicalSpecialPageName') == 'DeletedContributions' ) {
		var show = document.getElementById('contentSub');
		if(show) {
			var target = mw.config.get('wgRelevantUserName');
			if (target !== null) {
				var eleminv = document.createElement('span');
				var eleminvlog = document.createElement('span');
				var elemlink = document.createElement('span');
				var elemipc = document.createElement('span');
				var elemwhois = document.createElement('span');
				var elemspam = document.createElement('span');
				var elemguc = document.createElement('span');
				var elemguc2 = document.createElement('span');
				var elembeye = document.createElement('span');
				var inv = document.createElement('a');
				var invlog = document.createElement('a');
				var link = document.createElement('a');
				var ipc = document.createElement('a');
				var whoisip = document.createElement('a');
				var sbl = document.createElement('a');
				var guc = document.createElement('a');
				var guc2 = document.createElement('a');
				var beye = document.createElement('a');
				
				if (/checkuser/.test(mw.config.get('wgUserGroups')) === true)
				{
					inv.href = mw.config.get('wgServer') + "/wiki/Special:Investigate?targets=" + target;
					inv.innerHTML = "investigate";
					inv.title = "Investigate this user";
					eleminv.appendChild(inv);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(eleminv);
				}
				if (!mw.util.isIPAddress(target)) {
					sbl.href = mw.config.get("wgServer") + "/wiki/Special:Log?type=spamblacklist&user=" + target;
					sbl.innerHTML = "spam blacklist";
					sbl.title = "Spam blacklist logs for this user";
					elemspam.appendChild(sbl);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemspam);
					link.href = "//meta.wikimedia.org/wiki/Special:CentralAuth/" + target;
					link.innerHTML = "CentralAuth";
					link.title = "CentralAuth for this user";
					elemlink.appendChild(link);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemlink);
					guc.href = "//guc.toolforge.org/?user=" + target + "&blocks=true";
					guc.innerHTML = "GUC";
					guc.title = "GUC for this user";
					elemguc.appendChild(guc);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemguc);
					guc2.href = "//xtools.wmflabs.org/globalcontribs/" + target;
					guc2.innerHTML = "XTools GUC";
					guc2.title = "GUC for this user";
					elemguc2.appendChild(guc2);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemguc2);
				} else {
					link.href="//meta.wikimedia.org/wiki/Special:GlobalBlock/" + target;
					link.innerHTML = "GlobalBlock";
					link.title = "GlobalBlock this IP";
					elemlink.appendChild(link);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemlink);
					beye.href="//bullseye.toolforge.org/ip/" + target;
					beye.innerHTML = "Bullseye";
					beye.title = "Bullseye info for this IP";
					elembeye.appendChild(beye);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elembeye);
					ipc.href="//ipcheck.toolforge.org/index.php?ip=" + target;
					ipc.innerHTML = "proxy check";
					ipc.title = "Proxy check for this IP";
					elemipc.appendChild(ipc);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemipc);
					whoisip.href="//whois-referral.toolforge.org/gateway.py?lookup=true&ip=" + target;
					whoisip.innerHTML = "WHOIS";
					whoisip.title = "WHOIS for this IP";
					elemwhois.appendChild(whoisip);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemwhois);
					guc.href = "//guc.toolforge.org/?user=" + target + "&blocks=true";
					guc.innerHTML = "GUC";
					guc.title = "GUC for this IP";
					elemguc.appendChild(guc);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemguc);
					guc2.href = "//xtools.wmflabs.org/globalcontribs/" + target;
					guc2.innerHTML = "XTools GUC";
					guc2.title = "GUC for this IP";
					elemguc2.appendChild(guc2);
					document.getElementsByClassName('mw-changeslist-links')[0].appendChild(elemguc2);
				}
			}
		}
	}
});