Gebruiker:Rots61/Gadget-LogTheCounter.js: verschil tussen versies
		
		
		
		
		
		Naar navigatie springen
		Naar zoeken springen
		
				
		
		
	
Label: Ongedaan maken  | 
				|||
| (36 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
| Regel 1: | Regel 1: | ||
/* jshint sub:true maxerr:100000 */  | /* jshint sub:true maxerr:100000 */  | ||
| − | // [[User:  | + | // [[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() {  | function saveitlogthecounter() {  | ||
	if (Array.isArray(allPages)) {  | 	if (Array.isArray(allPages)) {  | ||
         allPages = JSON.stringify(allPages);  |          allPages = JSON.stringify(allPages);  | ||
| − | |||
| − | |||
| − | |||
     }  |      }  | ||
     date = new Date();  |      date = new Date();  | ||
| Regel 22: | Regel 29: | ||
             api.post({  |              api.post({  | ||
                 'action': 'edit',  |                  'action': 'edit',  | ||
| − |                  'title': "  | + |                  'title': "Wikikids:Statistieken/Logs/" + date,  | 
                 'text': allPages,  |                  'text': allPages,  | ||
                 'summary': "Pagina opgeslagen met LogTheCounter.",  |                  'summary': "Pagina opgeslagen met LogTheCounter.",  | ||
| Regel 31: | Regel 38: | ||
                     if (data.edit.result == "Success") {  |                      if (data.edit.result == "Success") {  | ||
                         mw.notify("Hele pagina opgeslagen!", { autoHide: false });  |                          mw.notify("Hele pagina opgeslagen!", { autoHide: false });  | ||
| + |                         deleteDataOnServer();  | ||
                     } else {  |                      } else {  | ||
| − |                          mw.notify("  | + |                          mw.notify("Opslaan mislukt, stuur Rots61 aub direct een berichtje.", { autoHide: false });  | 
                     }  |                      }  | ||
                     console.log(data.edit);  |                      console.log(data.edit);  | ||
                     document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";  |                      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() {  | function getPagesLogTheCounter() {  | ||
     var pages = [];  |      var pages = [];  | ||
     var request = new XMLHttpRequest();  |      var request = new XMLHttpRequest();  | ||
| − |      request.open('GET', 'https://wikikids.  | + |      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) {  | ||
| Regel 69: | Regel 117: | ||
}  | }  | ||
| − | |||
| − | |||
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {  | if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "LogTheCounter") {  | ||
| − | 	document.getElementById('bodyContent').innerHTML =   | + | 	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§ion=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(){  | function goforitLogTheCounter(){  | ||
| + | 	window.onbeforeunload = function() {  | ||
| + | 		return true;  | ||
| + | 	};  | ||
     allPages = getPagesLogTheCounter();  |      allPages = getPagesLogTheCounter();  | ||
| − |      informatieLogTheCounter["Types"] =   | + |      let now = new Date();  | 
| − |      informatieLogTheCounter["Jaar-Week"] =   | + | 	let onejan = new Date(now.getFullYear(), 0, 1);  | 
| − |      informatieLogTheCounter["Totalpages"] =   | + | 	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;  |      informatieLogTheCounter['Totalviews'] = 0;  | ||
	for (var x = 0; x < allPages.length; x++) {  | 	for (var x = 0; x < allPages.length; x++) {  | ||
| − | + | 		deleteit('t','title', x);  | |
| − | + | 		if (allPages[x]['mPV'] === 0) {  | |
| − | + | 			delete allPages[x]['mPV'];  | |
| − | 		if (  | ||
| − | |||
| − | |||
| − | |||
| − | 			delete allPages[x]['  | ||
		} else {  | 		} else {  | ||
| − | + | 			if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {  | |
| + | 				informatieLogTheCounter['Totalviews'] += allPages[x]['mPV'];  | ||
| + | 			}  | ||
		}  | 		}  | ||
| − | 		if (allPages[x]['  | + | 		if (allPages[x]['nV'] === 0) {  | 
| − | 			delete allPages[x]['  | + | 			delete allPages[x]['nV'];  | 
		} else {  | 		} else {  | ||
| − | 			informatieLogTheCounter['Totalviews'] += allPages[x]['  | + | 			if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {  | 
| − | + | 			informatieLogTheCounter['Totalviews'] += allPages[x]['nV'];  | |
| + | 			}  | ||
		}  | 		}  | ||
| − | 		if (allPages[x]  | + | 		if (!(allPages[x].t.includes('Zoeken:') || allPages[x].t.includes('X:'))) {  | 
| − | + | 			informatieLogTheCounter["Totalpages"] += 1;  | |
| − | |||
| − | 			informatieLogTheCounter[  | ||
| − | |||
		}  | 		}  | ||
| − | |||
	}  | 	}  | ||
	console.log(allPages);    | 	console.log(allPages);    | ||
| Regel 116: | Regel 205: | ||
         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 11: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§ion=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>';
}