Gebruiker:Rots61/Scriptje.js
Opmerking: nadat u de wijzigingen hebt gepubliceerd is het wellicht nodig uw browsercache te legen.
- Firefox / Safari: houd Shift ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
- Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
- Internet Explorer / Edge: houd Ctrl ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5
- Opera: druk op Ctrl-F5.
/* jshint sub:true maxerr:100000 */
//Gemaakt door [[nl:User:Rots61]]
//Waarschuwing, dit script is geschreven door een gebruiker die Javascript zichzelf heeft aangeleerd. Het werkt in ieder geval op Firefox.
var api = new mw.Api();
var data2 = [];
var data3 = [];
var aantalx = 0;
var infoaboutpage = {};
function getAllPagesFromUser(apiContinue) {
api.get( {
action: "query",
list: "usercontribs",
uclimit: "500",
ucshow: "new",
ucnamespace: "0",
ucuser: 'Themanwithnowifi',
uccontinue: apiContinue ? apiContinue.uccontinue : undefined
} ).then( function (data) {
data2 = data2.concat(data.query.usercontribs);
aantalx += 1;
if ( data.continue ) {
getAllPagesFromUser( data.continue );
} else {
removeAllRedirectsFromList(data2);
}
} );
}
function removeAllRedirectsFromList(data) {
for (const x of data) {
if (x.size > 100) {
data3.push(x);
infoaboutpage[x.title] = {};
infoaboutpage[x.title]['Timestamp'] = x.timestamp;
}
}
console.log(data3);
for (const x of data3) {
api.get( {
action: "query",
prop: "revisions",
rvlimit: "1",
rvprop: "ids",
titles: x.title
} ).then( function(out) {
var scores = getORESLevel(out.query.pages[x.pageid].revisions[0].revid);
infoaboutpage[x.title]['Letter'] = scores.prediction;
infoaboutpage[x.title]['Score'] = 1*scores.probability.E + 2*scores.probability.D + 3*scores.probability.C + 4*scores.probability.B + 5*scores.probability.A;
});
}
console.log(infoaboutpage);
createTableForIt(infoaboutpage);
}
function getORESLevel(id) {
var fromPage = [];
var request = new XMLHttpRequest();
request.open('GET', 'https://ores.wikimedia.org/v3/scores/nlwiki/' + id + '/articlequality', false);
request.send(null);
if (request.status === 200) {
fromPage = JSON.parse(request.responseText);
}
return fromPage.nlwiki.scores[id].articlequality.score;
}
function createTableForIt(alldata) {
var table = ['{| class="wikitable sortable"',
'|+ ',
'!Artikel!!Letter!!Score!!Aanmaakdatum',
'|- '];
var beforetable = ['{| class="wikitable sortable"',
'|+',
'!Score !!Aantal'];
var aantalletters = {A: 0, B: 0, C: 0, D: 0, E: 0};
for (const property in alldata) {
aantalletters[alldata[property]['Letter']] += 1;
table.push('|-');
table.push(`||[[${property}]]||${alldata[property]['Letter']}||${Math.round(alldata[property]['Score']*100)/100}||${alldata[property]['Timestamp'].substring(0, 10)}`);
}
for (const property in aantalletters){
beforetable.push('|-');
beforetable.push(`||${property}||${aantalletters[property]}`);
}
table.push('|}');
table = table.join('\n');
beforetable.push('|}');
beforetable = beforetable.join('\n');
console.log(beforetable + '\n' + table);
document.getElementById('bodyContent').innerHTML = 'Hierbij de tabel. <textarea rows="25" cols="100">' + beforetable + '\n' + table + '</textarea>';
}