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

Uit Wikikids
Naar navigatie springen Naar zoeken springen
(aanpassing waardoor je niet de bijdragen van anderen verwijderd als je tegelijkertijd bewerkt.)
 
(125 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 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
+
function addZero(number) {
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
+
return number < 10 ? "0" + number : number;
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><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');
 
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>';
 
  
}
+
function saveitlogthecounter() {
if (text[Artikeln[tempgetal]]["U"]){
+
if (Array.isArray(allPages)) {
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
+
        allPages = JSON.stringify(allPages);
} else {
+
    }
vorigeuser[tempgetal] = "";
+
    date = new Date();
}
+
    date = date.getFullYear() + "" + addZero((date.getMonth() + 1)) + "" + addZero(date.getDate());
if (text[Artikeln[tempgetal]]["O"]){
+
    api.get({
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
+
        action: 'query',
} else {
+
        prop: 'info',
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
+
        intoken: 'edit',
}
+
        titles: 'kaslv', //Pagina moet niet bestaan.
if (text[Artikeln[tempgetal]]["T"]){
+
    }).done(
Thema[tempgetal] = '<center>' + text[Artikeln[tempgetal]]["T"] + '</center>';
+
        function (data) {
} else {
+
            edit_token = data.query.pages['-1'].edittoken;
Thema[tempgetal] = '<input type="text" id=Thema' + tempgetal + ' name=Thema' + tempgetal + ' size=10">';
+
        }).done(function (data) {
}
+
            api.post({
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
+
                'action': 'edit',
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&checked=' + linkextra[tempgetal] +'" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
+
                'title': "Wikikids:Statistieken/Logs/" + date,
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop2x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> <td>' + Thema[tempgetal] + '</td> </tr>';
+
                'text': allPages,
tempgetal += 1;
+
                'summary': "Pagina opgeslagen met LogTheCounter.",
if (showMax) {
+
                'bot': true,
tempnumber = allNummer;
+
                'token': edit_token,
} else {
+
            }).done(
tempnumber = tempgetal;
+
                function (data) {
}
+
                    if (data.edit.result == "Success") {
}
+
                        mw.notify("Hele pagina opgeslagen!", { autoHide: false });
}
+
                        deleteDataOnServer();
// text = array
+
                    } else {
eindetabel += '</tbody></table> <button onclick="startbeforeIT()">Opslaan</button>';
+
                        mw.notify("Opslaan mislukt, stuur Rots61 aub direct een berichtje.", { autoHide: false });
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
+
                    }
mw.notify("Welkom!");
+
                    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 getURLParamNumber (text, nummer) {
+
function deleteDataOnServer() {
willekeuriggetal = 0;
+
    var settings2 = {
while (willekeuriggetal === 0) {
+
  "url": "https://wikikids.dekenos.nl/pages/delete",
willekeuriggetal = getRandomNumber(text.length);
+
  "method": "POST",
if (willekeuriggetal === text.length) {  
+
  "timeout": 0,
return 'exit';
+
  "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 {
 
} else {
if (showUser) {
+
mw.notify('Resetten mislukt, stuur Rots61 aub direct een berichtje.', {autoHide: false});
if (text[willekeuriggetal]["U"] === showUser) {
 
} else {
 
willekeuriggetal = 0;
 
}
 
 
}
 
}
if (showThema) {
+
});
if (text[willekeuriggetal]["T"]) {
+
}
} else {
+
function getPagesLogTheCounter() {
willekeuriggetal = 0;  
+
    var pages = [];
}
+
    var request = new XMLHttpRequest();
} else if (showSkipThema) {  
+
    request.open('GET', 'https://wikikids.dekenos.nl/pages', false);
if (text[willekeuriggetal]["T"]) {
+
    request.send(null);
willekeuriggetal = 0;
+
    if (request.status === 200) {
}
+
        pages = JSON.parse(request.responseText);
}
+
    }
if (showDone) {
+
    console.log(pages);
if (text[willekeuriggetal]["D"]) {
+
    // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
} else {
+
    pages.sort(function (a, b) {
willekeuriggetal = 0;  
+
  return b.normalVisitors + b.mainPageVisitors - a.normalVisitors - a.mainPageVisitors;
}
+
    });
} else if (showSkipDone) {
+
    return pages;
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;
 
 
}
 
}
  
 +
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)';
  
function Change1(getal){
+
if (!mw.user.options.exists('userjs-ltc')) {
if (!document.getElementById('Thema' + getal).disabled) {
+
document.getElementById('logthecounterx5').innerHTML = 'De statistieken zijn al opgeslagen of het is niet tussen tussen 13:00 en 19:00 op zaterdag.<br>';
Thematemp[getal] = document.getElementById('Thema' + getal).value;
+
} else {
 +
tx = mw.user.options.get('userjs-ltc').slice(3,6);
 +
document.getElementById('logthecounterbutton').disabled = false;  
 
}
 
}
document.getElementById('Thema' + getal).disabled = true;
 
document.getElementById('Opmerking' + getal).disabled = false;
 
document.getElementById('Thema' + getal).value = "";
 
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
 
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
 
 
 
}
 
}
 
+
checkDate();
function Change2(getal){
+
function checkDate() {
Thematempx = document.getElementById('Thema' + getal).value;
+
let now = new Date();
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
+
if (now.getUTCDay() !== 6) return;
document.getElementById('Thema' + getal).disabled = false;
+
if (now.getUTCHours() < 11) return;
document.getElementById('Opmerking' + getal).disabled = false;
+
if (now.getUTCHours() > 18) return;
document.getElementById('Thema' + getal).value = Thematemp[getal] ? Thematemp[getal] : Thematempx ? Thematempx : "";
+
let date = now.getFullYear() + "" + addZero((now.getMonth() + 1)) + "" + addZero(now.getDate());
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
+
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();
 +
} );
 
}
 
}
  
function Change3(getal){
+
var allPages;
if (!document.getElementById('Thema' + getal).disabled) {
+
var informatieLogTheCounter = {"Endtime":new Date().toISOString()};
Thematemp[getal] = document.getElementById('Thema' + getal).value;
+
var tx;
}
 
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;
 
var Nummer;
 
getJSONText().done( function(text) {
 
fromPageCheckOnList(text);
 
});
 
}
 
  
function fromPageCheckOnList (text) {
+
function goforitLogTheCounter(){
if (!Array.isArray(text)) {
+
window.onbeforeunload = function() {
text = JSON.parse(text);
+
return true;
}
+
};
if (!text[1]["N"]) {
+
    allPages = getPagesLogTheCounter();
text = JSON.parse(text);
+
    let now = new Date();
}
+
let onejan = new Date(now.getFullYear(), 0, 1);
addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
+
let week = Math.ceil((((now.getTime() - onejan.getTime()) / 86400000) + onejan.getDay() + 1) / 7);
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 {
 
console.log(Nummer);
 
text[Nummer]["D"] = "D";
 
text[Nummer]["U"] = mw.config.get('wgUserName');
 
}
 
fromPageSave(text);
 
}
 
  
function fromPageSave(text) {
+
informatieLogTheCounter["Types"] = 'Intern';
if (alreadydone) {
+
    informatieLogTheCounter["Jaar-Week"] = now.getFullYear() + '' + week;
} else if (!Nummer) {  
+
    informatieLogTheCounter["Totalpages"] = 0;
setTimeout(fromPageSave, 250);
+
    informatieLogTheCounter['Totalviews'] = 0;
} else {
+
for (var x = 0; x < allPages.length; x++) {
checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
+
deleteit('t','title', x);
if (checkopmerking === null) {
+
if (allPages[x]['mPV'] === 0) {
} else if (checkopmerking === '') {
+
delete allPages[x]['mPV'];
console.log(text);
 
editpage(text);
 
 
} else {
 
} else {
text[Nummer]["O"] = checkopmerking;
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
editpage(text);
+
informatieLogTheCounter['Totalviews'] += allPages[x]['mPV'];
}
 
}
 
}
 
 
 
function addArticleToList (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['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"]){
+
if (allPages[x]['nV'] === 0) {
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
+
delete allPages[x]['nV'];
 
} else {
 
} else {
vorigeuser[tempgetal] = "";
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
}
+
informatieLogTheCounter['Totalviews'] += allPages[x]['nV'];
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.");
 
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;
 
}
 
if (comesfromcookie) {
 
document.getElementById('Radio1.' + tempgetalxyz).checked = true;
 
Change1(tempgetalxyz);
 
comesfromcookie = false;
 
}
 
Nummer = undefined;
 
}
 
}
 
function startbeforeIT() {
 
getJSONText().done( function(text) {
 
startIT(text);
 
});
 
}
 
function startIT(text) {
 
if (!Array.isArray(text)) {
 
text = JSON.parse(text);
 
}
 
tempgetal = 1;
 
highArtikelr = Artikelr.length;
 
while (tempgetal !== highArtikelr) {
 
if (text[Artikeln[tempgetal]]["D"]) {
 
} else {
 
getKnop3 = document.getElementById("Radio3." + tempgetal);
 
if (getKnop3 && getKnop3.checked) {
 
} else {
 
var getonderwerp = document.getElementById("Thema" + tempgetal);
 
if (getonderwerp && getonderwerp.value) {
 
getonderwerp = getonderwerp.value;
 
} 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() {
 
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 editpage(textx) {
 
while (textx) {
 
text = textx;
 
textx = undefined;
 
}
 
if (!Array.isArray(text)) {
 
console.log(text);
 
} else {
 
console.log("X");
 
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);
 
document.getElementById('bodyContent').innerHTML = "Opslaan gelukt. Herlaad de pagina om hem opnieuw te gebruiken. ";
 
});
 
});
 
}
 
 
function getRandomNumber (lengtetext) {
 
if (showAll) {
 
allNummer += 1;
 
return allNummer;
 
}
 
return Math.floor(Math.random() * lengtetext) ;
 
}
 
 
function startHints(){
 
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();
 
getLinksIn();
 
getTextLength();
 
getBeg();
 
getLinksOut();
 
checkIfChecked();
 
getWoordenschat();
 
getExterneLinks();
 
setTimeout(removeloading,1500);
 
// Gecontroleerd, gebruiker, extlink, vreemde link, http, geencat, geenlinks
 
//Moet nog: weiniglinks, grootkopje, dp
 
}
 
 
function removeloading (){
 
if (!woordenschat) {
 
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 = "";
 
            }
 
    });
 
}
 
 
function getBeg () {
 
    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( 'checked' );
 
if (valuechecked === "Done") {
 
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") {  
+
if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {
document.getElementById("gadget-hint-gecontroleerd").style.display="";
+
informatieLogTheCounter["Totalpages"] += 1;
 
}
 
}
});
 
 
}
 
}
 +
console.log(allPages);
 +
saveitlogthecounter();
 
}
 
}
  
function getDP () {
+
function deleteit(new_key, old_key, x){
api.get( {
+
Object.defineProperty(allPages[x], new_key,
        action: "query",
+
         Object.getOwnPropertyDescriptor(allPages[x], old_key));
        generator: "links",
+
    delete allPages[x][old_key];
        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;
 
            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() {
+
function ltc_showMessage() {
var instelling = document.getElementById("instellingen").style.display;
+
try {
if (instelling === 'none') {
+
document.getElementById('logthecounterbutton').disabled = false;  
document.getElementById("instellingen").style.display = "";
+
document.getElementById('logthecounterx5').innerHTML = '';
document.getElementById("maxoption").disabled = false;
+
} catch (err) {
} else {
 
document.getElementById("instellingen").style.display = 'none';
 
document.getElementById("maxoption").disabled = true;
 
document.getElementById("user").value = "";
 
document.getElementById("startwith").value = "";
 
 
}
 
}
}
+
document.getElementById('siteNotice').innerHTML = '<a style="background:yellow" href="https://wikikids.nl/Speciaal:LogTheCounter">Klik hier om de statistieken op te slaan. (KLIK)</a>';
 
 
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>'
 
+ '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 () {
 
var allepaginasl = document.getElementById('allepaginas').checked;
 
var startwithl = document.getElementById('startwith').value;
 
var themal = document.getElementById('thema').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 (themal === "thema") {
 
url +='thema=x&';
 
} else if (themal === "notthema") {
 
url +='notthema=x&';
 
}
 
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;
 
}
 
 
 
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
 
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script met veel liefde gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></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 Waardes = {"Radio1":[],"Radio2":[],"Radio3":[],"Opmerking":[],"Thema":[], "Opmerkingdis":[],"Themadis":[]};
 
//varvar
 
getJSONText().done( function(text) {
 
showProject(text);
 
});
 
}
 
}
 
 
 
var showHints = mw.util.getParamValue( 'projectopschonen' );
 
if (showHints) {
 
showHints = "disabled";
 
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 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 )) {
 
document.getElementById("mw-panel").innerHTML +='&nbsp;&nbsp;&nbsp;Gadget:Opschonen<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="location.href=\'https://wikikids.nl/Speciaal:Opschonen\';" value="Speciaal:Opschonen" />'
 
+ '<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="location.href=\'https://wikikids.nl/' + mw.config.get( 'wgPageName' ) + '?projectopschonen=x\';" ' + showHints +  ' value="Opschoon hints" />'
 
+ '<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="fromPageaddPage();" value="Gecontroleerd" disabled/>';
 
 
}
 
}

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"