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

Uit Wikikids
Naar navigatie springen Naar zoeken springen
(Versie 783261 van Rots61 (overleg) ongedaan gemaakt)
Label: Ongedaan maken
(geen verschil)

Versie van 10 jun 2023 21:19

/* 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=793400"