Utilisateur:Salsero35/editcount.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) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
<nowiki>
Basé sur [[:en:User:CharlotteWebb/editcount.js]]
*/
function round_2dec(n){
var iP = parseInt(n);
var fP = Math.round((n - iP) * 100);
if (fP >= 100){
iP++;
fP = fP - 100;
}
var sfP = String (fP);
if (fP < 10) sfP = "0" + sfP;
return String(iP) + "," + sfP;
}
addOnloadHook(function (){
a = '<a href="' + mw.config.get('wgScriptPath') + '/index.php?title=' + mw.config.get('wgPageName').split("/")[0] + '&action=editcount">Compteur d’éditions</a>';
if((mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3)) {
document.getElementById("p-cactions").getElementsByTagName("ul")[0].innerHTML +=
'\n<li id="ca-editcount">' + a + '</li>';
tc = document.getElementById("t-contributions");
if(tc) tc.innerHTML += '</li>\n<li id="ca-editcount">' + a;
}
if(mw.config.get('wgCanonicalSpecialPageName') == "Contributions"){
cs = document.getElementById("contentSub");
cs.innerHTML = cs.innerHTML.replace(/(\))\s*$/, " | " + a + ")");
}
if(mw.config.get('wgAction') != "editcount") return;
document.getElementsByTagName("h1")[0].innerHTML = document.title =
"Compteur d’éditions de Utilisateur:" + mw.config.get('wgTitle');
(bc = document.getElementById("bodyContent")).innerHTML = "(chargement...)";
var d = new Object, m = new Object, ns = new Object, id_ns = new Array(), id_art = new Array(), art = new Array(), art_ns = new Array(), nb_art_ns = new Array(), nb_new_ns = new Array(), nb_minor_ns = new Array(), nb_top_ns = new Array(), nb_comment_ns = new Array(), id_a, id_n, ts_first; var nb_art = 0; var nb_new = 0; var nb_minor = 0; var nb_top = 0; var nb_comment = 0; d.ec = 0; d.o = null;
d.q = 'action=query&list=usercontribs&ucprop=ids|title|timestamp|comment|flags&uclimit=500&ucuser=' + mw.config.get('wgTitle');
var scr = function(q, h){
x = new XMLHttpRequest(); x.onreadystatechange = function() {
if (x.readyState == 4) h(new DOMParser().parseFromString(x.responseText,"text/xml"));
}
x.open("GET", mw.config.get('wgServer') + mw.config.get('wgScriptPath') + "/api.php?" + q + "&format=xml", true); x.send("");
}
var nsh = function(nf){
n = nf.getElementsByTagName("ns");
for(i = 0; i < n.length; i++){
m[id = n[i].getAttribute("id")] = 0;
// ns[id] = n[i].getAttribute("canonical");
ns[id] = n[i].textContent;
id_ns[id] = "ns_" + id;
nb_art_ns[id] = 0;
art_ns[id_ns[id]] = new Array();
nb_new_ns[id] = 0;
nb_minor_ns[id] = 0;
nb_top_ns[id] = 0;
nb_comment_ns[id] = 0;
}
ns["0"] = "[main]";
var ech = function(ef) {
r = ef.getElementsByTagName("item");
for(i = 0; i < r.length; i++){
id_n = r[i].getAttribute("ns");
m[id_n]++;
ts_first = r[i].getAttribute("timestamp");
id_a = r[i].getAttribute("pageid");
id_art[id_a] = "art_" + id_a;
if (art[id_art[id_a]] == null){
art[id_art[id_a]] = 0;
nb_art++;
}
art[id_art[id_a]]++;
if (art_ns[id_ns[id_n]][id_art[id_a]] == null){
art_ns[id_ns[id_n]][id_art[id_a]] = 0;
nb_art_ns[id_n]++;
}
art_ns[id_ns[id_n]][id_art[id_a]]++;
if (r[i].getAttribute("new") != undefined){
nb_new++;
nb_new_ns[id_n]++;
}
if (r[i].getAttribute("minor") != undefined){
nb_minor++;
nb_minor_ns[id_n]++;
}
if (r[i].getAttribute("top") != undefined){
nb_top++;
nb_top_ns[id_n]++;
}
if (r[i].getAttribute("comment") != ""){
nb_comment++;
nb_comment_ns[id_n]++;
}
}
d.ob = 'Nombre total d’éditions : ' + (d.ec += r.length) + ' <span id="ecstatus">(et comptage en cours...)' +
'</span><br />\n' +
'Première édition : ' + ts_first.replace(/[TZ]/g, ' ') + ' (UTC)<br />\n' +
'Nombre total de pages éditées : ' + nb_art + '<br />\n' +
'Nombre d’éditions moyen par page : ' + round_2dec(d.ec / nb_art) + '<br />\n' +
'<table class="wikitable sortable" style="width:100%;">\n' +
'<tr><th>Espace de nom</th><th>Éditions</th><th>%</th><th>Pages<br />éditées</th><th>Nouvelles<br />pages</th><th>Éditions<br />mineures</th><th>Top</th><th>Éditions<br />commentées</th></tr>\n';
for(n in m) if (m[n] > 0) d.ob += '<tr style="text-align:right;">' +
'<td style="text-align:left;">' + ns[n] + '</td><td>' + m[n] + '</td><td>' +
round_2dec(100 * (m[n] / d.ec)) +
'</td><td>' + nb_art_ns[n] + '</td><td>' + nb_new_ns[n] + '</td><td>' + nb_minor_ns[n] + '</td><td>' + nb_top_ns[n] + '</td><td>' + nb_comment_ns[n] + '</td></tr>\n';
bc.innerHTML = (d.ob += '<tr style="text-align:right;"><td style="text-align:left;"><b>Total</b></td><td><b>' + d.ec + '</b></td><td><b>' + round_2dec(100) + '</b></td><td><b>' + nb_art + '</b></td><td><b>' + nb_new + '</b></td><td><b>' + nb_minor + '</b></td><td><b>' + nb_top + '</b></td><td><b>' + nb_comment + '</b></td></tr>\n</table>');
np = ef.getElementsByTagName("query-continue");
if(!np.length) document.getElementById("ecstatus").innerHTML = "<b>(Fait !)</b>";
else {
d.o = np[0].childNodes[0].getAttribute("ucstart");
scr(d.q + (d.o?"&ucstart="+d.o:""), ech);
}
}
scr(d.q + (d.o ? "&ucstart=" + d.o : ""), ech);
}
scr("action=query&meta=siteinfo&siprop=namespaces", nsh);
});
/*
</nowiki>
[[en:User:Salsero35/editcount.js]]
*/