Utilisateur:Arkanosis/larticles.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./*
***************************************************************************
** larticles - Liste les créations d'article d'un utilisateur
** Compatibilité : frwiki uniquement
** Support : Discussion_utilisateur:Arkanosis
** Licence : domaine public
**
** Installation : ajouter
** importScript('Utilisateur:Arkanosis/larticles.js');
** dans le monobook.js
**
** Utilisation : visiter la page
** Utilisateur:Arkanosis/larticles
*/
function larticles()
{
if (mw.config.get('wgPageName') != 'Utilisateur:Arkanosis/larticles')
return;
var username = mw.config.get('wgUserName');
var match = RegExp('[&?]username=([^&]*)').exec(document.location.href);
if (match)
username = decodeURIComponent(match[1]);
document.getElementById('nom_utilisateur').innerHTML = username;
var ucstart = '';
var articles = document.getElementById('creations_articles');
var modeles = document.getElementById('creations_modeles');
var categories = document.getElementById('creations_categories');
var redirections = document.getElementById('creations_redirections');
var nbArticles = document.getElementById('nombre_articles');
var nbModeles = document.getElementById('nombre_modeles');
var nbCategories = document.getElementById('nombre_categories');
var nbRedirections = document.getElementById('nombre_redirections');
var request = new XMLHttpRequest();
for (var loop = 0; loop < 10000; ++loop) // Avoid infinite loops, some browsers are very vulnerable to this (300000 contribs should be enough for most users)
{
request.open('GET', mw.config.get('wgServer') + '/w/api.php?action=query&list=usercontribs&ucuser=' + username + '&uclimit=300&ucdir=older&format=json&ucnamespace=0&ucprop=title|flags|size' + ucstart, false);
request.send('');
if (request.status != 200)
{
document.getElementById('message').innerHTML += 'Impossible d\'obtenir la liste des créations de l\'utilisateur ' + username;
break;
}
var results = JSON.parse(request.responseText);
for (contribution in results.query.usercontribs)
if (typeof(results.query.usercontribs[contribution].new) != 'undefined')
{
if (results.query.usercontribs[contribution].size > 140) // heuristic: if it's smaller than a twitt, then this must be a redirect ;-)
articles.innerHTML += '<li>' + results.query.usercontribs[contribution].title + '</li>';
else
redirections.innerHTML += '<li>' + results.query.usercontribs[contribution].title + '</li>';
}
if (!results['query-continue'])
break;
ucstart = results['query-continue'].usercontribs.ucstart;
}
}
$(larticles);