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

Uit Wikikids
Naar navigatie springen Naar zoeken springen
 
(78 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
 
/* jshint sub:true maxerr:100000 */
 
/* jshint sub:true maxerr:100000 */
// [[User:MakiBoy/Gadget-LogCounter.js]] gemaakt door [[User:MakiBoy]]
+
// [[User:Rots61/Gadget-LogTheCounter.js]] gemaakt door [[User:Rots61]]
  
var version = '2.9';
+
/*
  
function parseNumber(number) {
+
var api = new mw.Api();
    return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
+
api.saveOption('userjs-ltc', 'x').then( x =>console.log(x));
 +
 
 +
*/
 +
function addZero(number) {
 +
return number < 10 ? "0" + number : number;
 
}
 
}
  
function showProjectLogCounter(pages) {
+
function saveitlogthecounter() {
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:LogCounter";
+
if (Array.isArray(allPages)) {
    document.title = "LogCounter - WikiKids";
+
         allPages = JSON.stringify(allPages);
 
 
    var searchBar = '<div><input type="text" id="lc-searchbar"> <button onclick="searchTitle();">Zoek</button></div>'
 
         + '<button onclick="reloadPagesLogCounter();">Laad alles opnieuw in</button>';
 
    var logCounterInfo = '<div id="logCounterInfo">Deze pagina laat zien hoeveel paginabezoeken er zijn geweest op een specifieke pagina. De rij "Views" bevat alle views. De rij "Categorie" laat alleen maar zien hoeveel views er vanuit een categorie komen.</div>';
 
 
 
    var table = document.createElement('table');
 
    table.classList.add('wikitable');
 
 
var arrayHoofdpagina = ["1", "20012023"]; //voeg versies toe die de hoofdpagina gebruiken
 
var arrayCategorie = ["1"]; //voeg versies toe die de categorieën gebruiken
 
    var tableHead = document.createElement('thead');
 
    var tableHeadRow = document.createElement('tr');
 
    var tableHeadTitles;
 
    if (arrayHoofdpagina.includes(requestDate)) {
 
    tableHeadTitles = ['Paginatitel', 'Laatste bezoek', 'Views', 'Hoofdpagina'];
 
    } else {
 
    tableHeadTitles = ['Paginatitel', 'Laatste bezoek', 'Views', 'Categorie'];
 
 
     }
 
     }
     var tableBody = document.createElement('tbody');
+
     date = new Date();
 
+
     date = date.getFullYear() + "" + addZero((date.getMonth() + 1)) + "" + addZero(date.getDate());
    var currentPage = 1;
+
     api.get({
     var rowsPerPage = mw.util.getParamValue('rows') ? parseInt(mw.util.getParamValue('rows')) : 25;
+
         action: 'query',
    var totalPages = Math.ceil(pages.length / rowsPerPage);
+
        prop: 'info',
 
+
         intoken: 'edit',
     function showPage(pageNumber) {
+
         titles: 'kaslv', //Pagina moet niet bestaan.
         currentPage = pageNumber;
+
    }).done(
         tableBody.innerHTML = '';
+
         function (data) {
         var start = (currentPage - 1) * rowsPerPage;
+
            edit_token = data.query.pages['-1'].edittoken;
         var end = start + rowsPerPage;
+
         }).done(function (data) {
        var paginatedItems = pages.slice(start, end);
+
             api.post({
         paginatedItems.forEach(function (page) {
+
                'action': 'edit',
             var row = document.createElement('tr');
+
                'title': "Wikikids:Statistieken/Logs/" + date,
            var totalVisitors, mainPageVisited, pageTitle, pageLink, date;
+
                'text': allPages,
             if (historyLogCounter) {
+
                'summary': "Pagina opgeslagen met LogTheCounter.",
            totalVisitors = page.nV + page.mPV;
+
                'bot': true,
            mainPageVisited = page.mPV ? parseNumber(page.mPV) : "";
+
                'token': edit_token,
            pageTitle = page.t.replace(/_/g, ' ');
+
             }).done(
            pageLink = page.t;
+
                function (data) {
            if (pageLink.includes("S:Z\\")) {
+
                    if (data.edit.result == "Success") {
            pageLink = pageLink.replace(/S:Z\\/g, 'Speciaal:Zoeken/');
+
                        mw.notify("Hele pagina opgeslagen!", { autoHide: false });
            pageTitle = pageTitle.replace(/S:Z\\/g, 'Zoekopdracht: ');
+
                        deleteDataOnServer();
            }
+
                    } else {
            date = new Date(page.uA);
+
                        mw.notify("Opslaan mislukt, stuur Rots61 aub direct een berichtje.", { autoHide: false });
            } else {
+
                    }
            totalVisitors = page.normalVisitors + page.mainPageVisitors;
+
                    console.log(data.edit);
            mainPageVisited = page.mainPageVisitors ? parseNumber(page.mainPageVisitors) : "";
+
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
            pageTitle = page.title.replace(/_/g, ' ');
+
                });
            pageLink = page.title;
+
        });    
            if (pageLink.includes("S:Z")) {
+
    api.get({
            pageLink = pageLink.replace(/S:Z\\/g, 'Speciaal:Zoeken/');
+
        action: 'query',
            pageTitle = page.title;
+
        prop: 'info',
            }
+
        intoken: 'edit',
            date = new Date(page.updatedAt);
+
        titles: 'kaslv', //Pagina moet niet bestaan.  
            }
+
    }).done(
             function addZero(number) {
+
        function (data) {
                 return number < 10 ? "0" + number : number;
+
            edit_token = data.query.pages['-1'].edittoken;
            }
+
        }).done(function (data) {
 
+
             api.post({
            var dateString = addZero(date.getDate()) + "-" + addZero((date.getMonth() + 1)) + "-" + date.getFullYear();
+
                 'action': 'edit',
 
+
                'title': "Wikikids:Statistieken/Logs/" + date + "/info",
            row.innerHTML = `<td><a href="/${pageLink}">${pageTitle}</a></td>
+
                'text': JSON.stringify(informatieLogTheCounter),
                <td>${dateString}</td>
+
                'summary': "Pagina opgeslagen met LogTheCounter.",
                <td>${parseNumber(totalVisitors)}</td><td><span style="color:green; font-weight: bold;">${parseNumber(mainPageVisited)}</span></td>`;
+
                'bot': true,
            tableBody.appendChild(row);
+
                '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);
 +
                });
 
         });
 
         });
    }
 
 
    showPage(1);
 
 
    var pagination = document.createElement('div');
 
    pagination.classList.add('pagination');
 
 
    var prevButton = document.createElement('button');
 
    prevButton.textContent = 'Vorige';
 
    prevButton.style = 'margin-right: 10px;';
 
    prevButton.addEventListener('click', function () {
 
        if (currentPage > 1) {
 
            showPage(currentPage - 1);
 
            //Manier waarop je kunt zien op welke pagina je bent
 
            document.getElementById('pageCounter').textContent = `Pagina ${currentPage} van ${totalPages}`;
 
        }
 
    });
 
    pagination.appendChild(prevButton);
 
 
    var pageCounter = document.createElement('span');
 
    pageCounter.id = "pageCounter";
 
    pageCounter.textContent = `Pagina ${currentPage} van ${totalPages}`;
 
    pagination.appendChild(pageCounter);
 
 
    var nextButton = document.createElement('button');
 
    nextButton.textContent = 'Volgende';
 
    nextButton.style = 'margin-left: 10px;';
 
    nextButton.addEventListener('click', function () {
 
        if (currentPage < totalPages) {
 
            showPage(currentPage + 1);
 
            //Manier waarop je kunt zien op welke pagina je bent
 
            document.getElementById('pageCounter').textContent = `Pagina ${currentPage} van ${totalPages}`;
 
        }
 
    });
 
    pagination.appendChild(nextButton);
 
 
    tableHeadTitles.forEach(function (title) {
 
        var tableHeadCell = document.createElement('th');
 
        tableHeadCell.textContent = title;
 
        tableHeadRow.appendChild(tableHeadCell);
 
    });
 
    tableHead.appendChild(tableHeadRow);
 
    table.appendChild(tableHead);
 
    table.appendChild(tableBody);
 
 
    var totalVisitors = pages.reduce(function (total, page) {
 
    if (historyLogCounter) {
 
    return total + page.nV + page.mPV;
 
    } else {
 
    return total + page.normalVisitors + page.mainPageVisitors;
 
    }
 
    }, 0);
 
 
    var totalElement = document.createElement('div');
 
    totalElement.style = 'margin-top: 20px; display: flex; flex-direction: column;';
 
 
    var totalVisitorsElement = document.createElement('span');
 
    totalVisitorsElement.textContent = `Totaal aantal bezoeken: ${parseNumber(totalVisitors)}`;
 
    totalElement.appendChild(totalVisitorsElement);
 
 
    var totalPagesElement = document.createElement('span');
 
    totalPagesElement.textContent = `Totaal aantal pagina's: ${parseNumber(pages.length)}`;
 
    totalElement.appendChild(totalPagesElement);
 
 
    //document.getElementById('bodyContent').innerHTML = '';
 
    document.getElementById('bodyContent').innerHTML = searchBar + logCounterInfo;
 
    document.getElementById('bodyContent').appendChild(table);
 
    document.getElementById('bodyContent').appendChild(pagination);
 
    document.getElementById('bodyContent').appendChild(totalElement);
 
 
}
 
}
  
function getCategoriesLogCounter() { //toon alleen pagina's in een specifieke categorie
+
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() {
function getPagesLogCounter() {
 
 
     var pages = [];
 
     var pages = [];
 
     var request = new XMLHttpRequest();
 
     var request = new XMLHttpRequest();
     request.open('GET', 'https://wikikids.martvanweeghel.nl/pages', false);
+
     request.open('GET', 'https://wikikids.dekenos.nl/pages', false);
 
     request.send(null);
 
     request.send(null);
 
     if (request.status === 200) {
 
     if (request.status === 200) {
 
         pages = JSON.parse(request.responseText);
 
         pages = JSON.parse(request.responseText);
 
     }
 
     }
 +
    console.log(pages);
 
     // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
 
     // Sorteer de pagina's op het aantal bezoekers (hoog naar laag) (page.normalVisitors + page.mainPageVisitors)
 
     pages.sort(function (a, b) {
 
     pages.sort(function (a, b) {
    if (historyLogCounter) {
+
  return b.normalVisitors + b.mainPageVisitors - a.normalVisitors - a.mainPageVisitors;
    return b.nV + b.mPV - a.nV - a.mPV;
 
    } else {
 
    return b.normalVisitors + b.mainPageVisitors - a.normalVisitors - a.mainPageVisitors;
 
    }
 
 
     });
 
     });
 
     return pages;
 
     return pages;
 
}
 
}
  
function reloadPagesLogCounter() {
+
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
    var allPages = getPagesLogCounter();
+
document.title = 'Opslaan WikiStatistieken';
    showProjectLogCounter(allPages);
+
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 allPages;
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
+
var informatieLogTheCounter = {"Endtime":new Date().toISOString()};
     var allPages = getPagesLogCounter();
+
var tx;
     //showProjectLogCounter(allPages);
+
 
for (const x of allpages) {
+
 
deleteit('mPV', 'mainPageVisitors', x);
+
function goforitLogTheCounter(){
deleteit('nV','normalVisitors', x);
+
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);
 
deleteit('t','title', x);
deleteit('uA','updatedAt', 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);  
+
console.log(allPages);
 +
saveitlogthecounter();
 
}
 
}
  
 
function deleteit(new_key, old_key, x){
 
function deleteit(new_key, old_key, x){
Object.defineProperty(allpages[x], new_key,
+
Object.defineProperty(allPages[x], new_key,
         Object.getOwnPropertyDescriptor(allpages[x], old_key));
+
         Object.getOwnPropertyDescriptor(allPages[x], old_key));
     delete 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>';
 
}
 
}

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"