MediaWiki:Gadget-markAdmins.js: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Correzioni stilistiche minime
da MediaWiki:Gadget-markAdmins2.js del 4 ott 2018 alle 09:13; nuova versione basata sulle informazioni presenti nella pagina Utente:ItwikiBot/AdminList e aggiornate automaticamente; vedi WP:Officina del 4 ott 2018 alle 09:27
Riga 1:
/**
//copiato da https://www.wikidata.org/w/index.php?title=MediaWiki:Gadget-markAdmins.js&oldid=424200848
* This script highlights the users in special groups thanks to a JSON that is
//piccoli adattamenti per la Wiki italiana
* populated with these data by a bot.
*
* This script needs this page: [[Utente:ItwikiBot/AdminList]]
*
* @see [[MediaWiki:Gadget-markAdmins.js]]
*/
 
// <nowiki>
//***********************************************************************
// Skript ursprünglich von [[Benutzer:Euku]], 28. Dez. 2005
// Adaptierung/zusätzliche Markierungen/Fixes: [[Benutzer:PDD]]
// Aufgeräumt & beschleunigt: [[Benutzer:Littl]]
// Etwas umgeräumt und potentielle Skinabhängigkeit entfernt: [[Benutzer:Guandalug]]
// Anpassung an WikiData: [[User:NordNordWest]]
//***********************************************************************
 
// <nowiki>
( function ( mw, $ ) {
// run only if in allowed ns, history, talks, and diffs
function markAdmins( $content ) {
var allowedNs = [ 'Help', 'User', 'User_talk', 'Project', 'Special' ];
if ( ! (
allowedNs.indexOf( mw.config.get( 'wgCanonicalNamespace' ) ) !== -1 ||
mw.config.get( 'wgAction' ) === 'history' ||
mw.config.get( 'wgNamespaceNumber' ) % 2 === 1 ||
mw.util.getParamValue( 'diff' ) !== null
) ) {
return;
}
 
// do nothing in these special pages (why? pheraps is useful to have clean copy-paste?)
var marksubpages = false;
var specialPage = mw.config.get( 'wgCanonicalSpecialPageName' );
var dontmarkmyself = false;
if( 'Prefixindex' === specialPage || 'Allpages' === specialPage ) {
return;
}
 
mw.hook( 'wikipage.content' ).add( function ( $content ) {
// Elenco statico, per ora è escluso Legoktm
mw.util.addCSS( 'abbr.adminMark { font-weight: bold; padding-left: 5px; }' );
var admins = ["Abisys", "Ale_Sasso", "Alkalin", "Amarvudol", "Antonio1952", "Aplasia", "Archenzo", "ArtAttack", "Ary29", "Ask21", "AttoRenato", ".avgas", "Basilicofresco", "BohemianRhapsody", "Bradipo_Lento", "Bramfab", "Buggia", "Bultro", "Burgundo", "Carlomartini86", "Carlomorino", "Castagna", "Caulfield", "Ceppicone","Civv%C3%AC", "Daimona_Eaytoy", "Dan_Kenshi", "Delfort", "Dimitrij_Kasev", "Doc.mari", "Dome", "Dr_Zimbu", "Elwood", "Ep%C3%ACdosis", "Er_Cicero", "Erinaceus", "Esculapio", "Eumolpo", "Euphydryas", "Eustace_Bagge", "Fabexplosive", "Fabyrav","FeltriaUrbsPicta", "Fringio", "Gac", "Gianfranco", "Guidomac", "Horcrux", "Hypergio", "Ignisdelavega", "Ilario", "IndyJr", "Jaqen", "Kirk39", "Klaudio", "KS", "L736E", "Laurentius", "Lepido", "LukeWiller", "M%26A", "Madaki", "MapiVanPelt", "Marcok", ".mau.", "Melos", "Mess", "MM", "Moroboshi", "Narayan89", "Nicolabel", "Nubifer", "Ombra", "Osk", "Paginazero", "Parma1983", "Pequod76", "Phantomas", "Phyrexian", "%25Pier%25", "Pierpao", "Pil56", "RanZag", "Remulazz", "Retaggio", "Ripepette", "Roberto_Mura", "Rojelio", "Rotpunkt", "Ruthven", "Sakretsu", "Sannita", "Sanremofilo", "Shivanarayana", ".snoopy.", "Soprano71", "Superchilum", "Supernino", "Syrio", "Threecharlie", "Tirinto", "Tooby", "Torsolo", "Vale93b", "Valepert", "Valerio_Bozzolan","ValterVB", "Vegetable", "Veneziano", "Vituzzu", "Yiyi"];
$.getJSON( '/wiki/Utente:ItwikiBot/AdminList?action=raw&ctype=application/json', function ( response ) {
var admins_str = '|'+admins.join('|')+'|';
var specialPage = mw.config.get( 'wgCanonicalSpecialPageName' );
var userNs = mw.config.get( 'wgFormattedNamespaces' )[ 2 ];
var userPath = mw.config.get( 'wgArticlePath' ).replace( '$1', userNs );
var userPattern = /.wiki.Utente.(.+)/;
 
// for each link
var botadmins = ["Filtro_anti_abusi"];
$content.find( 'a' ).each( function () {
var botadmins_str = '|'+botadmins.join('|')+'|';
var $link = $( this );
var href = $link.attr( 'href' );
 
// only links to users
var renadmins = [];
if ( href && href.indexOf( userPath ) !== -1 ) {
var renadmins_str = '|'+renadmins.join('|')+'|';
 
// no sub pages
var bureaucrats = ["Ary29", "Vituzzu", "Roberto_Mura", "Buggia", "Euphydryas", "Civv%C3%AC"];
var bureaucrats_struserLink = '|'+bureaucratsuserPattern.joinexec('|' href )+'|'[ 1 ];
if( userLink.indexOf( '/' ) === -1 ) {
 
var userName = decodeURIComponent( userLink.replace( /\/.*/, '' ).replace( /_/, ' ' ) );
var checkusers = ["Melos", "Gac", "Ask21", "L736E", "Shivanarayana", "Vituzzu", "Ruthven"];
var knownUserGroups = response.users[ userName ];
var checkusers_str = '|'+checkusers.join('|')+'|';
if ( knownUserGroups ) {
 
$container = $( '<span>' );
var stewards = ["Ajraddatz", "Melos", "Vituzzu", "Avraham", "Bsadowski1", "Defender", "DerHexer", "Einsbor", "HakanIST", "Hoo_man", "Jyothis", "Linedwell", "MarcoAurelio", "Mardetanha", "Matanya", "Matiia", "MBisanz", "Mentifisto", "MF-Warburg", "Pmlineditor", "QuiteUnusual", "RadiX", "Ruslik0", "Savh", "Shanmugamp7", "Sjoerddebruin", "Stryn", "Tegel", "Teles", "Trijnstel", "Masti", "NahidSultan"];
for( var i in knownUserGroups ) {
var stewards_str = '|'+stewards.join('|')+'|';
var groupShort = knownUserGroups[ i ];
 
var groupName = response.legend[ groupShort ];
var namespace = mw.config.get( 'wgCanonicalNamespace' ),
$abbr = $( '<abbr class="adminMark">' )
allowedNamespaces = [ 'Special', 'User', 'User_talk', 'Project', 'Help' ];
.attr( 'title', groupName )
if (
.text( groupShort );
allowedNamespaces.indexOf( namespace ) !== -1 ||
$container.append( $abbr );
mw.config.get( 'wgAction' ) === 'history' ||
}
mw.config.get( 'wgNamespaceNumber' ) % 2 === 1 ||
$link.after( $container );
mw.util.getParamValue('diff') !== null
) { }
var i,
aNode,
allanchors = $content.get( 0 ).getElementsByTagName("A"),
searchExp = /.wiki.Utente.(.+)/,
trenn = mw.config.get( 'wgArticlePath' ).replace( '$1', mw.config.get( 'wgFormattedNamespaces' )[2] ),
specialPageName = mw.config.get( 'wgCanonicalSpecialPageName' ),
marker,
mainpageanchor,
href;
 
mw.util.addCSS('span.adminMark { font-weight: bold; }');
for (i=0; i < allanchors.length; i++) {
aNode = allanchors[i];
mainpageanchor = true;
href = aNode.getAttribute("href");
// if it's a link to a user
if (href && href.indexOf(trenn) !== -1) {
var currUser = searchExp.exec(href)[1],
currUserClean = currUser.replace(/\/.*/,'');
 
if (currUserClean !== currUser) {
mainpageanchor = false;
}
currUser= "|" + currUserClean + "|";
 
marker = [];
// is this user an admin?
if (admins_str.indexOf(currUser) !== -1) {
marker.push( 'A' );
}
// is this user an adminbot?
if (botadmins_str.indexOf(currUser) !== -1) {
marker.push( 'A-Bot' );
}
// is this user a renamed admin?
if (renadmins_str.indexOf(currUser) !== -1) {
marker.push( 'A-Ren' );
}
// is this user a bureaucrat?
if (bureaucrats_str.indexOf(currUser) !== -1) {
marker.push( 'B' );
}
// is this user a checkuser?
if (checkusers_str.indexOf(currUser) !== -1) {
marker.push( 'CU' );
}
// is this user a steward?
if (stewards_str.indexOf(currUser) !== -1) {
marker.push( 'S' );
}
 
if (
// don't mark certain pages, except link to user main page
( mainpageanchor || ( marksubpages && specialPageName !== "Prefixindex" && specialPageName !== "Allpages" ) ) &&
marker.length > 0 && !(dontmarkmyself && currUserClean === mw.config.get( 'wgUserName' ))
) {
var aMark = document.createElement("span");
aMark.className = "adminMark";
 
var aMarkText = document.createTextNode(" (" + marker.join("/") + ")");
aMark.appendChild(aMarkText);
aNode.appendChild(aMark);
}
}
} );
} );
} );
 
} )( mediaWiki, jQuery );
mw.hook( 'wikipage.content' ).add( markAdmins );
}( mediaWiki, jQuery ) );
// </nowiki>