Gebruiker:Rots61/Gadget-LogTheCounter.js

Uit Wikikids
< Gebruiker:Rots61
Versie door Rots61 (overleg | bijdragen) op 6 mei 2023 om 17:01 (Versie 783261 van Rots61 (overleg) ongedaan gemaakt)
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 = 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': "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("Hele pagina mislukt", { autoHide: false });
                    }
                    console.log(data.edit);
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
                });
            document.getElementById('infopaginaLogTheCounter').innerHTML = '<a href="/Gebruiker:Rots61/Statistieken/' + date + '/info" title="' + date + '">Pagina</a>';
            document.getElementById('addinfotoinfopagelogthecounter').innerHTML = JSON.stringify(informatieLogTheCounter);
        });      
    bericht = {"message": wachtwoordvantevoren};
    fetch("https://wikikids.martvanweeghel.nl/rots61/delete",
        {
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            method: "DEL",
            body: JSON.stringify(bericht)
        })
        .then(function (res) {})
        .catch(function (res) {});
}

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;
var informatieLogTheCounter = {"Starttime":'9999-99-99T13:27:00.170Z', "Endtime":'0000-00-00T13:27:00.170Z'};
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {
	document.getElementById('bodyContent').innerHTML = "Pagina gereserveerd voor het opslaan van LogCounter. <br>Type informatie:"
	+ '<input type="text" id="typelogthecounter"><br>Jaar-week, gebruik dit format: 2023-01; <input type="text" id="weeknummerlogthecounter"><br><button onclick="goforitLogTheCounter();">Activeer deze functie</button><br>Voeg dit onderstaande toe aan deze informatiepagina: <span id="infopaginaLogTheCounter"></span>: <textarea rows="5" cols="100" id="addinfotoinfopagelogthecounter">Activeer eerst de functie...</textarea>';
}

function goforitLogTheCounter(){
    allPages = getPagesLogTheCounter();
    informatieLogTheCounter["Types"] = document.getElementById('typelogthecounter').value;
    informatieLogTheCounter["Jaar-Week"] = document.getElementById('weeknummerlogthecounter').value;
    informatieLogTheCounter["Totalpages"] = allPages.length;
    informatieLogTheCounter['Totalviews'] = 0;
	for (var x = 0; x < allPages.length; 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 {
			informatieLogTheCounter['Totalviews'] += allPages[x]['mainPageVisitors'];
			deleteit('mPV', 'mainPageVisitors', x);
		}
		if (allPages[x]['normalVisitors'] === 0) {
			delete allPages[x]['normalVisitors'];
		} else {
			informatieLogTheCounter['Totalviews'] += allPages[x]['normalVisitors'];
			deleteit('nV','normalVisitors', x);
		}
		deleteit('t','title', x);
	}
	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];
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-LogTheCounter.js&oldid=784994"