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>';
}