User:WhitePhosphorus/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.
/**
 * To GIE/IA/whoever script maintainer:
 * Some scripts from others are imported with `&oldid=` specified,
 * for security reasons. (Some are not as they require too many user scripts)
 * Please do not remove these `&oldid=`, thank you.
 * If something is deprecated and needs update, feel free to change the oldid.
 */

//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/FakeRollback.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/AutoUndo.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/AutoUndoGlobal.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/GS Rationale.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/all-in-one.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:WhitePhosphorus/js/active_sysops.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Hoo_man/smart_rollback.js&oldid=21096052&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Xiplus/TwinkleGlobal/load.js&action=raw&ctype=text/javascript');
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:DannyS712/AccountsCreated.js&oldid=20915989&action=raw&ctype=text/javascript');

// config for Hoo_man's smart rollback scripts
if (typeof(smartRollbackConfig) === 'undefined') smartRollbackConfig = {};
smartRollbackConfig.enableMarkbotedits = true;
if (mw.config.get('wgDBname') === 'enwiki') {
	// Add links to enwiki global rights policy
	smartRollbackConfig.editSummaries = {
		0: 'LTA ([[Wikipedia:Global_rights_policy#Global_rollbackers|GR rollback]])',
		1: 'Vandalism ([[Wikipedia:Global_rights_policy#Global_rollbackers|GR rollback]])',
	};
}

// all-in-one settings
// See https://meta.wikimedia.org/wiki/User:WhitePhosphorus/all-in-one for more info
if (typeof(p4js_all_in_one) === 'undefined') p4js_all_in_one = {};
p4js_all_in_one.packages = {
    "Spambot": {
        tracingedits: {
            duration: 'inf',
            indefregistered: true,
        },
        rollback: {
            enabled: true,
            bot: true,
            showname: true,
        },
        block: {
            enabled: true,
            duration: "1 day",
            indefregistered: true,
            reason: "Spambot",
            autoblock: true,
            hardblock: false,
            create: true,
            talk: true,
            mail: true,
            hidename: false,
        },
        pagedelete: {
            enabled: true,
            reason: "Spam",
        },
        revisiondelete: {
            enabled: false,
        },
    },
    "LTA": {
        tracingedits: {
            duration: 86400,
            indefregistered: true,
        },
        rollback: {
            enabled: true,
            bot: true,
            showname: true,
        },
        block: {
            enabled: true,
            duration: "1 day",
            indefregistered: true,
            reason: "Long-term abuse",
            autoblock: true,
            hardblock: false,
            create: true,
            talk: true,
            mail: true,
            hidename: false,
        },
        pagedelete: {
            enabled: true,
            reason: "Vandalism",
        },
        revisiondelete: {
            enabled: false,
        },
    },
    "LTA w/ Proxy": {
        tracingedits: {
            duration: 86400,
            indefregistered: true,
        },
        rollback: {
            enabled: true,
            bot: true,
            showname: true,
        },
        block: {
            enabled: true,
            duration: "2 years",
            indefregistered: true,
            reason: "Open Proxy",
            autoblock: true,
            hardblock: false,
            create: true,
            talk: true,
            mail: true,
            hidename: false,
        },
        pagedelete: {
            enabled: true,
            reason: "Vandalism",
        },
        revisiondelete: {
            enabled: false,
        },
    },
    "Turkish spambot": {
        tracingedits: {
            duration: 3600,
            indefregistered: true,
        },
        rollback: {
            enabled: true,
            bot: true,
            showname: true,
        },
        block: {
            enabled: true,
            duration: "1 day",
            indefregistered: true,
            reason: "Cross-wiki vandalism",
            autoblock: true,
            hardblock: false,
            create: true,
            talk: true,
            mail: false,
            hidename: false,
        },
        pagedelete: {
            enabled: true,
            reason: "Vandalism",
        },
        revisiondelete: {
            enabled: false,
        },
    },
};
p4js_all_in_one.default_package = "LTA w/ Proxy";
//p4js_all_in_one.suffixes = ["", " ([[:m:GS|global sysop]] action)"];

(function($, mw) {

var ns = mw.config.get('wgNamespaceNumber');
//var api = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
var wiki = mw.config.get('wgArticlePath');
var meta = mw.config.get('wgDBname') == 'metawiki';
var pageName = meta ? 'global' : 'common';

$('#pt-userpage').after($('<li></li>', {
	'id': 'pt-usercodes'
}).append($('<sup></sup>').append($('<a></a>', {
	'href': wiki.replace('$1', 'User:WhitePhosphorus/' + pageName + '.js?action=edit'),
	'title': 'Edit my ' + pageName + '.js',
	'text': 'js'
})).append(' - ').append($('<a></a>', {
	'href': wiki.replace('$1', 'User:WhitePhosphorus/' + pageName + '.css?action=edit'),
	'title': 'Edit my ' + pageName + '.css',
	'text': 'css'
}))));

mw.loader.using(['mediawiki.util'], function() {
	var user = null;
	
	if (ns == 2 || ns == 3) {
		user = mw.config.get('wgTitle').replace(/\/.*/, '');
	} else if (ns == -1) {
		if (['Contributions', 'Log'].includes(mw.config.get('wgCanonicalSpecialPageName'))) {
			// Special:AbuseLog does not have wgRelevantUserName set. That sucks.
			user = mw.config.get('wgRelevantUserName') || $('[name="target"]').val();
		}
	}
	if (user === null) return;
	// for both registered and IP users
	mw.util.addPortletLink(
  		"p-tb",
  		'https://xtools.wmflabs.org/globalcontribs/' + user,
  		"Xwiki Contribs (xtools)"
	);
	mw.util.addPortletLink(
  		"p-tb",
  		'https://tools.wmflabs.org/guc/?by=date&user=' + user,
  		"Xwiki Contribs (guc)"
	);
	if (mw.util.isIPAddress(user)) {
		// IP users only
		mw.util.addPortletLink(
  			"p-tb",
  			'https://tools.wmflabs.org/ipcheck/index.php?ip=' + user,
  			"Check Proxy"
		);
		mw.util.addPortletLink(
  			"p-tb",
  			'https://whatismyipaddress.com/ip/' + user,
  			"IP Geo Lookup"
		);
		mw.util.addPortletLink(
  			"p-tb",
  			'https://whois-dev.toolforge.org/w/' + user + '/lookup',
  			"Whois Gateway"
		);
		mw.util.addPortletLink(
			'p-tb',
			'https://tools.wmflabs.org/meta/stalktoy/' + user,
			'Stalktoy'
		);
		// Warning: this website does not support https
		mw.util.addPortletLink(
  			"p-tb",
  			'http://whois.tanet.edu.tw/showWhoisPublic.php?queryString=' + user + '&submit=送出',
  			"TANet Whois"
		);
	} else {
		// registered users only
		mw.util.addPortletLink(
  			"p-tb",
  			"https://meta.wikimedia.org/wiki/Special:CentralAuth/" + user,
  			"SUL"
		);
	}
});

// custom rollback summary (change link color when loaded successfully)
// 'h' for a summary with villain's username hidden
$('.mw-rollback-link a').click(function(event) {
    var summary = prompt('Summary:');
    if (summary === null) {
        event.preventDefault();
    } else {
    	if (summary === 'h')
    		summary = 'Restore to the last revision';
        this.href += '&summary=' + encodeURIComponent(summary);
    }
}).css({'color': '#009999'});

})(jQuery, mw);