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

Uit Wikikids
Naar navigatie springen Naar zoeken springen
 
(83 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
 
/* jshint sub:true maxerr:100000 */
 
/* jshint sub:true maxerr:100000 */
// Gadget gemaakt door [[User:Rots61]]
+
// [[User:Rots61/Gadget-LogTheCounter.js]] gemaakt door [[User:Rots61]]
// Documentatie op [[WikiKids:Opschonen]]
+
 
 +
/*
  
var opschoonversion = '1.2.1';
 
var text;
 
 
var api = new mw.Api();
 
var api = new mw.Api();
var alreadydone;
+
api.saveOption('userjs-ltc', 'x').then( x =>console.log(x));
 
 
function showProject(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 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. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. Opmerking is niet nodig, het mag wel. "
 
        + '<br>Opslaan duurt een paar seconden, wacht totdat je ziet dat de wijziging is doorgevoerd. Als je meer specifiek wil controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>.'
 
        + '<br>Het doel is om alle pagina\'s op WikiKids te controleren. Als je 10 artikels per dag controleerd, zouden we dat geweldig vinden!'
 
        + '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToList()">Voeg toe</button>'
 
        + '<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 + tabelstuk2 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th> <th>Thema</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
 
    showSkipThema = mw.util.getParamValue('notthema');
 
    //Zorg ervoor dat je al bekeken pagina's 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.
 
    showStartwith = mw.util.getParamValue('Startwith');
 
    showTo = mw.util.getParamValue('to');
 
    showFrom = mw.util.getParamValue('from');
 
    showFirstAuthor = mw.util.getParamValue('firstauthor');
 
    if (showFirstAuthor) {
 
    showAantal = '0';
 
    }
 
    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 ((showThema || showDone) || (showSkipThema || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal))))))) {
 
    } else {
 
        showAantal = 51;
 
        showSkipDone = true;
 
    }
 
    lengtetext = text.length;
 
    while (tempnumber !== showAantal) {
 
        Artikeln[tempgetal] = getURLParamNumber(text);
 
        if (Artikeln[tempgetal] === 'exit') {
 
            tempnumber = -1;
 
            showAantal = -1;
 
        } else {
 
            Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
 
            if (text[Artikeln[tempgetal]]["D"]) {
 
                gedaan[tempgetal] = " disabled";
 
                text[Artikeln[tempgetal]]["T"] = "&nbsp;";
 
                linkextra[tempgetal] = "Done";
 
                Knop1x[tempgetal] = "";
 
                Knop2x[tempgetal] = "";
 
                Knop3x[tempgetal] = '<td colspan="3" 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="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>';
 
 
 
            }
 
            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">';
 
            }
 
            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&checked=' + linkextra[tempgetal] + '" 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>';
 
            tempgetal += 1;
 
            if (showMax) {
 
                tempnumber = allNummer;
 
            } else {
 
                tempnumber = tempgetal;
 
            }
 
        }
 
    }
 
    // text = array
 
    eindetabel += '</tbody></table> <button onclick="startIT()">Opslaan</button>';
 
    document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
    if (showFirstAuthor) {
 
    getallNewPagesFirstAuthor(showFirstAuthor).done(function (textyz) {
 
  for (var i = 0; i < textyz.length; i++) {
 
addArticleToList(textyz[i]);
 
          }
 
          mw.notify("Welkom!", { 'tag': 'addpagetolistopschonen', 'autoHideSeconds': 30 });
 
        });
 
    } else {
 
    mw.notify("Welkom!");
 
    }
 
}
 
  
function getallNewPagesFirstAuthor( showFirstAuthor, apiContinue ) {  
+
*/
    return api.get( {
+
function addZero(number) {
        action: "query",
+
return number < 10 ? "0" + number : number;
        list: "usercontribs",
 
        ucprop: "title",
 
        uclimit: "500",
 
        ucshow: "new",
 
        ucnamespace: "0",
 
        ucuser: showFirstAuthor,
 
        uccontinue: apiContinue ? apiContinue.uccontinue : undefined
 
    } ).then( function (data) {
 
        if ( data.continue ) {
 
            return getallNewPagesFirstAuthor( showFirstAuthor, data.continue )
 
                .then( function ( temparrayfirstauthor ) {
 
                console.log(temparrayfirstauthor);
 
                for (var i = 0; i < data.query.usercontribs.length; i++) {
 
        temparrayfirstauthor.push(data.query.usercontribs[i]['title']);
 
        //console.log(data.query.usercontribs[i]['title']);
 
        }
 
                    return temparrayfirstauthor;
 
                } );
 
        } else {
 
        for (var i = 0; i < data.query.usercontribs.length; i++) {
 
        temparrayfirstauthor.push(data.query.usercontribs[i]['title']);
 
        console.log(data.query.usercontribs[i]['title']);
 
        }
 
        console.log(temparrayfirstauthor);
 
        return temparrayfirstauthor;
 
        }
 
    } );
 
 
}
 
}
  
function getURLParamNumber(text, nummer) {
+
function saveitlogthecounter() {
    willekeuriggetal = 0;
+
if (Array.isArray(allPages)) {
    while (willekeuriggetal === 0) {
+
        allPages = JSON.stringify(allPages);
        willekeuriggetal = getRandomNumber(text.length);
 
        if (willekeuriggetal === text.length) {
 
            return 'exit';
 
        } else {
 
            if (showUser) {
 
                if (text[willekeuriggetal]["U"] === showUser) {
 
                } else {
 
                    willekeuriggetal = 0;
 
                }
 
            }
 
            if (showThema) {
 
                if (text[willekeuriggetal]["T"]) {
 
                } else {
 
                    willekeuriggetal = 0;
 
                }
 
            } else if (showSkipThema) {
 
                if (text[willekeuriggetal]["T"]) {
 
                    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")) {
 
                } else {
 
                    willekeuriggetal = 0;
 
                }
 
            }
 
            if (showFrom) {
 
                if (text[willekeuriggetal]["N"]) {
 
 
 
                }
 
                if (showTo) {
 
                    if (text[willekeuriggetal]["N"]) {
 
                    }
 
                }
 
            }
 
        }
 
 
     }
 
     }
     return willekeuriggetal;
+
     date = new Date();
}
+
     date = date.getFullYear() + "" + addZero((date.getMonth() + 1)) + "" + addZero(date.getDate());
 
+
     api.get({
 
+
         action: 'query',
function Change1(getal) {
+
        prop: 'info',
    if (!document.getElementById('Thema' + getal).disabled) {
+
        intoken: 'edit',
        Thematemp[getal] = document.getElementById('Thema' + getal).value;
+
        titles: 'kaslv', //Pagina moet niet bestaan.  
     }
+
     }).done(
    document.getElementById('Thema' + getal).disabled = true;
+
         function (data) {
    document.getElementById('Opmerking' + getal).disabled = false;
+
            edit_token = data.query.pages['-1'].edittoken;
    document.getElementById('Thema' + getal).value = "";
+
        }).done(function (data) {
    Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
+
            api.post({
    document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
+
                'action': 'edit',
 
+
                'title': "Wikikids:Statistieken/Logs/" + date,
}
+
                'text': allPages,
 
+
                'summary': "Pagina opgeslagen met LogTheCounter.",
function Change2(getal) {
+
                 'bot': true,
    Thematempx = document.getElementById('Thema' + getal).value;
+
                 'token': edit_token,
    Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
+
             }).done(
    document.getElementById('Thema' + getal).disabled = false;
+
                 function (data) {
    document.getElementById('Opmerking' + getal).disabled = false;
+
                     if (data.edit.result == "Success") {
    document.getElementById('Thema' + getal).value = Thematemp[getal] ? Thematemp[getal] : Thematempx ? Thematempx : "";
+
                         mw.notify("Hele pagina opgeslagen!", { autoHide: false });
    document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
+
                         deleteDataOnServer();
}
 
 
 
function Change3(getal) {
 
    if (!document.getElementById('Thema' + getal).disabled) {
 
        Thematemp[getal] = document.getElementById('Thema' + getal).value;
 
     }
 
    if (!document.getElementById('Opmerking' + getal).disabled) {
 
         Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
 
    }
 
    document.getElementById('Thema' + getal).disabled = true;
 
    document.getElementById('Opmerking' + getal).disabled = true;
 
    document.getElementById('Thema' + getal).value = "";
 
     document.getElementById('Opmerking' + getal).value = "";
 
}
 
 
 
function fromPageaddPage() {
 
    var text;
 
    var artikel;
 
    var checkconfirm;
 
    var checkopmerking;
 
    getJSONText().done(function (text) {
 
         fromPageCheckOnList(text);
 
    });
 
}
 
 
 
function fromPageCheckOnList(text) {
 
    if (!Array.isArray(text)) {
 
        text = JSON.parse(text);
 
    }
 
    if (!text[1]["N"]) {
 
        text = JSON.parse(text);
 
    }
 
    addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
 
    var Nummer;
 
    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 {
 
                     } else {
                        alreadydone = true;
+
                         mw.notify("Opslaan mislukt, stuur Rots61 aub direct een berichtje.", { autoHide: false });
                         mw.notify("Pagina bestaat niet. ");
 
 
                     }
 
                     }
                }, function (error) {
+
                    console.log(data.edit);
 +
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
 
                 });
 
                 });
            }
+
         });    
        });
 
    } 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');
 
    }
 
    fromPageSave(text);
 
}
 
 
 
function fromPageSave(text) {
 
    if (alreadydone) {
 
    } else if (!Nummer) {
 
        setTimeout(fromPageSave, 250);
 
    } else {
 
        checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
 
        if (checkopmerking === null) {
 
        } else if (checkopmerking === '') {
 
            editpagenow(text);
 
        } else {
 
            text[Nummer]["O"] = checkopmerking;
 
            editpagenow(text);
 
        }
 
    }
 
}
 
 
 
function addArticleToList(artikel) {
 
    if (!text[1]["N"]) {
 
        text = JSON.parse(text);
 
    }
 
    addarticle = undefined;
 
    if (artikel) {
 
         addarticle = artikel;
 
    } 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.", { 'tag': 'addpagetolistopschonen'});
 
            } 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.", { tag: 'addpagetolistopschonen' });
 
                        }
 
                    } else {
 
                        mw.notify("Pagina bestaat niet. ", { tag: 'addpagetolistopschonen' });
 
                    }
 
                }, function (error) {
 
                });
 
            }
 
        });
 
    }
 
    if (Nummer) {
 
        tempgetal = 1;
 
        var gewenstelengte = Artikelr.length;
 
        if (gewenstelengte === 0) {
 
            gewenstelengte = 1;
 
            tempgetal = 1;
 
        }
 
        while (tempgetal !== gewenstelengte) {
 
            if (document.getElementById('Radio1.' + tempgetal)) {
 
                Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
 
                Waardes['Radio2'][tempgetal] = document.getElementById('Radio2.' + tempgetal).checked;
 
                Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
 
                Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
 
                Waardes['Thema'][tempgetal] = document.getElementById('Thema' + tempgetal).value;
 
                Waardes['Themadis'][tempgetal] = document.getElementById('Thema' + tempgetal).disabled;
 
                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";
 
            text[Artikeln[tempgetal]]["T"] = "&nbsp;";
 
            linkextra[tempgetal] = "Done";
 
            Knop1x[tempgetal] = "";
 
            Knop2x[tempgetal] = "";
 
            Knop3x[tempgetal] = '<td colspan="3" 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="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>';
 
        }
 
        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">';
 
        }
 
        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&checked=' + linkextra[tempgetal] + '" 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.", { 'tag': 'addpagetolistopschonen'});
 
        document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
        tempgetalxyz = tempgetal;
 
        tempgetal = 1;
 
        /*
 
        while (tempgetal !== gewenstelengte) {
 
            document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
 
            document.getElementById('Radio2.' + tempgetal).checked = Waardes['Radio2'][tempgetal];
 
            document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
 
            document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
 
            document.getElementById('Thema' + tempgetal).value = Waardes['Thema'][tempgetal];
 
            document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
 
            document.getElementById('Thema' + tempgetal).disabled = Waardes['Themadis'][tempgetal];
 
            tempgetal += 1;
 
        }
 
        */
 
        Nummer = undefined;
 
    }
 
}
 
 
 
function editpagenow(textx) {
 
    while (textx) {
 
        text = textx;
 
        textx = false;
 
    }
 
    if (Array.isArray(text)) {
 
        text = JSON.stringify(text);
 
    }
 
 
     api.get({
 
     api.get({
 
         action: 'query',
 
         action: 'query',
Regel 446: Regel 57:
 
             api.post({
 
             api.post({
 
                 'action': 'edit',
 
                 'action': 'edit',
                 'title': "Gebruiker:Rots61/Test.json",
+
                 'title': "Wikikids:Statistieken/Logs/" + date + "/info",
                 'text': text,
+
                 'text': JSON.stringify(informatieLogTheCounter),
                 'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
+
                 'summary': "Pagina opgeslagen met LogTheCounter.",
                'tags': 'Opschonen',
 
 
                 'bot': true,
 
                 'bot': true,
 
                 'token': edit_token,
 
                 'token': edit_token,
Regel 455: Regel 65:
 
                 function (data) {
 
                 function (data) {
 
                     if (data.edit.result == "Success") {
 
                     if (data.edit.result == "Success") {
                         mw.notify("Opgeslagen!", { autoHide: false });
+
                         mw.notify("Pagina opgeslagen!", { autoHide: false });
 
                     } else {
 
                     } else {
                         mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
+
                         mw.notify("Opslaan mislukt 2, stuur Rots61 aub direct een berichtje.", { autoHide: false });
 
                     }
 
                     }
 
                     console.log(data.edit);
 
                     console.log(data.edit);
                    document.getElementById('bodyContent').innerHTML = "Opslaan gelukt. Herlaad de pagina om hem opnieuw te gebruiken. ";
 
 
                 });
 
                 });
 
         });
 
         });
 
}
 
}
  
function startIT() {
+
function deleteDataOnServer() {
     if (!Array.isArray(text)) {
+
     var settings2 = {
        text = JSON.parse(text);
+
  "url": "https://wikikids.dekenos.nl/pages/delete",
    }
+
  "method": "POST",
    tempgetal = 1;
+
  "timeout": 0,
    highArtikelr = Artikelr.length;
+
  "headers": {
    while (tempgetal !== highArtikelr) {
+
    "Host": "wikikids.dekenos.nl",
        if (text[Artikeln[tempgetal]]["D"]) {
+
    "Content-Type": "application/json"
        } else {
+
  },
            getKnop3 = document.getElementById("Radio3." + tempgetal);
+
  "data": JSON.stringify({
            if (getKnop3 && getKnop3.checked) {
+
    "message": 'oke'
            } else {
+
  }),
                var getonderwerp = document.getElementById("Thema" + tempgetal);
+
};
                if (getonderwerp && getonderwerp.value) {
+
$.ajax(settings2).done(function (response) {
                    getonderwerp = getonderwerp.value;
+
mw.notify("Reseten statistieken2 gelukt", { autoHide: false });
                } else {
+
window.onbeforeunload = null;
                    getonderwerp = "";
+
window.location.href = '/';
                }
+
}).catch(function (error) {
                var getopmerking = document.getElementById("Opmerking" + tempgetal);
+
if (error.responseText || JSON.parse(error.responseText).succes) {
                if (getopmerking && getopmerking.value) {
+
mw.notify("Reseten statistieken2 gelukt", { autoHide: false });
                    getopmerking = getopmerking.value;
+
window.onbeforeunload = null;
                } else {
+
window.location.href = '/';
                    getopmerking = "";
+
} else {
                }
+
mw.notify('Resetten mislukt, stuur Rots61 aub direct een berichtje.', {autoHide: false});
                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;
 
    }
 
    editpagenow(text);
 
}
 
 
 
function getJSONText() {
 
    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 getPagesLogTheCounter() {
function getRandomNumber(lengtetext) {
+
    var pages = [];
     if (showAll) {
+
    var request = new XMLHttpRequest();
         allNummer += 1;
+
    request.open('GET', 'https://wikikids.dekenos.nl/pages', false);
        return allNummer;
+
    request.send(null);
 +
     if (request.status === 200) {
 +
         pages = JSON.parse(request.responseText);
 
     }
 
     }
     return Math.floor(Math.random() * lengtetext);
+
     console.log(pages);
}
+
     // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
 
+
     pages.sort(function (a, b) {
function startHints() {
+
  return b.normalVisitors + b.mainPageVisitors - a.normalVisitors - a.mainPageVisitors;
    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-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-gebruiker" 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-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();
 
    getCategories();
 
    getTextLength();
 
    getBeg();
 
    getLinksOut();
 
    checkIfChecked();
 
    getWoordenschat();
 
    getExterneLinks();
 
    setTimeout(removeloading, 1500);
 
}
 
 
 
function removeloading() {
 
    if (!woordenschat) {
 
    getLinksIn();
 
        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 getTextLength() {
 
    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 getCategories() {
 
    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-gebruiker").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 = "";
 
        }
 
 
     });
 
     });
 +
    return pages;
 
}
 
}
  
function getBeg() {
+
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
    return api.get({
+
document.title = 'Opslaan WikiStatistieken';
        action: "query",
+
document.getElementById('bodyContent').innerHTML = `Op deze pagina kun je de Statistieken van WikiKids reseten, dit doen we elke zaterdag (\'s middags: tussen 13u en 19u).
        prop: "categories",
+
Als je op deze onderstaande knop drukt, moet je ongeveer 5 seconden wachten. Door op de knop te drukken doe je 2 bewerkingen. <br>
        clcategories: "Category:WikiKids:Beginnetje",
+
<span style="color: red;">Zodra de acties zijn uitgevoerd, wordt je doorgestuurd naar de hoofdpagina,  
        titles: articletitle,
+
als dat niet gebeurt, <a href="https://wikikids.nl/index.php?title=Overleg_gebruiker:Rots61&action=edit&section=new">klik hier</a> (KLIK). </span>
    }).then(function (data) {
+
Want dan zijn de statistieken niet opgeslagen. <br>
        temp = data.query.pages;
+
<span id="logthecounterx5"></span><button id="logthecounterbutton" onclick="goforitLogTheCounter();" disabled>Activeer deze functie</button><br><br><br>
        temp = temp[articleId];
+
Wil je geen meldingen meer ontvangen op zaterdag? Dan kun je je <a href="https://wikikids.nl/Speciaal:Voorkeuren#mw-prefsection-gadgets">hier (KLIK)</a> uitschrijven. Maak het vakje voor <b>WikiStats Opslaan</b> wit, en klik op opslaan. `;
        if (typeof temp.categories !== 'undefined') {
+
document.getElementById('firstHeading').innerHTML = 'Special:LogTheCounter (WikiStats opslaan)';
            beg = true;
 
        }
 
    });
 
}
 
  
function getLinksOut() {
+
if (!mw.user.options.exists('userjs-ltc')) {
    return api.get({
+
document.getElementById('logthecounterx5').innerHTML = 'De statistieken zijn al opgeslagen of het is niet tussen tussen 13:00 en 19:00 op zaterdag.<br>';
        action: "query",
+
} else {
        prop: "links",
+
tx = mw.user.options.get('userjs-ltc').slice(3,6);
        titles: articletitle,
+
document.getElementById('logthecounterbutton').disabled = false;  
        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;
 
        }
 
    });
 
 
}
 
}
 
+
checkDate();
function getLinksIn() {
+
function checkDate() {
    api.get({
+
let now = new Date();
        action: "query",
+
if (now.getUTCDay() !== 6) return;
        prop: "linkshere",
+
if (now.getUTCHours() < 11) return;
        titles: articletitle,
+
if (now.getUTCHours() > 18) return;
        lhnamespace: "0",
+
let date = now.getFullYear() + "" + addZero((now.getMonth() + 1)) + "" + addZero(now.getDate());
        lhlimit: "50",
+
new mw.Api().get( {
        lhshow: "!redirect",
+
  action: "query",
    }).then(function (data) {
+
  titles: [ "WikiKids:Statistieken/Logs/" + date],
        temp = data.query.pages[articleId];
+
} ).then( function( ret ) {
        if (typeof temp.linkshere === 'undefined') {
+
  $.each( ret.query.pages, function() {
            document.getElementById("gadget-hint-geenlinks").style.display = "";
+
  console.log(this);
        }
+
  if ( this.missing !== "" ) {
    });
+
 
 +
    } else {
 +
    ltc_showMessage();
 +
    }
 +
    } );
 +
}, function( error ) {
 +
    ltc_showMessage();
 +
} );
 
}
 
}
  
function checkIfChecked() {
+
var allPages;
    valuechecked = mw.util.getParamValue('checked');
+
var informatieLogTheCounter = {"Endtime":new Date().toISOString()};
    if (valuechecked === "Done") {
+
var tx;
        document.getElementById("gadget-hint-gecontroleerd").style.display = "";
 
    } else {
 
        getJSONText().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) {
 
                document.getElementById("gadget-hint-dp").style.display = "";
 
            }
 
        }
 
    });
 
}
 
  
function getExterneLinks() {
+
function goforitLogTheCounter(){
    api.get({
+
window.onbeforeunload = function() {
        action: "query",
+
return true;
        prop: "extlinks|categories",
+
};
        titles: articletitle,
+
    allPages = getPagesLogTheCounter();
        ellimit: "5000",
+
    let now = new Date();
    }).then(function (data) {
+
let onejan = new Date(now.getFullYear(), 0, 1);
        temp = data.query.pages;
+
let week = Math.ceil((((now.getTime() - onejan.getTime()) / 86400000) + onejan.getDay() + 1) / 7);
        temp = temp[articleId].extlinks;
 
        if (typeof temp === 'undefined') {
 
        } else {
 
            var tempgetal = 0;
 
            while (typeof temp[tempgetal] !== 'undefined') {
 
                if (temp[tempgetal]["*"].startsWith("http:")) {
 
                    document.getElementById("gadget-hint-http").style.display = "";
 
                } else if (temp[tempgetal]["*"].startsWith("https:")) {
 
                    if (beg === true) {
 
                        if (temp[tempgetal]["*"] == "https://schooltv.nl/zoekresultaten/?q=" + articletitle) {
 
                        } else if (temp[tempgetal]["*"] == "https://www.youtube.com/results?search_query=" + articletitle) {
 
                        } 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) {
 
                        } 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;
 
            }
 
        }
 
    });
 
}
 
 
 
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 hulpInfo() {
 
    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>'
 
        + 'Geschreven door: <input type="text" id="firstauthor"><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>'
 
        + 'Thema: <select name="thema" id="thema">'
 
        + '<option value="notthema">Geen</option>'
 
        + '<option value="xthema" selected>Maakt niet uit</option>'
 
        + '<option value="thema">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>'
 
        + '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
 
        + 'Vragen hierover? Laat het me weten';
 
    document.getElementById('bodyContent').innerHTML = infotext;
 
}
 
  
function getsettings() {
+
informatieLogTheCounter["Types"] = 'Intern';
    var allepaginasl = document.getElementById('allepaginas').checked;
+
     informatieLogTheCounter["Jaar-Week"] = now.getFullYear() + '' + week;
     var startwithl = document.getElementById('startwith').value;
+
     informatieLogTheCounter["Totalpages"] = 0;
     var themal = document.getElementById('thema').value;
+
     informatieLogTheCounter['Totalviews'] = 0;
     var userl = document.getElementById('user').value;
+
for (var x = 0; x < allPages.length; x++) {
    var aantall = document.getElementById('aantal').value;
+
deleteit('t','title', x);
    var donel = document.getElementById('done').value;
+
if (allPages[x]['mPV'] === 0) {
    var firstauthorl = document.getElementById('firstauthor').value;
+
delete allPages[x]['mPV'];
    var url = 'https://wikikids.nl/Speciaal:Opschonen?';
+
} else {
    if (allepaginasl) {
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
    } else {
+
informatieLogTheCounter['Totalviews'] += allPages[x]['mPV'];
        url += 'allepaginas=x&';
+
}
    }
+
}
    if (themal === "thema") {
+
if (allPages[x]['nV'] === 0) {
        url += 'thema=x&';
+
delete allPages[x]['nV'];
    } else if (themal === "notthema") {
+
} else {
        url += 'notthema=x&';
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
    }
+
informatieLogTheCounter['Totalviews'] += allPages[x]['nV'];
    if (donel === "done") {
+
}
        url += 'done=x&';
+
}
    } else if (donel === "notdone") {
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
        url += 'notdone=x&';
+
informatieLogTheCounter["Totalpages"] += 1;
    }
+
}
    if (userl) {
+
}
        url += 'user=' + userl + '&';
+
console.log(allPages);
    }
+
saveitlogthecounter();
    if (firstauthorl)  {
 
        url += 'firstauthor=' + firstauthorl + '&';
 
    }
 
    url += 'aantal=' + aantall;
 
    window.location.href = url;
 
}
 
 
 
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
 
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a>, versie: ' + opschoonversion + '</li>';
 
    if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
 
        var infotext;
 
        hulpInfo();
 
    } 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 Thematemp = [];
 
        var Opmerkingtemp = [];
 
        var Thematempx;
 
        var Opmerkingtempx;
 
        var Knop1x = [];
 
        var Knop2x = [];
 
        var Knop3x = [];
 
        var Opmerking = [];
 
        var Thema = [];
 
        var tabel;
 
        var eindetabel;
 
        var highArtikelr;
 
        var showAantal;
 
        var gedaan = [];
 
        var vorigeuser = [];
 
        var linkextra = [];
 
        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 lengtetext;
 
        var showMax;
 
      var temparrayfirstauthor = [];
 
        var Waardes = { "Radio1": [], "Radio2": [], "Radio3": [], "Opmerking": [], "Thema": [], "Opmerkingdis": [], "Themadis": [] };
 
        //varvar
 
        getJSONText().done(function (text) {
 
            showProject(text);
 
        });
 
    }
 
 
}
 
}
  
var showHints = mw.util.getParamValue('projectopschonen');
+
function deleteit(new_key, old_key, x){
if (showHints) {
+
Object.defineProperty(allPages[x], new_key,
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a>, versie: ' + opschoonversion + '</li>';
+
        Object.getOwnPropertyDescriptor(allPages[x], old_key));
    //varvar
+
     delete allPages[x][old_key];
    var articletitle = mw.config.get('wgPageName');
 
    var articleId = mw.config.get('wgArticleId');
 
     var beg = false;
 
    var dp = 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;
 
    startHints();
 
 
}
 
}
  
if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1)) {
+
function ltc_showMessage() {
    document.getElementById("mw-panel").innerHTML += `<nav id="p-op" style="background-color: #1D9CB9" class="vector-menu vector-menu-portal portal"
+
try {
    aria-labelledby="p-op-label" role="navigation">
+
document.getElementById('logthecounterbutton').disabled = false;
    <h3 id="p-op-label">
+
document.getElementById('logthecounterx5').innerHTML = '';
        <span>Opschonen</span>
+
} catch (err) {
    </h3>
+
}
    <div class="body vector-menu-content" style="border-bottom: 1px solid #1D9CB9">
+
document.getElementById('siteNotice').innerHTML = '<a style="background:yellow" href="https://wikikids.nl/Speciaal:LogTheCounter">Klik hier om de statistieken op te slaan. (KLIK)</a>';
        <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="fromPageaddPage()">Gecontroleerd</button>
 
            </li>
 
        </ul>
 
    </div>
 
</nav>`;
 
 
}
 
}

Huidige versie van 17 mei 2025 om 12:52

/* jshint sub:true maxerr:100000 */
// [[User:Rots61/Gadget-LogTheCounter.js]] gemaakt door [[User:Rots61]]

/*

var api = new mw.Api();
api.saveOption('userjs-ltc', 'x').then( x =>console.log(x));

*/
function addZero(number) {
	return number < 10 ? "0" + number : number;
}

function saveitlogthecounter() {
	if (Array.isArray(allPages)) {
        allPages = JSON.stringify(allPages);
    }
    date = new Date();
    date = date.getFullYear() + "" + addZero((date.getMonth() + 1)) + "" + addZero(date.getDate());
    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': "Wikikids:Statistieken/Logs/" + date,
                'text': allPages,
                'summary': "Pagina opgeslagen met LogTheCounter.",
                'bot': true,
                'token': edit_token,
            }).done(
                function (data) {
                    if (data.edit.result == "Success") {
                        mw.notify("Hele pagina opgeslagen!", { autoHide: false });
                        deleteDataOnServer();
                    } else {
                        mw.notify("Opslaan mislukt, stuur Rots61 aub direct een berichtje.", { autoHide: false });
                    }
                    console.log(data.edit);
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
                });
        });      
    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': "Wikikids:Statistieken/Logs/" + date + "/info",
                'text': JSON.stringify(informatieLogTheCounter),
                'summary': "Pagina opgeslagen met LogTheCounter.",
                'bot': true,
                'token': edit_token,
            }).done(
                function (data) {
                    if (data.edit.result == "Success") {
                        mw.notify("Pagina opgeslagen!", { autoHide: false });
                    } else {
                        mw.notify("Opslaan mislukt 2, stuur Rots61 aub direct een berichtje.", { autoHide: false });
                    }
                    console.log(data.edit);
                });
        });
}

function deleteDataOnServer() {
    var settings2 = {
	  "url": "https://wikikids.dekenos.nl/pages/delete",
	  "method": "POST",
	  "timeout": 0,
	  "headers": {
	    "Host": "wikikids.dekenos.nl",
	    "Content-Type": "application/json"
	  },
	  "data": JSON.stringify({
	    "message": 'oke'
	  }),
	};
	$.ajax(settings2).done(function (response) {
		mw.notify("Reseten statistieken2 gelukt", { autoHide: false });
		window.onbeforeunload = null;
		window.location.href = '/';
	}).catch(function (error) {
		if (error.responseText || JSON.parse(error.responseText).succes) {
			mw.notify("Reseten statistieken2 gelukt", { autoHide: false });
			window.onbeforeunload = null;
			window.location.href = '/';
		} else {
			mw.notify('Resetten mislukt, stuur Rots61 aub direct een berichtje.', {autoHide: false});
		}
	});
}
function getPagesLogTheCounter() {
    var pages = [];
    var request = new XMLHttpRequest();
    request.open('GET', 'https://wikikids.dekenos.nl/pages', false);
    request.send(null);
    if (request.status === 200) {
        pages = JSON.parse(request.responseText);
    }
    console.log(pages);
    // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
    pages.sort(function (a, b) {
   		return b.normalVisitors + b.mainPageVisitors - a.normalVisitors - a.mainPageVisitors;
    });
    return pages;
}

if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
	document.title = 'Opslaan WikiStatistieken';
	document.getElementById('bodyContent').innerHTML = `Op deze pagina kun je de Statistieken van WikiKids reseten, dit doen we elke zaterdag (\'s middags: tussen 13u en 19u). 
			Als je op deze onderstaande knop drukt, moet je ongeveer 5 seconden wachten. Door op de knop te drukken doe je 2 bewerkingen. <br>
			<span style="color: red;">Zodra de acties zijn uitgevoerd, wordt je doorgestuurd naar de hoofdpagina, 
			als dat niet gebeurt, <a href="https://wikikids.nl/index.php?title=Overleg_gebruiker:Rots61&action=edit&section=new">klik hier</a> (KLIK). </span>
			Want dan zijn de statistieken niet opgeslagen. <br>
			<span id="logthecounterx5"></span><button id="logthecounterbutton" onclick="goforitLogTheCounter();" disabled>Activeer deze functie</button><br><br><br>
			Wil je geen meldingen meer ontvangen op zaterdag? Dan kun je je <a href="https://wikikids.nl/Speciaal:Voorkeuren#mw-prefsection-gadgets">hier (KLIK)</a> uitschrijven. Maak het vakje voor <b>WikiStats Opslaan</b> wit, en klik op opslaan. `;
	document.getElementById('firstHeading').innerHTML = 'Special:LogTheCounter (WikiStats opslaan)';

	if (!mw.user.options.exists('userjs-ltc')) {
		document.getElementById('logthecounterx5').innerHTML = 'De statistieken zijn al opgeslagen of het is niet tussen tussen 13:00 en 19:00 op zaterdag.<br>';
	} else {
		tx = mw.user.options.get('userjs-ltc').slice(3,6);
		document.getElementById('logthecounterbutton').disabled = false; 
	}
}
checkDate(); 
function checkDate() {
	let now = new Date();
	if (now.getUTCDay() !== 6) return;
	if (now.getUTCHours() < 11) return;
	if (now.getUTCHours() > 18) return;
	let date = now.getFullYear() + "" + addZero((now.getMonth() + 1)) + "" + addZero(now.getDate());
	new mw.Api().get( {
	   action: "query",
	   titles: [ "WikiKids:Statistieken/Logs/" + date],
	} ).then( function( ret ) {
	   $.each( ret.query.pages, function() {
	   		console.log(this);
	   		if ( this.missing !== "" ) {
	   			
	    	} else {
	    		ltc_showMessage();
	    	}
	    } );
	}, function( error ) {
	    ltc_showMessage();
	} );
}

var allPages;
var informatieLogTheCounter = {"Endtime":new Date().toISOString()};
var tx;


function goforitLogTheCounter(){
	window.onbeforeunload = function() {
		return true;
	};
    allPages = getPagesLogTheCounter();
    let now = new Date();
	let onejan = new Date(now.getFullYear(), 0, 1);
	let week = Math.ceil((((now.getTime() - onejan.getTime()) / 86400000) + onejan.getDay() + 1) / 7);

	informatieLogTheCounter["Types"] = 'Intern';
    informatieLogTheCounter["Jaar-Week"] = now.getFullYear() + '' + week;
    informatieLogTheCounter["Totalpages"] = 0;
    informatieLogTheCounter['Totalviews'] = 0;
	for (var x = 0; x < allPages.length; x++) {
		deleteit('t','title', x);
		if (allPages[x]['mPV'] === 0) {
			delete allPages[x]['mPV'];
		} else {
			if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
				informatieLogTheCounter['Totalviews'] += allPages[x]['mPV'];
			}
		}
		if (allPages[x]['nV'] === 0) {
			delete allPages[x]['nV'];
		} else {
			if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
			informatieLogTheCounter['Totalviews'] += allPages[x]['nV'];
			}
		}
		if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
			informatieLogTheCounter["Totalpages"] += 1;
		}
	}
	console.log(allPages); 
	saveitlogthecounter();
}

function deleteit(new_key, old_key, x){
	Object.defineProperty(allPages[x], new_key,
        Object.getOwnPropertyDescriptor(allPages[x], old_key));
    delete allPages[x][old_key];
}

function ltc_showMessage() {
	try {
	document.getElementById('logthecounterbutton').disabled = false; 
	document.getElementById('logthecounterx5').innerHTML = '';
	} catch (err) {
	}
	document.getElementById('siteNotice').innerHTML = '<a style="background:yellow" href="https://wikikids.nl/Speciaal:LogTheCounter">Klik hier om de statistieken op te slaan. (KLIK)</a>';
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-LogTheCounter.js&oldid=939656"