Utilisateur:Orlodrim/contribs-relecture.js

Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
function extractOffsetParamFromLink(selector) {
    links = $(selector);
    if (links.length === 0) return;
    var match = links[0].href.match(/[?&]offset=(\d+)/);
    return match ? match[1] : null;
}

function showUnpatrolledChangesInContributions() {
    var userName = $('input[name=\'target\']').attr('value');
    if (userName === mw.config.get('wgUserName')) return;
    var revLinks = $('a.mw-changeslist-date');
    if (revLinks.length === 0) return;

    var query = {format: 'json', action: 'query', list: 'recentchanges', rcprop: 'ids', rcshow: '!patrolled',
                 rclimit: 500, rcuser: userName, rctype: 'edit|new'};
    rcstart = extractOffsetParamFromLink('a.mw-prevlink');
    if (rcstart) query.rcstart = rcstart;
    rcend = extractOffsetParamFromLink('a.mw-nextlink');
    if (rcend) query.rcend = rcend;
    $.getJSON(mw.util.wikiScript('api'), query, function(obj) {
        //alert(JSON.stringify(obj));
        var unpatrolled = {};
        if (obj.query && obj.query.recentchanges) {
            for (var i = 0; i < obj.query.recentchanges.length; i++) {
                unpatrolled['R' + obj.query.recentchanges[i].revid] = true;
            }
        }
        revLinks.each(function(i, element) {
            var match = /[&?]oldid=(\d+)/.exec(element.href);
            if (match && unpatrolled['R' + match[1]]) {
                $(this).closest('li').prepend('<abbr class="unpatrolled" title="Cette modification n’a pas été relue.">!</abbr> ');
            }
        });
    });
}

if (mw.config.get('wgCanonicalSpecialPageName') === 'Contributions') {
    mw.loader.using(['mediawiki.util'], function() {
        $(showUnpatrolledChangesInContributions);
    });
}