Utente:Tino/EvidenziaNonAutoverificati.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/*
 * Nella cronologia delle pagine e negli osservati speciali, evidenzia 
 * i nomi degli utenti registrati ma non autoverificati.
 * 
 * @author [[Utente:Tino]]
 */

/* <nowiki> */

(function ($) {
    
    "use strict";

    const color = '#FCF'; 
    const exemptedRights = ['autopatrol'];
    
    if ($('#pagehistory,.mw-changeslist').length < 1) 
        return;

    const ipv4Re = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/;
    const ipv6Re = /^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
    var names = {};
    $('#pagehistory li .mw-userlink').add('.mw-changeslist .mw-userlink')
            .each(function () {
        var name = $("<div/>").html($(this).html()).text();
        if (name.match(ipv4Re) !== null || name.match(ipv6Re) !== null)
            return;
        if (names[name] === undefined)
            names[name] = $(this);
        else
            names[name] = names[name].add(this);
    });

    var usernames = '';
    $.each(names, function (i, v) {
        usernames += i + '|';
    });
    usernames = usernames.slice(0, usernames.length - 1);
    $.ajax({
        url: '//it.wikipedia.org/w/api.php',
        data: {
            'format': 'json',
            'action': 'query',
            'list': 'users',
            'usprop': 'rights',
            'ususers': usernames
        },
        dataType: 'jsonp',
        success: function(data) { 
            data.query.users.forEach(function (e) {
                
                var guard = 
                    e.invalid !== undefined || 
                    e.rights !== undefined &&
                    exemptedRights.reduce(function (p, c, i, a) {
                        return p === true && $.inArray(c, e.rights) === -1;
                    }, true);
                
                if (guard) {
                    names[e.name].css('background-color', color);
                }
            });
        }   
    });
}) (jQuery);


/* </nowiki> */