Gebruiker:Rots61/Gadget-Opschonen.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
(fix, gadget werkt nu weer!)
(kleine tweak)
 
(76 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 3: Regel 3:
 
// Documentatie op [[WikiKids:Opschonen]]
 
// Documentatie op [[WikiKids:Opschonen]]
 
var text;
 
var text;
  +
var api = new mw.Api();
function showProject (text) {
 
  +
var alreadydone;
// text = array
 
  +
var Nummer;
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
 
document.title = "Opschonen - WikiKids";
 
tempgetal = 1;
 
var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
 
var tabelstuk2 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet aangepast</div></th>';
 
var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
 
tabel = "Deze artikels kun je controleren. Als je 100 artikels wilt, pas je de url aan naar 'https://wikikids.nl/Speciaal:Opschonen?aantal=100', als je alle pagina's wilt zien, kun je deze link gebruiken, het aantal kun je aanpassen, als je een te hoog getal invult, komt er niets uit. 'https://wikikids.nl/Speciaal:Opschonen?allepaginas=x&aantal=100' ."
 
+ '<br>Dit is nog geen uiteindelijke versie van de pagina, pagina\'s die je nu afvinkt, worden niet afgevinkt op de echte lijst. Je kunt gewoon opslaan. Je mag zovaak proberen als dat je zelf wilt. Opslaan duurt een paar seconden, wacht totdat je ziet dat de wijziging is doorgevoerd.'
 
+ '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToList()">Voeg toe</button>'
 
+ '<table class="wikitable"> <tbody> <tr> <th width="1"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk2 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th> <th>Thema</th> </tr>';
 
showAantal = parseInt(mw.util.getParamValue( 'aantal' ));
 
showAll = mw.util.getParamValue('allepaginas');
 
showSkipDone = mw.util.getParamValue('skipdone');
 
//Zorg ervoor dat je al gecontroleerde pagina's niet ziet
 
showSkipThema = mw.util.getParamValue('skipthema');
 
//Zorg ervoor dat je al bekeken pagina's + gecontroleerde niet ziet
 
showDone = mw.util.getParamValue('done');
 
//Zorg ervoor dat je alle gecontroleerde pagina's ziet
 
showThema = mw.util.getParamValue('thema');
 
//Zorg ervoor dat je alle pagina's ziet met een thema
 
showUser = mw.util.getParamValue('user');
 
//Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
 
showTo = mw.util.getParamValue('to');
 
showFrom = mw.util.getParamValue('from');
 
if (showAantal) {
 
showAantal = showAantal + 1;
 
} else if (showAll) {
 
showAantal = text.length -1;
 
} else {
 
showAantal = 11;
 
}
 
lengtetext = text.length;
 
if ((showThema || showDone) || (showSkipThema || (showSkipDone || (showTo || (showFrom || showUser ))))) {
 
urlparam = true;
 
}
 
while (tempgetal !== showAantal) {
 
if (urlparam) {
 
Artikeln[tempgetal] = getURLParamNumber(text);
 
} else {
 
Artikeln[tempgetal] = getRandomNumber(lengtetext);
 
}
 
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
 
if (text[Artikeln[tempgetal]]["D"]) {
 
gedaan[tempgetal] = " disabled";
 
text[Artikeln[tempgetal]]["T"] = "&nbsp;";
 
Knop1x[tempgetal] = "";
 
Knop2x[tempgetal] = "";
 
Knop3x[tempgetal] = '<td colspan="3" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
 
} else {
 
gedaan[tempgetal] = "";
 
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1(' + tempgetal + ');"></td>';
 
Knop2x[tempgetal] = '<td><input type="radio" id="Radio2.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change2(' + tempgetal + ');"></td>';
 
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3(' + tempgetal + ');"></td>';
 
   
  +
function showProjectOpschonen(text) {
}
 
  +
// text = array
if (text[Artikeln[tempgetal]]["U"]){
 
  +
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
 
  +
document.title = "Opschonen - WikiKids";
} else {
 
vorigeuser[tempgetal] = "";
+
tempgetal = 1;
  +
tempnumber = 1;
}
 
  +
var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
if (text[Artikeln[tempgetal]]["O"]){
 
  +
var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
 
  +
tabel = "Deze artikels kun je controleren. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. "
} else {
 
  +
+ 'Als je specifieker wilt controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>. <br>Er zijn ook statistieken beschikbaar voor deze pagina, deze kun je <a href="https://wikikids.nl/Speciaal:Opschonen?action=stats">hier</a> vinden. '
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
 
  +
+ 'Om ervoor te zorgen dat je niets verliest, wordt je altijd gevraagd of je de pagina af wilt sluiten. '
}
 
  +
+ '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToListOpschonen()">Voeg toe</button><br>'
if (text[Artikeln[tempgetal]]["T"]){
 
  +
+ '<table class="wikitable"><tbody><tr> <th width="300"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th></tr>';
Thema[tempgetal] = '<center>' + text[Artikeln[tempgetal]]["T"] + '</center>';
 
  +
showAantal = mw.util.getParamValue('aantal');
} else {
 
  +
showAll = mw.util.getParamValue('allepaginas');
Thema[tempgetal] = '<input type="text" id=Thema' + tempgetal + ' name=Thema' + tempgetal + ' size=10">';
 
  +
showSkipDone = mw.util.getParamValue('notdone');
}
 
  +
//Zorg ervoor dat je al gecontroleerde pagina's niet ziet
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
 
  +
showDone = mw.util.getParamValue('done');
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
 
  +
//Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop2x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> <td>' + Thema[tempgetal] + '</td> </tr>';
 
  +
showUser = mw.util.getParamValue('user');
tempgetal += 1;
 
  +
showStartwith = mw.util.getParamValue('startwith');
}
 
  +
showTo = mw.util.getParamValue('to');
// text = array
 
  +
showFrom = mw.util.getParamValue('from');
eindetabel += '</tbody></table> <button onclick="startIT()">Opslaan</button>';
 
  +
if (showAantal === 'max') {
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
  +
showAantal = text.length - 1;
mw.notify("Welkom!");
 
  +
showMax = true;
  +
showAll = true;
  +
} else if (showAantal) {
  +
showAantal = parseInt(showAantal) + 1;
  +
} else if (showAll) {
  +
showAantal = text.length - 1;
  +
}
  +
if ( showDone || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal)))))) {
  +
} else {
  +
showAantal = 51;
  +
showSkipDone = true;
  +
}
  +
lengtetext = text.length;
  +
while (tempnumber !== showAantal) {
  +
Artikeln[tempgetal] = getURLParamNumberOpschonen(text);
  +
if (Artikeln[tempgetal] === 'exit') {
  +
tempnumber = -1;
  +
showAantal = -1;
  +
} else {
  +
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
  +
if (text[Artikeln[tempgetal]]["D"]) {
  +
gedaan[tempgetal] = " disabled";
  +
linkextra[tempgetal] = "Done";
  +
Knop1x[tempgetal] = "";
  +
Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
  +
} else {
  +
gedaan[tempgetal] = "";
  +
linkextra[tempgetal] = "Niet";
  +
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
  +
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
  +
  +
}
  +
if (text[Artikeln[tempgetal]]["U"]) {
  +
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
  +
} else {
  +
vorigeuser[tempgetal] = "";
  +
}
  +
if (text[Artikeln[tempgetal]]["O"]) {
  +
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
  +
} else {
  +
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
  +
}
  +
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
  +
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
  +
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
  +
tempgetal += 1;
  +
if (showMax) {
  +
tempnumber = allNummer;
  +
} else {
  +
tempnumber = tempgetal;
  +
}
  +
}
  +
}
  +
// text = array
  +
eindetabel += '</tbody></table> <button onclick="startITOpschonen()">Opslaan</button> Dit kan een paar seconden duren. Wacht totdat je ziet dat de wijziging is opgeslagen. ';
  +
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
  +
mw.notify("Welkom!");
 
}
 
}
   
function getOnly (text, type) {
+
function getURLParamNumberOpschonen(text, nummer) {
  +
willekeuriggetal = 0;
randomNumber = getRandomNumber(lengtetext);
 
  +
while (willekeuriggetal === 0) {
console.log(randomNumber);
 
  +
willekeuriggetal = getRandomNumberOpschonen(text.length);
console.log(text[randomNumber]);
 
  +
if (willekeuriggetal === text.length) {
if (text[randomNumber][type]) {
 
return randomNumber;
+
return 'exit';
} else {
+
} else {
  +
if (showUser) {
return getOnly(text, type);
 
  +
if (text[willekeuriggetal]["U"] === showUser) {
}
 
  +
} else {
  +
willekeuriggetal = 0;
  +
}
  +
}
  +
if (showDone) {
  +
if (text[willekeuriggetal]["D"]) {
  +
} else {
  +
willekeuriggetal = 0;
  +
}
  +
} else if (showSkipDone) {
  +
if (text[willekeuriggetal]["D"]) {
  +
willekeuriggetal = 0;
  +
}
  +
}
  +
if (showStartwith) {
  +
var re = new RegExp('^' + showStartwith, "g");
  +
if (text[willekeuriggetal]["N"] !== text[willekeuriggetal]["N"].replace(re, "newstring")) {
  +
console.log(text[willekeuriggetal]["N"]);
  +
} else {
  +
willekeuriggetal = 0;
  +
}
  +
}
  +
if (showFrom) {
  +
if (text[willekeuriggetal]["N"]) {
  +
  +
}
  +
if (showTo) {
  +
if (text[willekeuriggetal]["N"]) {
  +
}
  +
}
  +
}
  +
}
  +
}
  +
return willekeuriggetal;
 
}
 
}
   
function getNot (text, type) {
+
function Change1Opschonen(getal) {
  +
document.getElementById('Opmerking' + getal).disabled = false;
randomNumber = getRandomNumber(lengtetext);
 
  +
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
if (text[randomNumber][type]) {
 
  +
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
return getNot(text, type);
 
} else {
 
return randomNumber;
 
}
 
 
}
 
}
  +
function getUser(text, user) {
 
  +
function Change3Opschonen(getal) {
randomNumber = getRandomNumber(lengtetext);
 
  +
Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
if (text[randomNumber]["U"] === user) {
 
  +
document.getElementById('Opmerking' + getal).disabled = true;
return randomNumber;
 
  +
document.getElementById('Opmerking' + getal).value = "";
} else {
 
return getUser(text, user);
 
}
 
 
}
 
}
   
function getURLParamNumber (text, nummer) {
+
function fromPageaddPageOpschonen() {
  +
var text;
if (showUser) {
 
  +
var artikel;
return getUser(text, showUser);
 
  +
var checkconfirm;
}
 
  +
var checkopmerking;
if (showThema) {
 
  +
getJSONTextOpschonen().done(function (text) {
return getOnly(text, "T");
 
  +
fromPageCheckOnListOpschonen(text);
}
 
  +
});
if (showDone) {
 
return getOnly(text, "D");
 
}
 
if (showSkipDone) {
 
return getNot(text, "D");
 
}
 
if (showSkipThema) {
 
return getNot(text, "T");
 
}
 
 
}
 
}
   
  +
function fromPageCheckOnListOpschonen(text) {
  +
if (!Array.isArray(text)) {
  +
text = JSON.parse(text);
  +
}
  +
if (!text[1]["N"]) {
  +
text = JSON.parse(text);
  +
}
  +
addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
  +
for (var i = 0, iLen = text.length; i < iLen; i++) {
  +
if (text[i].N == addarticle) Nummer = i;
  +
}
  +
if (!Nummer) {
  +
api.get({
  +
action: "query",
  +
titles: addarticle,
  +
redirects: true,
  +
}).then(function (ret) {
  +
if (ret.query.redirects) {
  +
alreadydone = true;
  +
mw.notify("Pagina is een redirect.");
  +
} else {
  +
$.each(ret.query.pages, function () {
  +
if (this.missing !== "") {
  +
if (this.ns === 0) {
  +
Nummer = text.length;
  +
text[text.length] = { "N": addarticle, "D": "D", "U": mw.config.get('wgUserName') };
  +
} else {
  +
alreadydone = true;
  +
mw.notify("Pagina staat niet in de hoofdnaamruimte.");
  +
}
  +
} else {
  +
alreadydone = true;
  +
mw.notify("Pagina bestaat niet. ");
  +
}
  +
}, function (error) {
  +
});
  +
}
  +
});
  +
} else if (text[Nummer]["D"] === "D") {
  +
mw.notify("Dit aritkel is al gecontroleerd door " + text[Nummer]["U"]);
  +
alreadydone = true;
  +
} else {
  +
text[Nummer]["D"] = "D";
  +
text[Nummer]["U"] = mw.config.get('wgUserName');
  +
}
  +
fromPageSaveOpschonen(text);
  +
}
   
function Change1(getal){
+
function fromPageSaveOpschonen(text) {
  +
if (alreadydone) {
document.getElementById('Thema' + getal).disabled = true;
 
  +
} else if (!Nummer) {
document.getElementById('Opmerking' + getal).disabled = false;
 
  +
setTimeout(function () {fromPageSaveOpschonen(text)}, 250);
Thematemp[getal] = document.getElementById('Thema' + getal).value;
 
  +
} else {
document.getElementById('Thema' + getal).value = "";
 
  +
checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
  +
if (checkopmerking === null) {
  +
} else if (checkopmerking === '') {
  +
editPageNowOpschonen(text);
  +
} else {
  +
text[Nummer]["O"] = checkopmerking;
  +
editPageNowOpschonen(text);
  +
}
  +
}
 
}
 
}
   
function Change2(getal){
+
function addArticleToListOpschonen(artikel) {
  +
if (!text[1]["N"]) {
Thematempx = document.getElementById('Thema' + getal).value;
 
  +
text = JSON.parse(text);
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
 
  +
}
document.getElementById('Thema' + getal).disabled = false;
 
  +
addarticle = undefined;
document.getElementById('Opmerking' + getal).disabled = false;
 
  +
var comesfromcookie;
document.getElementById('Thema' + getal).value = Thematemp[getal] ? Thematemp[getal] : Thematempx ? Thematempx : "";
 
  +
if (artikel) {
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
 
  +
addarticle = artikel;
  +
comesfromcookie = true;
  +
} else {
  +
addarticle = document.getElementById('addarticle').value.replace(/ /g, '_');
  +
}
  +
for (var i = 0, iLen = text.length; i < iLen; i++) {
  +
if (text[i].N == addarticle) Nummer = i;
  +
}
  +
if (!Nummer) {
  +
api.get({
  +
action: "query",
  +
titles: addarticle,
  +
redirects: true,
  +
}).then(function (ret) {
  +
if (ret.query.redirects) {
  +
mw.notify("Pagina is een redirect, kan niet gecontroleerd worden.");
  +
} else {
  +
$.each(ret.query.pages, function () {
  +
if (this.missing !== "") {
  +
if (this.ns === 0) {
  +
Nummer = text.length;
  +
text[text.length] = { "N": addarticle };
  +
} else {
  +
mw.notify("Pagina staat niet in de hoofdnaamruimte.");
  +
}
  +
} else {
  +
mw.notify("Pagina bestaat niet. ");
  +
}
  +
}, function (error) {
  +
});
  +
}
  +
});
  +
}
  +
if (Nummer) {
  +
tempgetal = 1;
  +
var gewenstelengte = Artikelr.length;
  +
if (gewenstelengte === 0) {
  +
gewenstelengte = 1;
  +
tempgetal = 1;
  +
}
  +
console.log(gewenstelengte + ":" + tempgetal);
  +
while (tempgetal !== gewenstelengte) {
  +
if (document.getElementById('Radio1.' + tempgetal)) {
  +
Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
  +
Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
  +
Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
  +
Waardes['Opmerkingdis'][tempgetal] = document.getElementById('Opmerking' + tempgetal).disabled;
  +
}
  +
tempgetal += 1;
  +
}
  +
tempgetal = Artikelr.length;
  +
Artikeln[tempgetal] = Nummer;
  +
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
  +
if (text[Artikeln[tempgetal]]["D"]) {
  +
gedaan[tempgetal] = " disabled";
  +
linkextra[tempgetal] = "Done";
  +
Knop1x[tempgetal] = "";
  +
Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold;">Gedaan</td>';
  +
} else {
  +
gedaan[tempgetal] = "";
  +
linkextra[tempgetal] = "Niet";
  +
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
  +
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
  +
}
  +
if (text[Artikeln[tempgetal]]["U"]) {
  +
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
  +
} else {
  +
vorigeuser[tempgetal] = "";
  +
}
  +
if (text[Artikeln[tempgetal]]["O"]) {
  +
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
  +
} else {
  +
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
  +
}
  +
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
  +
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
  +
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
  +
mw.notify("Artikel toegevoegd op deze pagina.");
  +
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
  +
tempgetalxyz = tempgetal;
  +
tempgetal = 1;
  +
while (tempgetal !== gewenstelengte) {
  +
document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
  +
document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
  +
document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
  +
document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
  +
tempgetal += 1;
  +
}
  +
if (comesfromcookie) {
  +
document.getElementById('Radio1.' + tempgetalxyz).checked = true;
  +
Change1Opschonen(tempgetalxyz);
  +
comesfromcookie = false;
  +
}
  +
Nummer = undefined;
  +
}
 
}
 
}
   
function Change3(getal){
+
function editPageNowOpschonen(textx) {
  +
while (textx) {
document.getElementById('Thema' + getal).disabled = true;
 
  +
text = textx;
document.getElementById('Opmerking' + getal).disabled = true;
 
  +
textx = false;
Thematemp[getal] = document.getElementById('Thema' + getal).value;
 
  +
}
Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
 
  +
if (Array.isArray(text)) {
document.getElementById('Thema' + getal).value = "";
 
  +
text = JSON.stringify(text);
document.getElementById('Opmerking' + getal).value = "";
 
  +
}
  +
api.get({
  +
action: 'query',
  +
prop: 'info',
  +
intoken: 'edit',
  +
titles: 'kaslv', //Pagina moet niet bestaan.
  +
}).done(
  +
function (data) {
  +
edit_token = data.query.pages['-1'].edittoken;
  +
}).done(function (data) {
  +
api.post({
  +
'action': 'edit',
  +
'title': "Gebruiker:Rots61/Test.json",
  +
'text': text,
  +
'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
  +
'tags': 'Opschonen',
  +
'bot': true,
  +
'token': edit_token,
  +
}).done(
  +
function (data) {
  +
if (data.edit.result == "Success") {
  +
mw.notify("Opgeslagen!", { autoHide: false });
  +
} else {
  +
mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
  +
}
  +
console.log(data.edit);
  +
isOpgeslagenOpschonen = true;
  +
document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
  +
document.getElementById('bodyContent').innerHTML = "Herlaad de pagina.";
  +
});
  +
});
 
}
 
}
   
function addArticleToList () {
+
function startITOpschonen() {
if (!text[1]["N"]) {
+
if (!Array.isArray(text)) {
text = JSON.parse(text);
+
text = JSON.parse(text);
  +
}
}
 
  +
tempgetal = 1;
addarticle = undefined;
 
  +
highArtikelr = Artikelr.length;
addarticle = document.getElementById('addarticle').value;
 
  +
while (tempgetal !== highArtikelr) {
for (var i=0, iLen=text.length; i<iLen; i++) {
 
  +
if (text[Artikeln[tempgetal]]["D"]) {
if (text[i].N == addarticle) Nummer = i;
 
  +
} else {
}
 
  +
console.log(text[Artikeln[tempgetal]]);
if (!Nummer) {
 
  +
getKnop3 = document.getElementById("Radio3." + tempgetal);
mw.notify("Deze pagina staat niet op de lijst. Hij is dus na pas in 2023 gemaakt. Of al eerder gecontroleerd door Rots61.");
 
  +
if (getKnop3 && getKnop3.checked) {
} else {
 
  +
} else {
tempgetal = Artikelr.length;
 
  +
var getopmerking = document.getElementById("Opmerking" + tempgetal);
Artikeln[tempgetal] = Nummer;
 
  +
if (getopmerking && getopmerking.value) {
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
 
  +
getopmerking = getopmerking.value;
if (text[Artikeln[tempgetal]]["D"]) {
 
  +
} else {
gedaan[tempgetal] = " disabled";
 
  +
getopmerking = "";
text[Artikeln[tempgetal]]["T"] = "&nbsp;";
 
  +
}
Knop1x[tempgetal] = "";
 
  +
getKnop1 = document.getElementById("Radio1." + tempgetal);
Knop2x[tempgetal] = "";
 
  +
if (getKnop1 && getKnop1.checked) {
Knop3x[tempgetal] = '<td colspan="3" style="color:green; font-weight: bold;">Gedaan</td>';
 
  +
if (getopmerking) {
} else {
 
  +
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
gedaan[tempgetal] = "";
 
  +
text[Artikeln[tempgetal]]["O"] = getopmerking;
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1(' + tempgetal + ');"></td>';
 
  +
text[Artikeln[tempgetal]]["D"] = "D";
Knop2x[tempgetal] = '<td><input type="radio" id="Radio2.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change2(' + tempgetal + ');"></td>';
 
  +
} else {
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3(' + tempgetal + ');"></td>';
 
  +
text[Artikeln[tempgetal]]["D"] = "D";
 
  +
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
}
 
  +
}
if (text[Artikeln[tempgetal]]["U"]){
 
  +
} else if (getopmerking) {
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
 
  +
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
} else {
 
vorigeuser[tempgetal] = "";
+
text[Artikeln[tempgetal]]["O"] = getopmerking;
  +
}
}
 
  +
}
if (text[Artikeln[tempgetal]]["O"]){
 
  +
}
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
 
  +
tempgetal += 1;
} else {
 
  +
}
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
 
  +
editPageNowOpschonen(text);
}
 
if (text[Artikeln[tempgetal]]["T"]){
 
Thema[tempgetal] = '<center>' + text[Artikeln[tempgetal]]["T"] + '</center>';
 
} else {
 
Thema[tempgetal] = '<input type="text" id=Thema' + tempgetal + ' name=Thema' + tempgetal + ' size=10">';
 
}
 
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
 
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
 
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop2x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> <td>' + Thema[tempgetal] + '</td> </tr>';
 
mw.notify("Artikel toegevoegd op deze pagina.");
 
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
}
 
Nummer = undefined;
 
 
}
 
}
   
function startIT() {
+
function getJSONTextOpschonen() {
  +
return api.get({
if (!Array.isArray(text)) {
 
  +
action: "query",
text = JSON.parse(text);
 
  +
prop: "revisions",
}
 
  +
titles: "Gebruiker:Rots61/Test.json",
tempgetal = 1;
 
  +
rvlimit: "1",
highArtikelr = Artikelr.length;
 
  +
rvprop: "content",
while (tempgetal !== highArtikelr) {
 
  +
rvslots: "main",
if (text[Artikeln[tempgetal]]["D"]) {
 
  +
}).then(function (data) {
} else {
 
  +
temp = data.query.pages;
getKnop3 = document.getElementById("Radio3." + tempgetal);
 
  +
temp = temp[148926];
if (getKnop3 && getKnop3.checked) {
 
  +
temp = temp.revisions;
} else {
 
  +
temp = temp[0];
var getonderwerp = document.getElementById("Thema" + tempgetal);
 
  +
text = temp.slots.main;
if (getonderwerp && getonderwerp.value) {
 
  +
text = text["*"];
getonderwerp = getonderwerp.value;
 
  +
return JSON.parse(text);
} else {
 
  +
});
getonderwerp = "";
 
}
 
var getopmerking = document.getElementById("Opmerking" + tempgetal);
 
if (getopmerking && getopmerking.value) {
 
getopmerking = getopmerking.value;
 
} else {
 
getopmerking = "";
 
}
 
getKnop1 = document.getElementById("Radio1." + tempgetal);
 
getKnop2 = document.getElementById("Radio2." + tempgetal);
 
if (getKnop1 && getKnop1.checked) {
 
if (getopmerking) {
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
text[Artikeln[tempgetal]]["O"] = getopmerking;
 
text[Artikeln[tempgetal]]["D"] = "D";
 
} else {
 
text[Artikeln[tempgetal]]["D"] = "D";
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
}
 
} else if ((getKnop2 && getKnop2.checked) || getopmerking || getonderwerp) {
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
text[Artikeln[tempgetal]]["O"] = getopmerking;
 
text[Artikeln[tempgetal]]["T"] = getonderwerp;
 
}
 
}
 
}
 
tempgetal +=1;
 
}
 
editpage();
 
 
}
 
}
   
function getJSONText() {
+
function getRandomNumberOpschonen(lengtetext) {
  +
if (showAll) {
return api.get({
 
  +
allNummer += 1;
action: "query",
 
  +
return allNummer;
prop: "revisions",
 
  +
}
titles: "Gebruiker:Rots61/Test.json",
 
  +
return Math.floor(Math.random() * lengtetext);
rvlimit: "1",
 
rvprop: "content",
 
rvslots: "main",
 
}).then(function(data) {
 
temp = data.query.pages;
 
temp = temp[148926];
 
temp = temp.revisions;
 
temp = temp[0];
 
text = temp.slots.main;
 
text = text["*"];
 
return JSON.parse(text);
 
});
 
 
}
 
}
   
function editpage() {
+
function startHintsOpschonen() {
  +
htmltext = document.getElementById('mw-content-text').innerHTML;
if (!Array.isArray(text)) {
 
  +
paginalink = 'https://wikikids.nl/Wikikids:Wikiproject/Opschonen#';
text = JSON.parse(text);
 
  +
document.getElementById('mw-content-text').innerHTML = '<div id="gadget-ophalen">Hints ophalen</div>'
} else {
 
  +
+ '<div id="gadget-hint-standaard">Er kunnen taal of spellingsfouten in het artikel staan. De opmaak kan te wensen overlaten. Ook kan de informatie niet kloppen. </div>'
text = JSON.stringify(text);
 
  +
+ '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
}
 
  +
+ '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
api.get({
 
  +
+ '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
action: 'query',
 
  +
+ '<span id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. <span id="gadget-hint-welportaal" style="color:green; display:none;">(Wel een portaal) </span>(<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</span>'
prop: 'info',
 
  +
+ '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
intoken: 'edit',
 
  +
+ '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
titles: 'kaslv', //Pagina moet niet bestaan.
 
  +
+ '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links_op_pagina">Wat moet ik doen?</a>)</div>'
}).done(
 
  +
+ '<div id="gadget-hint-woordenschat" style="display:none;">Ter informatie: Woordenschatartikel</div>'
function(data) {
 
  +
+ '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
edit_token = data.query.pages['-1'].edittoken;
 
  +
+ '<div id="gadget-hint-haslinks-dp" style="display:none;">Er wordt gelinkt naar deze doorverwijspagina. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
}).done(function(data) {
 
  +
+ '<div id="gadget-hint-hanssain" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Hanssain. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
api.post({
 
  +
+ '<div id="gadget-hint-mike1023" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Mike1023. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
'action': 'edit',
 
  +
+ '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
'title': "Gebruiker:Rots61/Test.json",
 
  +
+ '<hr id="gadget-ophalenlijn>'
'text': text,
 
  +
+ document.getElementById('mw-content-text').innerHTML;
'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
 
  +
getFirstAuteur();
'tags': 'Opschonen',
 
  +
getTextLengthOpschonen();
'bot': true,
 
  +
getBegOpschonen();
'token': edit_token,
 
  +
checkIfDPOpschonen();
}).done(
 
  +
getLinksOut();
function(data) {
 
  +
checkIfChecked();
if (data.edit.result == "Success") {
 
  +
getWoordenschat();
mw.notify("Opgeslagen!", { autoHide: false });
 
  +
getExterneLinks();
} else {
 
  +
setTimeout(removeLoadingOpschonen, 1500);
mw.notify("Mislukt, meldt dit op de OP van Rots61", { autoHide: false });
 
}
 
console.log(data.edit);
 
document.getElementById('bodyContent').innerHTML = "Opslaan gelukt. Herlaad de pagina om hem opnieuw te gebruiken. ";
 
});
 
});
 
 
}
 
}
   
function getRandomNumber (lengtetext) {
+
function removeLoadingOpschonen() {
if (showAll) {
+
if (!woordenschat) {
  +
if (isDP) {
allNummer += 1;
 
  +
if (linksopartikel !== 0) {
return allNummer;
 
  +
console.log(linksopartikel);
}
 
  +
document.getElementById('gadget-hint-haslinks-dp').style.display = "";
return Math.floor(Math.random() * lengtetext) ;
 
  +
}
  +
} else {
  +
getLinksIn();
  +
getCategoriesOpschonen();
  +
if (articlesize > 2000) {
  +
if (beg) {
  +
document.getElementById('gadget-hint-grootbeg').style.display = "";
  +
}
  +
if (linksopartikel < 5) {
  +
document.getElementById('gadget-hint-weiniglinks').style.display = "";
  +
}
  +
} else if (linksopartikel < 2) {
  +
document.getElementById('gadget-hint-weiniglinks').style.display = "";
  +
}
  +
}
  +
}
  +
api.get({
  +
action: "query",
  +
prop: "linkshere",
  +
titles: articletitle,
  +
lhnamespace: "100",
  +
lhlimit: "50",
  +
lhshow: "!redirect",
  +
}).then(function (data) {
  +
temp = data.query.pages[articleId];
  +
if (typeof temp.linkshere === 'undefined') {
  +
} else {
  +
document.getElementById('gadget-hint-welportaal').style.display = "";
  +
document.getElementById('gadget-hint-geenlinks').style.color = "";
  +
}
  +
});
  +
document.getElementById("gadget-ophalen").innerHTML = "";
 
}
 
}
   
function startHints(){
+
function getTextLengthOpschonen() {
  +
return api.get({
htmltext = document.getElementById('mw-content-text').innerHTML;
 
  +
action: "query",
paginalink = 'https://wikikids.nl/Wikikids:Opschonen#';
 
  +
prop: "revisions",
document.getElementById('mw-content-text').innerHTML = '<span id="gadget-ophalen">Hints ophalen</span>'
 
  +
titles: articletitle,
+ '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
 
  +
rvlimit: "1",
+ '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
 
  +
rvprop: "content|size",
+ '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
 
  +
rvslots: "main",
+ '<div id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. (<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</div>'
 
  +
}).then(function (data) {
+ '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
 
  +
temp = data.query.pages;
+ '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
 
  +
temp = temp[articleId].revisions["0"].size;
+ '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links">Wat moet ik doen?</a>)</div>'
 
  +
articlesize = temp;
+ '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
 
  +
return temp;
+ '<div id="gadget-hint-gebruiker" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door een gebruiker. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
 
  +
});
+ '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
 
+ '<hr id="gadget-ophalenlijn>'
 
+ document.getElementById('mw-content-text').innerHTML;
 
getFirstAuteur();
 
checkIfChecked();
 
getCategories();
 
getLinksIn();
 
getTextLength();
 
getBeg();
 
getLinksOut();
 
setTimeout(removeloading,2000);
 
// Gecontroleerd, gebruiker, extlink, vreemde link, http, geencat, geenlinks
 
//Moet nog: weiniglinks, grootkopje, dp
 
 
}
 
}
   
function removeloading (){
+
function checkIfDPOpschonen(){
  +
return api.get({
if (articlesize >2000) {
 
  +
action: "query",
if (beg) {
 
  +
prop: "categories",
document.getElementById('gadget-hint-grootbeg').style.display = "";
 
  +
clcategories: "Categorie:Wikikids:Doorverwijspagina",
}
 
  +
titles: articletitle,
if (linksopartikel < 5) {
 
  +
}).then(function (data) {
document.getElementById('gadget-hint-weiniglinks').style.display = "";
 
  +
temp = data.query.pages;
}
 
  +
temp = temp[articleId];
} else if (linksopartikel < 2) {
 
  +
if (typeof temp.categories !== 'undefined') {
document.getElementById('gadget-hint-weiniglinks').style.display = "";
 
  +
isDP = true;
}
 
  +
}
document.getElementById("gadget-ophalen").innerHTML="";
 
  +
});
 
}
 
}
   
function getTextLength (){
+
function getCategoriesOpschonen() {
return api.get( {
+
return api.get({
action:"query",
+
action: "query",
prop: "revisions",
+
prop: "categories",
titles: articletitle,
+
titles: articletitle,
  +
clshow: "!hidden",
rvlimit: "1",
 
  +
}).then(function (data) {
rvprop: "content|size",
 
  +
temp = data.query.pages[articleId].categories;
rvslots: "main",
 
  +
if (!temp) {
}).then( function (data) {
 
  +
document.getElementById("gadget-hint-geencat").style.display = "";
temp = data.query.pages;
 
  +
}
temp = temp[articleId].revisions["0"].size;
 
  +
});
articlesize = temp;
 
return temp;
 
});
 
 
}
 
}
   
function getCategories () {
+
function getFirstAuteur() {
return api.get( {
+
return api.get({
action:"query",
+
action: "query",
prop: "categories",
+
prop: "revisions",
titles: articletitle,
+
titles: articletitle,
  +
rvlimit: "1",
clshow: "!hidden",
 
  +
rvprop: "user",
}).then( function (data) {
 
  +
rvdir: "newer",
temp = data.query.pages[articleId].categories;
 
  +
rvslots: "main",
if (!temp) {
 
  +
}).then(function (data) {
document.getElementById("gadget-hint-geencat").style.display="";
 
  +
temp = data.query.pages[articleId].revisions[0].user;
}
 
  +
if (temp === "Hanssain") {
});
 
  +
document.getElementById("gadget-hint-hanssain").style.display = "";
  +
}
  +
if (temp === "Mike1023") {
  +
document.getElementById("gadget-hint-mike1023").style.display = "";
  +
}
  +
});
 
}
 
}
   
function getFirstAuteur (){
+
function getWoordenschat() {
return api.get( {
+
return api.get({
action:"query",
+
action: "query",
prop: "revisions",
+
prop: "categories",
  +
clcategories: "Category:Woordenschat",
titles: articletitle,
 
  +
titles: articletitle,
rvlimit: "1",
 
  +
}).then(function (data) {
rvprop: "user",
 
  +
temp = data.query.pages;
rvdir: "newer",
 
  +
temp = temp[articleId];
rvslots: "main",
 
  +
if (typeof temp.categories !== 'undefined') {
}).then( function (data) {
 
  +
woordenschat = true;
temp = data.query.pages[articleId].revisions[0].user;
 
  +
document.getElementById('gadget-hint-woordenschat').style.display = "";
if (temp === "Hanssain") {
 
  +
}
document.getElementById("gadget-hint-gebruiker").style.display="";
 
  +
});
}
 
});
 
 
}
 
}
   
function getBeg () {
+
function getBegOpschonen() {
return api.get( {
+
return api.get({
 
action: "query",
 
action: "query",
 
prop: "categories",
 
prop: "categories",
 
clcategories: "Category:WikiKids:Beginnetje",
 
clcategories: "Category:WikiKids:Beginnetje",
titles: articletitle,
+
titles: articletitle,
} ).then( function (data) {
+
}).then(function (data) {
temp = data.query.pages;
+
temp = data.query.pages;
temp = temp[articleId];
+
temp = temp[articleId];
if (typeof temp.categories !== 'undefined') {
+
if (typeof temp.categories !== 'undefined') {
beg = true;
+
beg = true;
}
+
}
 
});
 
});
 
}
 
}
   
function getLinksOut() {
+
function getLinksOut() {
return api.get( {
+
return api.get({
 
action: "query",
 
action: "query",
 
prop: "links",
 
prop: "links",
titles: articletitle,
+
titles: articletitle,
 
pllimit: "5000",
 
pllimit: "5000",
} ).then( function (data) {
+
}).then(function (data) {
temp = data.query.pages;
+
temp = data.query.pages;
temp = temp[articleId];
+
temp = temp[articleId];
if (typeof temp.links !== 'undefined') {
+
if (typeof temp.links !== 'undefined') {
linksopartikel = temp.links.length;
+
linksopartikel = temp.links.length;
getDP();
+
getDP();
} else {
+
} else {
linksopartikel = 0;
+
linksopartikel = 0;
}
+
}
} );
+
});
 
}
 
}
   
 
function getLinksIn() {
 
function getLinksIn() {
api.get( {
+
api.get({
 
action: "query",
 
action: "query",
 
prop: "linkshere",
 
prop: "linkshere",
titles: articletitle,
+
titles: articletitle,
 
lhnamespace: "0",
 
lhnamespace: "0",
 
lhlimit: "50",
 
lhlimit: "50",
 
lhshow: "!redirect",
 
lhshow: "!redirect",
} ).then( function (data) {
+
}).then(function (data) {
temp = data.query.pages[articleId];
+
temp = data.query.pages[articleId];
if (typeof temp.linkshere === 'undefined') {
+
if (typeof temp.linkshere === 'undefined') {
document.getElementById("gadget-hint-geenlinks").style.display="";
+
document.getElementById("gadget-hint-geenlinks").style.display = "";
}
+
}
} );
+
});
 
}
 
}
   
function checkIfChecked () {
+
function checkIfChecked() {
  +
valuechecked = mw.util.getParamValue('opschonengecontroleerd');
getJSONText().done( function(text) {
 
  +
if (valuechecked === "Done") {
for (var i=0, iLen=text.length; i<iLen; i++) {
 
  +
document.getElementById("gadget-hint-gecontroleerd").style.display = "";
if (text[i].N == articletitle) checkChecked = text[i]["D"];
 
  +
} else {
}
 
  +
getJSONTextOpschonen().done(function (text) {
if (checkChecked === "D") {
 
  +
for (var i = 0, iLen = text.length; i < iLen; i++) {
document.getElementById("gadget-hint-gecontroleerd").style.display="";
 
  +
if (text[i].N == articletitle) checkChecked = text[i]["D"];
}
 
  +
}
});
 
  +
if (checkChecked === "D") {
  +
document.getElementById("gadget-hint-gecontroleerd").style.display = "";
  +
}
  +
});
  +
}
 
}
 
}
   
function getDP () {
+
function getDP() {
api.get( {
+
api.get({
 
action: "query",
 
action: "query",
 
generator: "links",
 
generator: "links",
 
prop: "categories",
 
prop: "categories",
titles: articletitle,
+
titles: articletitle,
 
gpllimit: "5000",
 
gpllimit: "5000",
 
cllimit: "5000",
 
cllimit: "5000",
 
clcategories: "Categorie:Wikikids:Doorverwijspagina",
 
clcategories: "Categorie:Wikikids:Doorverwijspagina",
} ).then( function (data) {
+
}).then(function (data) {
temp = data.query.pages;
+
temp = data.query.pages;
for (const property in temp) {
+
for (const property in temp) {
if (temp[property].categories) {
+
if (temp[property].categories) {
  +
console.log(temp[property].title);
document.getElementById("gadget-hint-dp").style.display="";
 
  +
document.getElementById("gadget-hint-dp").style.display = "";
}
 
  +
}
}
 
});
+
}
  +
});
 
}
 
}
   
function getExterneLinks() {
+
function getExterneLinks() {
api.get( {
+
api.get({
 
action: "query",
 
action: "query",
 
prop: "extlinks|categories",
 
prop: "extlinks|categories",
titles: articletitle,
+
titles: articletitle,
 
ellimit: "5000",
 
ellimit: "5000",
} ).then( function (data) {
+
}).then(function (data) {
temp = data.query.pages;
+
temp = data.query.pages;
temp = temp[articleId].extlinks;
+
temp = temp[articleId].extlinks;
if (typeof temp === 'undefined') {
+
if (typeof temp === 'undefined') {
} else {
+
} else {
var tempgetal = 0;
+
var tempgetal = 0;
while (typeof temp[tempgetal] !== 'undefined'){
+
var aantallinks = 0;
if ( temp[tempgetal]["*"].startsWith("http:") ) {
+
while (typeof temp[tempgetal] !== 'undefined') {
  +
if (temp[tempgetal]["*"].startsWith("http:")) {
document.getElementById("gadget-hint-http").style.display="";
 
} else if (temp[tempgetal]["*"].startsWith("https:")) {
+
document.getElementById("gadget-hint-http").style.display = "";
if (beg === true) {
+
} else if (temp[tempgetal]["*"].startsWith("https:")) {
  +
aantallinks +=1;
if (temp[tempgetal]["*"] == "https://schooltv.nl/zoekresultaten/?q=" + articletitle ) {
 
  +
} else {
} else if (temp[tempgetal]["*"] == "https://www.youtube.com/results?search_query=" + articletitle ) {
 
  +
document.getElementById("gadget-hint-vreemdelink").style.display = "";
} else if (temp[tempgetal]["*"] == "https://commons.wikimedia.org/w/index.php?title=Special:Search&search=" + articletitle + "&ns0=1&ns6=1&ns12=1&ns14=1&ns100=1&ns106=1") {
 
  +
}
} else if (temp[tempgetal]["*"] == "https://commons.wikimedia.org/w/index.php?search=" + articletitle + "&title=Special:MediaSearch&go=Go&type=image") {
 
} else if (temp[tempgetal]["*"] == "https://www.google.nl/search?q=" + articletitle ) {
+
tempgetal += 1;
} else if (temp[tempgetal]["*"] == "https://nl.wikipedia.org/wiki/" + articletitle) {
 
} else if (temp[tempgetal]["*"] == "https://wikikids.nl/Wikikids:Beeldbank") {
 
} else { document.getElementById("gadget-hint-extlink").style.display="";
 
}
 
} else {
 
document.getElementById("gadget-hint-extlink").style.display="";
 
}
 
} else {
 
document.getElementById("gadget-hint-vreemdelink").style.display="";
 
}
 
tempgetal += 1;
 
}
 
 
}
 
}
  +
if (beg === true) {
} );
 
  +
aantallinks -=6;
  +
}
  +
if (aantallinks > 0) {
  +
document.getElementById("gadget-hint-extlink").style.display = "";
  +
}
  +
}
  +
});
  +
}
  +
  +
function changeInstellingen() {
  +
var instelling = document.getElementById("instellingen").style.display;
  +
if (instelling === 'none') {
  +
document.getElementById("instellingen").style.display = "";
  +
document.getElementById("maxoption").disabled = false;
  +
} else {
  +
document.getElementById("instellingen").style.display = 'none';
  +
document.getElementById("maxoption").disabled = true;
  +
document.getElementById("user").value = "";
  +
document.getElementById("startwith").value = "";
  +
}
  +
}
  +
  +
function hulpGadgetOpschonen() {
  +
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
  +
document.title = "Help - Opschonen - WikiKids";
  +
infotext = '<input type="checkbox" id="allepaginas" onclick="changeInstellingen();">Krijg willekeurige pagina\'s. <br>'
  +
+ '<div id="instellingen">'
  +
+ 'Gebruiker: <input type="text" id="user"><br>'
  +
+ 'Alleen artikels die starten met: <input type="text" id="startwith"><br></div>'
  +
+ 'Gecontroleerd: <select name="done" id="done">'
  +
+ '<option value="notdone">Niet</option>'
  +
+ '<option value="xdone" selected>Maakt niet uit</option>'
  +
+ '<option value="done">Wel</option>'
  +
+ '</select><br>'
  +
+ 'Aantal: <select name="aantal" id="aantal">'
  +
+ '<option value="100">100</option>'
  +
+ '<option value="50" selected>50</option>'
  +
+ '<option value="10">10</option>'
  +
+ '<option value="0">0</option>'
  +
+ '<option value="max" id="maxoption">Max</option>'
  +
+ '</select>'
  +
+ '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
  +
+ ' Vragen? Laat het me weten';
  +
document.getElementById('bodyContent').innerHTML = terugnaaropschonen + infotext;
  +
}
  +
  +
function getsettings() {
  +
var allepaginasl = document.getElementById('allepaginas').checked;
  +
var startwithl = document.getElementById('startwith').value;
  +
var userl = document.getElementById('user').value;
  +
var aantall = document.getElementById('aantal').value;
  +
var donel = document.getElementById('done').value;
  +
var url = 'https://wikikids.nl/Speciaal:Opschonen?';
  +
if (allepaginasl) {
  +
} else {
  +
url += 'allepaginas=x&';
  +
}
  +
if (startwithl) {
  +
url += 'startwith=' + startwithl + '&';
  +
}
  +
if (donel === "done") {
  +
url += 'done=x&';
  +
} else if (donel === "notdone") {
  +
url += 'notdone=x&';
  +
}
  +
if (userl) {
  +
url += 'user=' + userl + '&';
  +
}
  +
url += 'aantal=' + aantall;
  +
window.location.href = url;
  +
}
  +
  +
function statsOpschonen(text){
  +
var xaantal = {"totaal": 300};
  +
var opschonenuser = [];
  +
for (const x of text) {
  +
if (x.D === "D") {
  +
xaantal.totaal += 1;
  +
if (x.U) {
  +
opschonenuser.push(x.U);
  +
if (xaantal[x.U]) {
  +
xaantal[x.U] += 1;
  +
} else {
  +
xaantal[x.U] = 1;
  +
}
  +
}
  +
}
  +
}
  +
var aantalwikikidsartikelen = 5000;
  +
api.get({
  +
action: "query",
  +
meta: 'siteinfo',
  +
siprop: 'statistics'
  +
}).then(function (ret) {
  +
aantalwikikidsartikelen = ret.query.statistics.articles;
  +
console.log('X', ret, aantalwikikidsartikelen);
  +
opschonenuser = removeDuplicates(opschonenuser);
  +
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
  +
document.title = "Opschonen - WikiKids";
  +
var tobody = `<br> Er zijn totaal ${xaantal.totaal} artikelen gecontroleerd. Dat is ${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000}% van WikiKids. Hieronder staan alle gebruikers die minimaal een artikel hebben gecontroleerd. <ul>`;
  +
tobody += `<div style="background-color:#eeeeee; width:400px;height:18px;float:left;margin-right:5px;border:1px solid #bbb;"><div style="background-color:#119000;width:${(xaantal.totaal/aantalwikikidsartikelen) * 100 * 4}px;height:18px;"><div style="font-weight:bold;width:400px;text-align:center;height:18px;line-height:18px;color:black;"><abbr title="7&nbsp;%"></abbr>${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000} / 100%</div></div></div><br>`;
  +
console.log(aantalwikikidsartikelen);
  +
for (const x of opschonenuser) {
  +
tobody += '<li>' + x + ' (aantal: ' + xaantal[x] + ')</li>';
  +
}
  +
tobody += '</ul>';
  +
document.getElementById('bodyContent').innerHTML = terugnaaropschonen + tobody;
  +
});
  +
}
  +
  +
function removeDuplicates(arr) {
  +
let unique = arr.reduce(function (acc, curr) {
  +
if (!acc.includes(curr))
  +
acc.push(curr);
  +
return acc;
  +
}, []);
  +
return unique;
  +
}
  +
  +
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
  +
var terugnaaropschonen = '<div id="contentSub"><span class="subpages">&lt; <a href="/Speciaal:Opschonen" title="Speciaal:Opschonen">Speciaal:Opschonen</a></span></div>';
  +
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
  +
var isOpgeslagenOpschonen = false;
  +
window.onbeforeunload = function() {
  +
if (!isOpgeslagenOpschonen) {
  +
return 'Weet je zeker dat je deze pagina wilt verlaten?';
  +
}
  +
return undefined;
  +
};
  +
if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
  +
var infotext;
  +
hulpGadgetOpschonen();
  +
} else if (mw.util.getParamValue('action') === 'stats') {
  +
getJSONTextOpschonen().done(function (text) {
  +
statsOpschonen(text);
  +
});
  +
} else {
  +
showAantal = parseInt(mw.util.getParamValue('aantal'));
  +
showUser = mw.util.getParamValue('user');
  +
showStartwith = mw.util.getParamValue('startwith');
  +
var tussenvoegsel;
  +
document.getElementById('bodyContent').innerHTML = "Laden... krijg je niets te zien? Maak hier dan een melding van bij mij met deze url:" + document.URL;
  +
var edit_token;
  +
var tempgetal;
  +
var temp;
  +
var Artikelr = [];
  +
var Artikeln = [];
  +
var Artikellink = [];
  +
var getUser;
  +
var Opmerkingtemp = [];
  +
var Opmerkingtempx;
  +
var Knop1x = [];
  +
var Knop3x = [];
  +
var Opmerking = [];
  +
var tabel;
  +
var eindetabel;
  +
var highArtikelr;
  +
var showAantal;
  +
var gedaan = [];
  +
var vorigeuser = [];
  +
var linkextra = [];
  +
var getKnop3;
  +
var getKnop1;
  +
var randomNumber;
  +
var showAll;
  +
var showSkipDone;
  +
var showSkipSkipped;
  +
var showDone;
  +
var addarticle;
  +
var paginalink;
  +
var checkChecked;
  +
var allNummer = 1;
  +
var showFrom;
  +
var showTo;
  +
var lengtetext;
  +
var showMax;
  +
var Waardes = { "Radio1": [], "Radio3": [], "Opmerking": [], "Opmerkingdis": []};
  +
//varvar
  +
getJSONTextOpschonen().done(function (text) {
  +
showProjectOpschonen(text);
  +
});
  +
}
 
}
 
}
   
  +
var showHints = mw.util.getParamValue('projectopschonen');
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
 
  +
if (showHints) {
document.getElementById('bodyContent').innerHTML = "Laden..., als dit langer dan 10 seconen duurt, melden bij Rots61 met de volledige url.";
 
  +
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
var api = new mw.Api();
 
  +
//varvar
var edit_token;
 
  +
var articletitle = mw.config.get('wgPageName');
var tempgetal;
 
  +
var articleId = mw.config.get('wgArticleId');
var temp;
 
var Artikelr = [];
+
var beg = false;
var Artikeln = [];
+
var isDP = false;
var Artikellink = [];
+
var link = 0;
var getUser;
+
var link2 = "";
  +
var temp;
var Thematemp = [];
 
  +
var temp2;
var Opmerkingtemp = [];
 
var Thematempx;
+
var linkhttp = 0;
var Opmerkingtempx;
+
var redirects = "";
var Knop1x = [];
+
var Hints = "";
  +
var htmltext;
var Knop2x = [];
 
  +
var Nummer;
var Knop3x = [];
 
  +
var CheckChecked;
var Opmerking = [];
 
  +
var articlesize;
var Thema = [];
 
var tabel;
+
var linksopartikel;
var eindetabel;
+
var valuechecked;
  +
var woordenschat = false;
var highArtikelr;
 
  +
startHintsOpschonen();
var showAantal;
 
var gedaan = [];
 
var vorigeuser = [];
 
var getKnop3;
 
var getKnop2;
 
var getKnop1;
 
var randomNumber;
 
var showAll;
 
var showSkipDone;
 
var showSkipSkipped;
 
var showDone;
 
var showThema;
 
var addarticle;
 
var paginalink;
 
var checkChecked;
 
var allNummer = 1;
 
var showFrom;
 
var showTo;
 
var showSkipThema;
 
var urlparam;
 
var lengtetext;
 
getJSONText().done( function(text) {
 
console.log(text);
 
showProject(text);
 
});
 
 
}
 
}
   
  +
if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1)) {
var showHints = mw.util.getParamValue( 'projectopschonen' );
 
  +
document.getElementById("mw-panel").innerHTML += `<nav id="p-op" style="background-color: #1D9CB9" class="vector-menu vector-menu-portal portal"
if (showHints) {
 
  +
aria-labelledby="p-op-label" role="navigation">
var articletitle = mw.config.get('wgPageName');
 
  +
<h3 id="p-op-label">
var articleId = mw.config.get('wgArticleId');
 
  +
<span>Opschonen</span>
var beg = false;
 
  +
</h3>
var api = new mw.Api();
 
  +
<div class="body vector-menu-content" style="border-bottom: 1px solid #1D9CB9">
var dp = false;
 
  +
<ul class="vector-menu-content-list">
var link = 0;
 
  +
<li>
var link2 = "";
 
  +
<a href="https://wikikids.nl/Speciaal:Opschonen">Speciaal:Opschonen</a>
var temp;
 
  +
</li>
var temp2;
 
  +
<li>
var linkhttp = 0;
 
  +
<a href="https://wikikids.nl/${mw.config.get('wgPageName')}?projectopschonen=x">Opschoon hints</a>
var redirects = "";
 
  +
</li>
var Hints = "";
 
  +
<li>
var htmltext;
 
  +
<button onclick="fromPageaddPageOpschonen()">Gecontroleerd</button>
var Nummer;
 
  +
</li>
var CheckChecked;
 
  +
</ul>
var articlesize;
 
  +
</div>
var linksopartikel;
 
  +
</nav>`;
startHints();
 
 
}
 
}

Huidige versie van 11 apr 2023 om 18:56

/* jshint sub:true maxerr:100000 */
// Gadget gemaakt door [[User:Rots61]]
// Documentatie op [[WikiKids:Opschonen]]
var text;
var api = new mw.Api();
var alreadydone;
var Nummer;

function showProjectOpschonen(text) {
    // text = array 
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
    document.title = "Opschonen - WikiKids";
    tempgetal = 1;
    tempnumber = 1;
    var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
    var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
    tabel = "Deze artikels kun je controleren. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. "
        + 'Als je specifieker wilt controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>. <br>Er zijn ook statistieken beschikbaar voor deze pagina, deze kun je <a href="https://wikikids.nl/Speciaal:Opschonen?action=stats">hier</a> vinden. '
        + 'Om ervoor te zorgen dat je niets verliest, wordt je altijd gevraagd of je de pagina af wilt sluiten. '
        + '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToListOpschonen()">Voeg toe</button><br>'
        + '<table class="wikitable"><tbody><tr> <th width="300"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th></tr>';
    showAantal = mw.util.getParamValue('aantal');
    showAll = mw.util.getParamValue('allepaginas');
    showSkipDone = mw.util.getParamValue('notdone');
    //Zorg ervoor dat je al gecontroleerde pagina's niet ziet
    showDone = mw.util.getParamValue('done');
    //Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
    showUser = mw.util.getParamValue('user');
    showStartwith = mw.util.getParamValue('startwith');
    showTo = mw.util.getParamValue('to');
    showFrom = mw.util.getParamValue('from');
    if (showAantal === 'max') {
        showAantal = text.length - 1;
        showMax = true;
        showAll = true;
    } else if (showAantal) {
        showAantal = parseInt(showAantal) + 1;
    } else if (showAll) {
        showAantal = text.length - 1;
    }
    if ( showDone || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal)))))) {
    } else {
        showAantal = 51;
        showSkipDone = true;
    }
    lengtetext = text.length;
    while (tempnumber !== showAantal) {
        Artikeln[tempgetal] = getURLParamNumberOpschonen(text);
        if (Artikeln[tempgetal] === 'exit') {
            tempnumber = -1;
            showAantal = -1;
        } else {
            Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
            if (text[Artikeln[tempgetal]]["D"]) {
                gedaan[tempgetal] = " disabled";
                linkextra[tempgetal] = "Done";
                Knop1x[tempgetal] = "";
                Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
            } else {
                gedaan[tempgetal] = "";
                linkextra[tempgetal] = "Niet";
                Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
                Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';

            }
            if (text[Artikeln[tempgetal]]["U"]) {
                vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
            } else {
                vorigeuser[tempgetal] = "";
            }
            if (text[Artikeln[tempgetal]]["O"]) {
                Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
            } else {
                Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
            }
            console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
            Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
            tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
            tempgetal += 1;
            if (showMax) {
                tempnumber = allNummer;
            } else {
                tempnumber = tempgetal;
            }
        }
    }
    // text = array
    eindetabel += '</tbody></table> <button onclick="startITOpschonen()">Opslaan</button> Dit kan een paar seconden duren. Wacht totdat je ziet dat de wijziging is opgeslagen. ';
    document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
    mw.notify("Welkom!");
}

function getURLParamNumberOpschonen(text, nummer) {
    willekeuriggetal = 0;
    while (willekeuriggetal === 0) {
        willekeuriggetal = getRandomNumberOpschonen(text.length);
        if (willekeuriggetal === text.length) {
            return 'exit';
        } else {
            if (showUser) {
                if (text[willekeuriggetal]["U"] === showUser) {
                } else {
                    willekeuriggetal = 0;
                }
            }
            if (showDone) {
                if (text[willekeuriggetal]["D"]) {
                } else {
                    willekeuriggetal = 0;
                }
            } else if (showSkipDone) {
                if (text[willekeuriggetal]["D"]) {
                    willekeuriggetal = 0;
                }
            }
            if (showStartwith) {
                var re = new RegExp('^' + showStartwith, "g");
                if (text[willekeuriggetal]["N"] !== text[willekeuriggetal]["N"].replace(re, "newstring")) {
                    console.log(text[willekeuriggetal]["N"]);
                } else {
                    willekeuriggetal = 0;
                }
            }
            if (showFrom) {
                if (text[willekeuriggetal]["N"]) {

                }
                if (showTo) {
                    if (text[willekeuriggetal]["N"]) {
                    }
                }
            }
        }
    }
    return willekeuriggetal;
}

function Change1Opschonen(getal) {
    document.getElementById('Opmerking' + getal).disabled = false;
    Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
    document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
}

function Change3Opschonen(getal) {
    Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
    document.getElementById('Opmerking' + getal).disabled = true;
    document.getElementById('Opmerking' + getal).value = "";
}

function fromPageaddPageOpschonen() {
    var text;
    var artikel;
    var checkconfirm;
    var checkopmerking;
    getJSONTextOpschonen().done(function (text) {
        fromPageCheckOnListOpschonen(text);
    });
}

function fromPageCheckOnListOpschonen(text) {
    if (!Array.isArray(text)) {
        text = JSON.parse(text);
    }
    if (!text[1]["N"]) {
        text = JSON.parse(text);
    }
    addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
    for (var i = 0, iLen = text.length; i < iLen; i++) {
        if (text[i].N == addarticle) Nummer = i;
    }
    if (!Nummer) {
        api.get({
            action: "query",
            titles: addarticle,
            redirects: true,
        }).then(function (ret) {
            if (ret.query.redirects) {
                alreadydone = true;
                mw.notify("Pagina is een redirect.");
            } else {
                $.each(ret.query.pages, function () {
                    if (this.missing !== "") {
                        if (this.ns === 0) {
                            Nummer = text.length;
                            text[text.length] = { "N": addarticle, "D": "D", "U": mw.config.get('wgUserName') };
                        } else {
                            alreadydone = true;
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
                        }
                    } else {
                        alreadydone = true;
                        mw.notify("Pagina bestaat niet. ");
                    }
                }, function (error) {
                });
            }
        });
    } else if (text[Nummer]["D"] === "D") {
        mw.notify("Dit aritkel is al gecontroleerd door " + text[Nummer]["U"]);
        alreadydone = true;
    } else {
        text[Nummer]["D"] = "D";
        text[Nummer]["U"] = mw.config.get('wgUserName');
    }
    fromPageSaveOpschonen(text);
}

function fromPageSaveOpschonen(text) {
    if (alreadydone) {
    } else if (!Nummer) {
        setTimeout(function () {fromPageSaveOpschonen(text)}, 250);
    } else {
        checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
        if (checkopmerking === null) {
        } else if (checkopmerking === '') {
            editPageNowOpschonen(text);
        } else {
            text[Nummer]["O"] = checkopmerking;
            editPageNowOpschonen(text);
        }
    }
}

function addArticleToListOpschonen(artikel) {
    if (!text[1]["N"]) {
        text = JSON.parse(text);
    }
    addarticle = undefined;
    var comesfromcookie;
    if (artikel) {
        addarticle = artikel;
        comesfromcookie = true;
    } else {
        addarticle = document.getElementById('addarticle').value.replace(/ /g, '_');
    }
    for (var i = 0, iLen = text.length; i < iLen; i++) {
        if (text[i].N == addarticle) Nummer = i;
    }
    if (!Nummer) {
        api.get({
            action: "query",
            titles: addarticle,
            redirects: true,
        }).then(function (ret) {
            if (ret.query.redirects) {
                mw.notify("Pagina is een redirect, kan niet gecontroleerd worden.");
            } else {
                $.each(ret.query.pages, function () {
                    if (this.missing !== "") {
                        if (this.ns === 0) {
                            Nummer = text.length;
                            text[text.length] = { "N": addarticle };
                        } else {
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
                        }
                    } else {
                        mw.notify("Pagina bestaat niet. ");
                    }
                }, function (error) {
                });
            }
        });
    }
    if (Nummer) {
        tempgetal = 1;
        var gewenstelengte = Artikelr.length;
        if (gewenstelengte === 0) {
            gewenstelengte = 1;
            tempgetal = 1;
        }
        console.log(gewenstelengte + ":" + tempgetal);
        while (tempgetal !== gewenstelengte) {
            if (document.getElementById('Radio1.' + tempgetal)) {
                Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
                Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
                Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
                Waardes['Opmerkingdis'][tempgetal] = document.getElementById('Opmerking' + tempgetal).disabled;
            }
            tempgetal += 1;
        }
        tempgetal = Artikelr.length;
        Artikeln[tempgetal] = Nummer;
        Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
        if (text[Artikeln[tempgetal]]["D"]) {
            gedaan[tempgetal] = " disabled";
            linkextra[tempgetal] = "Done";
            Knop1x[tempgetal] = "";
            Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold;">Gedaan</td>';
        } else {
            gedaan[tempgetal] = "";
            linkextra[tempgetal] = "Niet";
            Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
            Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
        }
        if (text[Artikeln[tempgetal]]["U"]) {
            vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
        } else {
            vorigeuser[tempgetal] = "";
        }
        if (text[Artikeln[tempgetal]]["O"]) {
            Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
        } else {
            Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
        }
        console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
        Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
        tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
        mw.notify("Artikel toegevoegd op deze pagina.");
        document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
        tempgetalxyz = tempgetal;
        tempgetal = 1;
        while (tempgetal !== gewenstelengte) {
            document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
            document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
            document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
            document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
            tempgetal += 1;
        }
        if (comesfromcookie) {
            document.getElementById('Radio1.' + tempgetalxyz).checked = true;
            Change1Opschonen(tempgetalxyz);
            comesfromcookie = false;
        }
        Nummer = undefined;
    }
}

function editPageNowOpschonen(textx) {
    while (textx) {
        text = textx;
        textx = false;
    }
    if (Array.isArray(text)) {
        text = JSON.stringify(text);
    }
    api.get({
        action: 'query',
        prop: 'info',
        intoken: 'edit',
        titles: 'kaslv', //Pagina moet niet bestaan. 
    }).done(
        function (data) {
            edit_token = data.query.pages['-1'].edittoken;
        }).done(function (data) {
            api.post({
                'action': 'edit',
                'title': "Gebruiker:Rots61/Test.json",
                'text': text,
                'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
                'tags': 'Opschonen',
                'bot': true,
                'token': edit_token,
            }).done(
                function (data) {
                    if (data.edit.result == "Success") {
                        mw.notify("Opgeslagen!", { autoHide: false });
                    } else {
                        mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
                    }
                    console.log(data.edit);
                    isOpgeslagenOpschonen = true;
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
                    document.getElementById('bodyContent').innerHTML = "Herlaad de pagina.";
                });
        });
}

function startITOpschonen() {
    if (!Array.isArray(text)) {
        text = JSON.parse(text);
    }
    tempgetal = 1;
    highArtikelr = Artikelr.length;
    while (tempgetal !== highArtikelr) {
        if (text[Artikeln[tempgetal]]["D"]) {
        } else {
            console.log(text[Artikeln[tempgetal]]);
            getKnop3 = document.getElementById("Radio3." + tempgetal);
            if (getKnop3 && getKnop3.checked) {
            } else {
                var getopmerking = document.getElementById("Opmerking" + tempgetal);
                if (getopmerking && getopmerking.value) {
                    getopmerking = getopmerking.value;
                } else {
                    getopmerking = "";
                }
                getKnop1 = document.getElementById("Radio1." + tempgetal);
                if (getKnop1 && getKnop1.checked) {
                    if (getopmerking) {
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                        text[Artikeln[tempgetal]]["O"] = getopmerking;
                        text[Artikeln[tempgetal]]["D"] = "D";
                    } else {
                        text[Artikeln[tempgetal]]["D"] = "D";
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                    }
                } else if (getopmerking) {
                    text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                    text[Artikeln[tempgetal]]["O"] = getopmerking;
                }
            }
        }
        tempgetal += 1;
    }
    editPageNowOpschonen(text);
}

function getJSONTextOpschonen() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: "Gebruiker:Rots61/Test.json",
        rvlimit: "1",
        rvprop: "content",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[148926];
        temp = temp.revisions;
        temp = temp[0];
        text = temp.slots.main;
        text = text["*"];
        return JSON.parse(text);
    });
}

function getRandomNumberOpschonen(lengtetext) {
    if (showAll) {
        allNummer += 1;
        return allNummer;
    }
    return Math.floor(Math.random() * lengtetext);
}

function startHintsOpschonen() {
    htmltext = document.getElementById('mw-content-text').innerHTML;
    paginalink = 'https://wikikids.nl/Wikikids:Wikiproject/Opschonen#';
    document.getElementById('mw-content-text').innerHTML = '<div id="gadget-ophalen">Hints ophalen</div>'
    	+ '<div id="gadget-hint-standaard">Er kunnen taal of spellingsfouten in het artikel staan. De opmaak kan te wensen overlaten. Ook kan de informatie niet kloppen. </div>'
        + '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
        + '<span id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. <span id="gadget-hint-welportaal" style="color:green; display:none;">(Wel een portaal) </span>(<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</span>'
        + '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links_op_pagina">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-woordenschat" style="display:none;">Ter informatie: Woordenschatartikel</div>'
        + '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-haslinks-dp" style="display:none;">Er wordt gelinkt naar deze doorverwijspagina. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-hanssain" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Hanssain. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-mike1023" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Mike1023. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
        + '<hr id="gadget-ophalenlijn>'
        + document.getElementById('mw-content-text').innerHTML;
    getFirstAuteur();
    getTextLengthOpschonen();
    getBegOpschonen();
    checkIfDPOpschonen();
    getLinksOut();
    checkIfChecked();
    getWoordenschat();
    getExterneLinks();
    setTimeout(removeLoadingOpschonen, 1500);
}

function removeLoadingOpschonen() {
    if (!woordenschat) {
    	if (isDP) {
    		if (linksopartikel !== 0) {
    			console.log(linksopartikel);
    			document.getElementById('gadget-hint-haslinks-dp').style.display = "";
    		}
    	} else {
    		getLinksIn();
   		    getCategoriesOpschonen();
    		if (articlesize > 2000) {
	            if (beg) {
	                document.getElementById('gadget-hint-grootbeg').style.display = "";
	            }
	            if (linksopartikel < 5) {
	                document.getElementById('gadget-hint-weiniglinks').style.display = "";
	            }
    		} else if (linksopartikel < 2) {
				document.getElementById('gadget-hint-weiniglinks').style.display = "";
    		}
    	}
    }
    api.get({
        action: "query",
        prop: "linkshere",
        titles: articletitle,
        lhnamespace: "100",
        lhlimit: "50",
        lhshow: "!redirect",
    }).then(function (data) {
        temp = data.query.pages[articleId];
        if (typeof temp.linkshere === 'undefined') {
        } else {
            document.getElementById('gadget-hint-welportaal').style.display = "";
            document.getElementById('gadget-hint-geenlinks').style.color = "";
        }
    });
    document.getElementById("gadget-ophalen").innerHTML = "";
}

function getTextLengthOpschonen() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: articletitle,
        rvlimit: "1",
        rvprop: "content|size",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId].revisions["0"].size;
        articlesize = temp;
        return temp;
    });
}

function checkIfDPOpschonen(){
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Categorie:Wikikids:Doorverwijspagina",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            isDP = true;
        }
    });
}

function getCategoriesOpschonen() {
    return api.get({
        action: "query",
        prop: "categories",
        titles: articletitle,
        clshow: "!hidden",
    }).then(function (data) {
        temp = data.query.pages[articleId].categories;
        if (!temp) {
            document.getElementById("gadget-hint-geencat").style.display = "";
        }
    });
}

function getFirstAuteur() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: articletitle,
        rvlimit: "1",
        rvprop: "user",
        rvdir: "newer",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages[articleId].revisions[0].user;
        if (temp === "Hanssain") {
            document.getElementById("gadget-hint-hanssain").style.display = "";
        }
        if (temp === "Mike1023") {
            document.getElementById("gadget-hint-mike1023").style.display = "";
        }
    });
}

function getWoordenschat() {
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Category:Woordenschat",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            woordenschat = true;
            document.getElementById('gadget-hint-woordenschat').style.display = "";
        }
    });
}

function getBegOpschonen() {
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Category:WikiKids:Beginnetje",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            beg = true;
        }
    });
}

function getLinksOut() {
    return api.get({
        action: "query",
        prop: "links",
        titles: articletitle,
        pllimit: "5000",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.links !== 'undefined') {
            linksopartikel = temp.links.length;
            getDP();
        } else {
            linksopartikel = 0;
        }
    });
}

function getLinksIn() {
    api.get({
        action: "query",
        prop: "linkshere",
        titles: articletitle,
        lhnamespace: "0",
        lhlimit: "50",
        lhshow: "!redirect",
    }).then(function (data) {
        temp = data.query.pages[articleId];
        if (typeof temp.linkshere === 'undefined') {
            document.getElementById("gadget-hint-geenlinks").style.display = "";
        }
    });
}

function checkIfChecked() {
    valuechecked = mw.util.getParamValue('opschonengecontroleerd');
    if (valuechecked === "Done") {
        document.getElementById("gadget-hint-gecontroleerd").style.display = "";
    } else {
        getJSONTextOpschonen().done(function (text) {
            for (var i = 0, iLen = text.length; i < iLen; i++) {
                if (text[i].N == articletitle) checkChecked = text[i]["D"];
            }
            if (checkChecked === "D") {
                document.getElementById("gadget-hint-gecontroleerd").style.display = "";
            }
        });
    }
}

function getDP() {
    api.get({
        action: "query",
        generator: "links",
        prop: "categories",
        titles: articletitle,
        gpllimit: "5000",
        cllimit: "5000",
        clcategories: "Categorie:Wikikids:Doorverwijspagina",
    }).then(function (data) {
        temp = data.query.pages;
        for (const property in temp) {
            if (temp[property].categories) {
                console.log(temp[property].title);
                document.getElementById("gadget-hint-dp").style.display = "";
            }
        }
    });
}

function getExterneLinks() {
    api.get({
        action: "query",
        prop: "extlinks|categories",
        titles: articletitle,
        ellimit: "5000",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId].extlinks;
        if (typeof temp === 'undefined') {
        } else {
            var tempgetal = 0;
            var aantallinks = 0;
            while (typeof temp[tempgetal] !== 'undefined') {
                if (temp[tempgetal]["*"].startsWith("http:")) {
                    document.getElementById("gadget-hint-http").style.display = "";
                } else if (temp[tempgetal]["*"].startsWith("https:")) {
                	aantallinks +=1;
                } else {
                    document.getElementById("gadget-hint-vreemdelink").style.display = "";
                }
                tempgetal += 1;
            }
            if (beg === true) {
            	aantallinks -=6;
            } 
            if (aantallinks > 0) {
            	document.getElementById("gadget-hint-extlink").style.display = "";
            }
        }
    });
}

function changeInstellingen() {
    var instelling = document.getElementById("instellingen").style.display;
    if (instelling === 'none') {
        document.getElementById("instellingen").style.display = "";
        document.getElementById("maxoption").disabled = false;
    } else {
        document.getElementById("instellingen").style.display = 'none';
        document.getElementById("maxoption").disabled = true;
        document.getElementById("user").value = "";
        document.getElementById("startwith").value = "";
    }
}

function hulpGadgetOpschonen() {
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
    document.title = "Help - Opschonen - WikiKids";
    infotext = '<input type="checkbox" id="allepaginas" onclick="changeInstellingen();">Krijg willekeurige pagina\'s. <br>'
        + '<div id="instellingen">'
        + 'Gebruiker: <input type="text" id="user"><br>'
        + 'Alleen artikels die starten met: <input type="text" id="startwith"><br></div>'
        + 'Gecontroleerd: <select name="done" id="done">'
        + '<option value="notdone">Niet</option>'
        + '<option value="xdone" selected>Maakt niet uit</option>'
        + '<option value="done">Wel</option>'
        + '</select><br>'
        + 'Aantal: <select name="aantal" id="aantal">'
        + '<option value="100">100</option>'
        + '<option value="50" selected>50</option>'
        + '<option value="10">10</option>'
        + '<option value="0">0</option>'
        + '<option value="max" id="maxoption">Max</option>'
        + '</select>'
        + '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
        + ' Vragen? Laat het me weten';
    document.getElementById('bodyContent').innerHTML = terugnaaropschonen + infotext;
}

function getsettings() {
    var allepaginasl = document.getElementById('allepaginas').checked;
    var startwithl = document.getElementById('startwith').value;
    var userl = document.getElementById('user').value;
    var aantall = document.getElementById('aantal').value;
    var donel = document.getElementById('done').value;
    var url = 'https://wikikids.nl/Speciaal:Opschonen?';
    if (allepaginasl) {
    } else {
        url += 'allepaginas=x&';
    }
    if (startwithl) {
    	url += 'startwith=' + startwithl + '&';
    }
    if (donel === "done") {
        url += 'done=x&';
    } else if (donel === "notdone") {
        url += 'notdone=x&';
    }
    if (userl) {
        url += 'user=' + userl + '&';
    }
    url += 'aantal=' + aantall;
    window.location.href = url;
}

function statsOpschonen(text){
	var xaantal = {"totaal": 300}; 
	var opschonenuser = [];
	for (const x of text) { 
		if (x.D === "D") {
			xaantal.totaal += 1;
			if (x.U) {
				opschonenuser.push(x.U);
				if (xaantal[x.U]) {
					xaantal[x.U] += 1;
				} else {
					xaantal[x.U] = 1;
				}
			}
		}
	} 
	var aantalwikikidsartikelen = 5000;
	api.get({
	    action: "query",
	    meta: 'siteinfo',
	    siprop: 'statistics'
	}).then(function (ret) {
		aantalwikikidsartikelen = ret.query.statistics.articles;
		console.log('X', ret, aantalwikikidsartikelen);
		opschonenuser = removeDuplicates(opschonenuser);
	    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
	    document.title = "Opschonen - WikiKids";
		var tobody = `<br> Er zijn totaal ${xaantal.totaal} artikelen gecontroleerd. Dat is ${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000}% van WikiKids. Hieronder staan alle gebruikers die minimaal een artikel hebben gecontroleerd. <ul>`;
		tobody += `<div style="background-color:#eeeeee; width:400px;height:18px;float:left;margin-right:5px;border:1px solid #bbb;"><div style="background-color:#119000;width:${(xaantal.totaal/aantalwikikidsartikelen) * 100 * 4}px;height:18px;"><div style="font-weight:bold;width:400px;text-align:center;height:18px;line-height:18px;color:black;"><abbr title="7&nbsp;%"></abbr>${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000} / 100%</div></div></div><br>`;
		console.log(aantalwikikidsartikelen);
		for (const x of opschonenuser) {
			tobody += '<li>' + x + ' (aantal: ' + xaantal[x] + ')</li>';
		}
		tobody += '</ul>';
		document.getElementById('bodyContent').innerHTML = terugnaaropschonen + tobody;
	});
}
	
function removeDuplicates(arr) {
    let unique = arr.reduce(function (acc, curr) {
        if (!acc.includes(curr))
            acc.push(curr);
        return acc;
    }, []);
    return unique;
}

if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
	var terugnaaropschonen = '<div id="contentSub"><span class="subpages">&lt; <a href="/Speciaal:Opschonen" title="Speciaal:Opschonen">Speciaal:Opschonen</a></span></div>';
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
    var isOpgeslagenOpschonen = false;
    window.onbeforeunload = function() {
		if (!isOpgeslagenOpschonen) {
			return 'Weet je zeker dat je deze pagina wilt verlaten?';
		}
		return undefined;
	};
    if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
        var infotext;
        hulpGadgetOpschonen();
    } else if (mw.util.getParamValue('action') === 'stats') {
    	getJSONTextOpschonen().done(function (text) {
            statsOpschonen(text);
        });
    } else {
        showAantal = parseInt(mw.util.getParamValue('aantal'));
        showUser = mw.util.getParamValue('user');
        showStartwith = mw.util.getParamValue('startwith');
        var tussenvoegsel;
        document.getElementById('bodyContent').innerHTML = "Laden... krijg je niets te zien? Maak hier dan een melding van bij mij met deze url:" + document.URL;
        var edit_token;
        var tempgetal;
        var temp;
        var Artikelr = [];
        var Artikeln = [];
        var Artikellink = [];
        var getUser;
        var Opmerkingtemp = [];
        var Opmerkingtempx;
        var Knop1x = [];
        var Knop3x = [];
        var Opmerking = [];
        var tabel;
        var eindetabel;
        var highArtikelr;
        var showAantal;
        var gedaan = [];
        var vorigeuser = [];
        var linkextra = [];
        var getKnop3;
        var getKnop1;
        var randomNumber;
        var showAll;
        var showSkipDone;
        var showSkipSkipped;
        var showDone;
        var addarticle;
        var paginalink;
        var checkChecked;
        var allNummer = 1;
        var showFrom;
        var showTo;
        var lengtetext;
        var showMax;
        var Waardes = { "Radio1": [], "Radio3": [], "Opmerking": [], "Opmerkingdis": []};
        //varvar
        getJSONTextOpschonen().done(function (text) {
            showProjectOpschonen(text);
        });
    }
}

var showHints = mw.util.getParamValue('projectopschonen');
if (showHints) {
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
    //varvar
    var articletitle = mw.config.get('wgPageName');
    var articleId = mw.config.get('wgArticleId');
    var beg = false;
    var isDP = false; 
    var link = 0;
    var link2 = "";
    var temp;
    var temp2;
    var linkhttp = 0;
    var redirects = "";
    var Hints = "";
    var htmltext;
    var Nummer;
    var CheckChecked;
    var articlesize;
    var linksopartikel;
    var valuechecked;
    var woordenschat = false;
    startHintsOpschonen();
}

if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1)) {
    document.getElementById("mw-panel").innerHTML += `<nav id="p-op" style="background-color: #1D9CB9" class="vector-menu vector-menu-portal portal"
    aria-labelledby="p-op-label" role="navigation">
    <h3 id="p-op-label">
        <span>Opschonen</span>
    </h3>
    <div class="body vector-menu-content" style="border-bottom: 1px solid #1D9CB9">
        <ul class="vector-menu-content-list">
            <li>
                <a href="https://wikikids.nl/Speciaal:Opschonen">Speciaal:Opschonen</a>
            </li>
            <li>
            	<a href="https://wikikids.nl/${mw.config.get('wgPageName')}?projectopschonen=x">Opschoon hints</a>
            </li>
            <li>
                <button onclick="fromPageaddPageOpschonen()">Gecontroleerd</button>
            </li>
        </ul>
    </div>
</nav>`;
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-Opschonen.js&oldid=779234"