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

Uit Wikikids
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
 
/* jshint sub:true maxerr:100000 */
 
/* jshint sub:true maxerr:100000 */
var api = new mw.Api();
+
// [[User:MakiBoy/Gadget-LogTheCounter.js]] gemaakt door [[User:Rots61]]
var data2 = [];
 
var aantalallepaginasmetlinkdienietbestaan = 0;
 
var edit_token;
 
  
function allepaginasmetlinkdienietbestaan(apiContinue) {
+
function saveitlogthecounter() {
     api.get( {
+
if (Array.isArray(allPages)) {
         action: "query",
+
        allPages = JSON.stringify(allPages);
         list: "querypage",
+
    }
         qppage: "Wantedpages",
+
function addZero(number) {
         qplimit: 5000,
+
return number < 10 ? "0" + number : number;
        qpoffset: apiContinue ? apiContinue.qpoffset : undefined
+
    }
     } ).then( function (data) {
+
    date = new Date();
    data2 = data2.concat(data.query.querypage.results);
+
    date = addZero(date.getDate()) + "" + addZero((date.getMonth() + 1)) + "" + date.getFullYear();
    aantalallepaginasmetlinkdienietbestaan += 1;
+
     api.get({
    console.log(aantalallepaginasmetlinkdienietbestaan);
+
         action: 'query',
        if ( data.continue ) {
+
         prop: 'info',
            allepaginasmetlinkdienietbestaan( data.continue );
+
         intoken: 'edit',
        } else {
+
         titles: 'kaslv', //Pagina moet niet bestaan.  
      console.log(data2);
+
     }).done(
        eendownloadfunctievoordegebruikerrotsenenzestigdieniethelemaalgoedwerktmaarwelafdoendevoordetaakwaarvoordezeisgeschreven(JSON.stringify(data2), "eenheeltextbestandvolmetallemaalpaginasopwikikidsdienietbestaanmaarwaartochwelnaargelinktwordtbijdezeinformatiestaatnogmeerzoalshoeveelpaginasnaardezepaginaverwijzenomhetnogleukertemakenwordenallelinksmeegeteltennietalleenuitdehoofdnaamruimtewaarschijnlijkzijnditwelgenoegtekens", 'txt');
+
        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 eendownloadfunctievoordegebruikerrotsenenzestigdieniethelemaalgoedwerktmaarwelafdoendevoordetaakwaarvoordezeisgeschreven(data, filename, type) {
+
function saveinfoitlogthecounter() {
    var file = new Blob([data], {type: type});
+
function addZero(number) {
    if (window.navigator.msSaveOrOpenBlob)
+
return number < 10 ? "0" + number : number;
        window.navigator.msSaveOrOpenBlob(file, filename+"." + type);
 
    else {
 
        var a = document.createElement("a"),
 
url = URL.createObjectURL(file);
 
        a.href = url;
 
        a.download = filename;
 
        document.body.appendChild(a);
 
        a.click();
 
        setTimeout(function() {
 
            document.body.removeChild(a);
 
            window.URL.revokeObjectURL(url); 
 
        }, 0);  
 
 
     }
 
     }
 +
    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 getPagesLogCounter() {
 +
    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;
 +
}
 +
 +
function reloadPagesLogCounter() {
 +
    var allPages = getPagesLogCounter();
 +
    showProjectLogCounter(allPages);
 +
}
 +
 +
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(){
 +
    var allPages = getPagesLogCounter();
 +
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 {
 +
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];
 
}
 
}

Versie van 10 feb 2023 15:21

/* 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 getPagesLogCounter() {
    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;
}

function reloadPagesLogCounter() {
    var allPages = getPagesLogCounter();
    showProjectLogCounter(allPages);
}

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(){
    var allPages = getPagesLogCounter();
	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 {
			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=766371"