Gebruiker:Rots61/Gadget-LogTheCounter.js

Uit Wikikids
Naar navigatie springen Naar zoeken springen

Let op! Nadat je de veranderingen hebt opgeslagen, moet je de cache van je browser nog legen om ze daadwerkelijk te zien.

Mozilla (incl. Firefox) ctrl-shift-r
IE ctrl-f5
Opera f5
Safari cmd-r
Konqueror f5
/* jshint sub:true maxerr:100000 */
// [[User:MakiBoy/Gadget-LogTheCounter.js]] gemaakt door [[User:Rots61]]

function saveitlogthecounter() {
	if (Array.isArray(allPages)) {
        allPages = JSON.stringify(allPages);
    }
	function addZero(number) {
		return number < 10 ? "0" + number : number;
    }
    date = new Date();
    date = addZero(date.getDate()) + "" + addZero((date.getMonth() + 1)) + "" + date.getFullYear();
    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/Statistieken/" + 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 });
                    } else {
                        mw.notify("Mislukt", { autoHide: false });
                    }
                    console.log(data.edit);
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
                });
        });
}

function saveinfoitlogthecounter() {
	function addZero(number) {
		return number < 10 ? "0" + number : number;
    }
    date = new Date();
    date = addZero(date.getDate()) + "" + addZero((date.getMonth() + 1)) + "" + date.getFullYear();
    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/Statistieken/" + date + '/info',
                'text': informatieLogTheCounter,
                'summary': "Pagina opgeslagen met LogTheCounter.",
                'bot': true,
                'token': edit_token,
            }).done(
                function (data) {
                    if (data.edit.result == "Success") {
                        mw.notify("Info opgeslagen!", { autoHide: false });
                    } else {
                        mw.notify("Mislukt", { autoHide: false });
                    }
                    console.log(data.edit);
                    document.getElementById('bodyContent').innerHTML = "Herlaad de pagina.";
                });
        });
}

function getPagesLogTheCounter() {
    var pages = [];
    var request = new XMLHttpRequest();
    request.open('GET', 'https://wikikids.martvanweeghel.nl/pages', false);
    request.send(null);
    if (request.status === 200) {
        pages = JSON.parse(request.responseText);
    }
    // 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;
}

var allPages;
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
	document.getElementById('bodyContent').innerHTML = "Pagina gereserveerd voor het opslaan van LogCounter. Gebruik de functie goforitLogTheCounter."
	+ 'Voer eerst dit nog in in de console;     var informatieLogTheCounter = {"Categorie":"QRS"};<br><button onclick="goforitLogTheCounter();">Activeer deze functie</button>';
}

function goforitLogTheCounter(){
    allPages = getPagesLogTheCounter();
	for (var x = 0; x < allPages.length; x++) {
		console.log(x);
		console.log(allPages[x]);
		if (informatieLogTheCounter['Starttime'] > allPages[x]['updatedAt']) {
			informatieLogTheCounter['Starttime'] = allPages[x]['updatedAt'];
		}
		if (informatieLogTheCounter['Endtime'] < allPages[x]['updatedAt']) {
			informatieLogTheCounter['Endtime'] = allPages[x]['updatedAt'];
		}
		if ((allPages[x]['normalVisitors'] + allPages[x]['mainPageVisitors']) <= 2) {
			delete allPages[x]['updatedAt'];
		} else {
			deleteit('uA','updatedAt', x);
		}
		if (allPages[x]['mainPageVisitors'] === 0) {
			delete allPages[x]['mainPageVisitors'];
		} else {
			deleteit('mPV', 'mainPageVisitors', x);
		}
		if (allPages[x]['normalVisitors'] === 0) {
			delete allPages[x]['normalVisitors'];
		} else {
			deleteit('nV','normalVisitors', x);
		}
		deleteit('t','title', x);
	}
	console.log(allPages); 
	saveitlogthecounter();
	saveinfoitlogthecounter();
}

function deleteit(new_key, old_key, x){
	Object.defineProperty(allPages[x], new_key,
        Object.getOwnPropertyDescriptor(allPages[x], old_key));
    delete allPages[x][old_key];
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-LogTheCounter.js&oldid=766375"