MediaWiki:Gadget-markadmins.js

(function () {
	function markUsers(data, user_groups){
		var lnk, title, mm, mark, joined_mark, i, k;
		var mark_array = [];
		var links = $('a');
		var userArg;
		for (i=0; i<links.length; i++){
			lnk = links[i];
			mm=lnk.title.match('(?:Користувач|Користувачка):([^;]*)');
			try {
				mm[1];
			} catch (e) {
				continue;
			}
			userArg = mm[1].replace(" (ще не написана)", "");
			if (lnk.text != userArg && (mw.config.get('wgNamespaceNumber') == -1 || mw.config.get('wgAction') == 'history'))
				continue;
			for (k in user_groups){			
				if (user_groups[k].name.indexOf(userArg) > -1) {
					if(user_groups[k].groups.includes('sysop')) {
						if (data.userSet['A*'].includes(userArg)) {
							mark_array.push('A*');
							lnk.title += ", тимчасовий адміністратор";
						}
						else {
							mark_array.push('A');
							lnk.title += ", адміністратор";
						}
					}
					if(user_groups[k].groups.includes('arbcom')) {
						mark_array.push('Ar');
						lnk.title += ", арбітр";
					}
					if(user_groups[k].groups.includes('bureaucrat')) {
						mark_array.push('B');
						lnk.title += ", бюрократ";
					}
					if(user_groups[k].groups.includes('checkuser')) {
						mark_array.push('CU');
						lnk.title += ", чек'юзер";
					}
					if(user_groups[k].groups.includes('interface-admin')) {
						mark_array.push('IA');
						lnk.title += ", адміністратор інтерфейсу";
					}
					if(user_groups[k].groups.includes('suppress')) {
						mark_array.push('OS');
						lnk.title += ", приховувач";
					}
				}
			}
			if (mark_array.length > 0) {
				mark = document.createElement('b');
				joined_mark = mark_array.join('/');
				mark.appendChild(document.createTextNode('(' + joined_mark + ')'));
				lnk.appendChild(mark);
				mark_array = [];
			}
		}
	}
	if (mw.config.get('wgAction') == 'view' && mw.config.get('wgNamespaceNumber') == 0)
		return;
	var data = require('./markadmins.json');
	mw.hook('wikipage.content').add(function () {
		var params = {
			action: 'query',
			format: 'json',
			list: 'allusers',
			auprop: 'groups',
			augroup: 'sysop|interface-admin|arbcom',
			aulimit: 100
		},
		api = new mw.Api();
		api.get( params ).done( function ( data_s ) {
			var user_groups = data_s.query.allusers;
			markUsers(data, user_groups);
		});
	});
}());
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya