Gebruiker:Rots61/JS-Statistieken.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
(alvast voor straks)
Regel 29: Regel 29:
 
        fromMainPage: false
 
        fromMainPage: false
 
    };
 
    };
    /*
+
/*
var visitedSTS = JSON.parse(mw.storage.get('firstvisitLogCounter052023a'));
+
var visitedSTS = JSON.parse(mw.storage.get('firstVisitWikiStats072023'));
 
if (visitedSTS) {
 
if (visitedSTS) {
 
    if (visitedSTS.includes(mw.config.get('wgArticleId'))) {
 
    if (visitedSTS.includes(mw.config.get('wgArticleId'))) {
 
    } else {
 
    } else {
 
        visitedSTS.push(mw.config.get('wgArticleId'));
 
        visitedSTS.push(mw.config.get('wgArticleId'));
        mw.storage.set('firstvisitLogCounter052023a', JSON.stringify(visitedSTS), 604800); //7 dagen
+
        mw.storage.set('firstVisitWikiStats072023', JSON.stringify(visitedSTS), 604800); //7 dagen
 
        object.fromMainPage = true;
 
        object.fromMainPage = true;
 
    }
 
    }
Regel 41: Regel 41:
 
    visitedSTS = [];
 
    visitedSTS = [];
 
    visitedSTS.push(mw.config.get('wgArticleId'));
 
    visitedSTS.push(mw.config.get('wgArticleId'));
    mw.storage.set('firstvisitLogCounter052023a', JSON.stringify(visitedSTS), 604800); //7 dagen
+
    mw.storage.set('firstVisitWikiStats072023', JSON.stringify(visitedSTS), 604800); //7 dagen
 
    object.fromMainPage = true;
 
    object.fromMainPage = true;
 
}
 
}
 +
*/
 +
/*
 
    // Voor week 16
 
    // Voor week 16
 
    object = {
 
    object = {
Regel 83: Regel 85:
 
    }
 
    }
 
    */
 
    */
    var tijdStatistieken = new Date();
 
// -> local time op 18:00 voor komende zaterdag, en Epoch timestamp hieronder neerzetten.
 
//
 
    var volgendeStatistieken = 1688227200;
 
    if (Math.round(tijdStatistieken.getTime() / 1000) > volgendeStatistieken) { // Zorgt ervoor dat het niet 'doorlekt' naar de volgende statistieken
 
    object.fromMainPage = false;
 
    }
 
 
         fetch("https://wikikids.martvanweeghel.nl/pages",
 
         fetch("https://wikikids.martvanweeghel.nl/pages",
 
             {
 
             {
Regel 155: Regel 150:
 
$.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () {
 
$.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () {
 
//processchangesSTS('li2');
 
//processchangesSTS('li2');
var userAgentSTS = navigator.userAgent;  
+
 
if (!userAgentSTS.includes('bot')) { //controleert of de bezoeker een bot is, dan wordt het niet gelogd.  
+
    var tijdStatistieken = new Date();
if (!mw.config.get('wgIsRedirect')) {
+
// -> local time op 18:00 voor komende zaterdag, en Epoch timestamp hieronder neerzetten.
if (document.referrer !== document.URL) { //controleert of de vorige pagina niet hetzelfde is als deze pagina
+
//
if (window.performance) {//controleert of het kan controleren
+
    var volgendeStatistieken = 1688227200;
if (performance.navigation.type != performance.navigation.TYPE_RELOAD) {//controleert of de pagina niet is herladen
+
    if (Math.round(tijdStatistieken.getTime() / 1000) < volgendeStatistieken) { // Zorgt ervoor dat het niet 'doorlekt' naar de volgende statistieken
 +
var userAgentSTS = navigator.userAgent;  
 +
if (!userAgentSTS.includes('bot')) { //controleert of de bezoeker een bot is, dan wordt het niet gelogd.  
 +
if (!mw.config.get('wgIsRedirect')) {
 +
if (document.referrer !== document.URL) { //controleert of de vorige pagina niet hetzelfde is als deze pagina
 +
if (window.performance) {//controleert of het kan controleren
 +
if (performance.navigation.type != performance.navigation.TYPE_RELOAD) {//controleert of de pagina niet is herladen
 +
processviewSTS();
 +
}
 +
} else {
 
processviewSTS();
 
processviewSTS();
 
}
 
}
} else {
 
processviewSTS();
 
 
}
 
}
 
}
 
}
 
}
 
}
}
+
    }
 
});
 
});
  
 
if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" || (mw.config.get('wgTitle') === "Statistieken WikiKids" || mw.config.get('wgTitle') === "WikiStats")))) {
 
if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" || (mw.config.get('wgTitle') === "Statistieken WikiKids" || mw.config.get('wgTitle') === "WikiStats")))) {
document.getElementById('bodyContent').innerHTML = `Login om de statistieken te zien. <br><input type="password" id="passwordSTS"><button onclick="if (document.getElementById('passwordSTS').value === 'WikiStats') {
+
document.getElementById('bodyContent').innerHTML = `Login om de statistieken te zien, als je 5 of meer bijdragen hebt gedaan, kun je de statistieken bekijken zonder wachtwoord. <br><input type="password" id="passwordSTS"><button onclick="if (document.getElementById('passwordSTS').value === 'WikiStats') {
 
disableViewLoggingSTS(1800);
 
disableViewLoggingSTS(1800);
 
alert('Herlaad de pagina');
 
alert('Herlaad de pagina');

Versie van 1 jul 2023 14:52

// Waarschuwing, heeft impact op alle bezoekers van WikiKids die minder dan 5 bijdragen hebben gedaan!    
// Script geschreven door MakiBoy en Rots61
// Een groot gedeelte van de code is een comment, deze code werd eerder gebruikt, en kan later ook gebruikt gaan worden. Verwijder deze code niet. 

function processviewSTS() {
	// Deze code controleert of de gebruiker de onderkant van de pagina heeft bezocht. 
	/* 
    if (mw.config.get('wgIsMainPage')) { //Hoofdpagina 
    	processchangesSTS('hp','bodyContent');
    	//veranderd de "hp-newpagessection" zodat elke link hier eindigd op '?x=hp'  
    }
    if (mw.config.get('wgNamespaceNumber') === 14) {//Alle categorieën
    	processchangesSTS('ca', 'bodyContent');
    	//veranderd de "bodyContent" van de categorieën zodat elke link eindigd op '?x=ca' 
    }
    */
    var object;
    var loggedPages = [1, 61839, 97842, 2429, 5756, 138368, 149810, 149866, 40669, 2430, 25376, 51736, 93624, 1295, 103753, 4112];
    if ((mw.config.get('wgArticleId') > 0 && (mw.config.get('wgNamespaceNumber') === 0 || ( mw.config.get('wgNamespaceNumber') === 14) ||mw.config.get('wgNamespaceNumber') === 100)) || (loggedPages.includes(mw.config.get('wgArticleId'))) && (mw.config.get('wgAction') == "view")) {
		/*
		document.addEventListener("scroll", scrollSTS); 
		scrollSTS();
		*/
		//Een bestaande pagina in de naamruimte 0 (artikels), 14 (categorie) of 100 (portaal). 
    	//Of een artikel met een ID in de array 'loggedPages'. 
    	//En alleen als de pagina wordt bekeken (dus niet als het wordt bewerkt of iets anders) 
	    object = {
	        title: mw.config.get('wgPageName'),
	        fromMainPage: false
	    };
		/*
		var visitedSTS = JSON.parse(mw.storage.get('firstVisitWikiStats072023'));
		if (visitedSTS) {
		    if (visitedSTS.includes(mw.config.get('wgArticleId'))) {
		    } else {
		        visitedSTS.push(mw.config.get('wgArticleId'));
		        mw.storage.set('firstVisitWikiStats072023', JSON.stringify(visitedSTS), 604800); //7 dagen
		        object.fromMainPage = true;
		    }
		} else {
		    visitedSTS = [];
		    visitedSTS.push(mw.config.get('wgArticleId'));
		    mw.storage.set('firstVisitWikiStats072023', JSON.stringify(visitedSTS), 604800); //7 dagen
		    object.fromMainPage = true;
		}
		*/
		/*
	    // Voor week 16
	    object = {
	    	title: getTimestampInMinutesSinceBegin(),
	    	fromMainPage: false
	    };
		
		if (window.chrome) { // controleert of de bezoekers Chromium gebruiken. 
			object.fromMainPage = true; 
		}
		
	    // Detecteert de mobiele telefoon

	    if (navigator.userAgent.match(/Android/i)|| navigator.userAgent.match(/webOS/i)|| navigator.userAgent.match(/iPhone/i)
         || navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPod/i)|| navigator.userAgent.match(/BlackBerry/i)
         || navigator.userAgent.match(/Windows Phone/i)) {
            object.fromMainPage = true;
        }
        if (navigator.userAgent.match(/CRoS/i)) {
        	object.fromMainPage = true;	
        }
        if (mw.storage.get('firstvisitLogCounter042023a')) {
        } else {
        	mw.storage.set('firstvisitLogCounter042023a', 'waarde', 1209600); //14 dagen, 
        	object.fromMainPage = true;
        }

        if (mw.util.getParamValue('x') === "TVB") { //Links //hp = hoofdpagina //ca = categorie //li(2) = links //TVB = terugverwijsboxen
	        object.fromMainPage = true;
	    }
	    */
	    if (Intl.DateTimeFormat().resolvedOptions().locale === 'be' || Intl.DateTimeFormat().resolvedOptions().timeZone.includes('/Brus') || Intl.DateTimeFormat().resolvedOptions().locale === 'nl' || Intl.DateTimeFormat().resolvedOptions().timeZone.includes('/Amster')) {
	    	object.fromMainPage = true; 
	    }
	    /*
	    // Deze bezoeker is hier gekomen via wikikids. Intern
	    if ((new RegExp('(://wikikids.nl|://www.wikikids.nl)')).test(document.referrer)) {
	    	object.fromMainPage = true;
	    }
	    */
        fetch("https://wikikids.martvanweeghel.nl/pages",
            {
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                method: "POST",
                body: JSON.stringify(object)
            })
            .then(function (res) {})
            .catch(function (res) {});
    }
}

function processchangesSTS(achtervoegsel, idplace) { 
	// Veranderd alle links zodat er een achtervoegsel bijkomt waardoor we kunnen zien wie via links onze pagina's bezoekt. 
	// Niet in gebruik
	var anchors;
	if (idplace) {
		if (document.getElementById(idplace)) {
			anchors = document.getElementById(idplace).getElementsByTagName("a");
		} else {
			anchors = document.getElementsByTagName("a");
		}
	} else {
		anchors = document.getElementsByTagName("a");
	}
	for (var i = 0; i < anchors.length; i++) {
	    if (anchors[i].hash) {
	    } else if (anchors[i].href.includes('Gebruiker:')) {
	    } else if (anchors[i].href.includes('Overleg')) {
	    } else if (anchors[i].href.includes('index.php')) {
	    } else if (anchors[i].href.includes('Bestand:')) {
	    } else if (anchors[i].href.includes('Speciaal:')) {
	    } else if (anchors[i].href.includes('?')) {
	    } else if (!anchors[i].href.includes('wikikids')) {
	    } else {
	    	anchors[i].href = anchors[i].href + '?x=' + achtervoegsel; 
	    }
	}
}

function scrollSTS() { //Niet in gebruik 
	if($(window).scrollTop() + $(window).height() > document.getElementById('bodyContent').clientHeight) {
		objectscroll = {
	        title: mw.config.get('wgPageName'),
	        fromMainPage: true
	    };
		fetch("https://wikikids.martvanweeghel.nl/pages",
            {
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                method: "POST",
                body: JSON.stringify(objectscroll)
            })
            .then(function (res) {})
            .catch(function (res) {});
		document.removeEventListener("scroll", scrollLogCounter); 
	}
}

$.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () {
	//processchangesSTS('li2');

    var tijdStatistieken = new Date();
	// -> local time op 18:00 voor komende zaterdag, en Epoch timestamp hieronder neerzetten. 
	//
    var volgendeStatistieken = 1688227200; 
    if (Math.round(tijdStatistieken.getTime() / 1000) < volgendeStatistieken) { // Zorgt ervoor dat het niet 'doorlekt' naar de volgende statistieken
		var userAgentSTS = navigator.userAgent; 
		if (!userAgentSTS.includes('bot')) { //controleert of de bezoeker een bot is, dan wordt het niet gelogd. 
			if (!mw.config.get('wgIsRedirect')) {
				if (document.referrer !== document.URL) { //controleert of de vorige pagina niet hetzelfde is als deze pagina
					if (window.performance) {//controleert of het kan controleren
						if (performance.navigation.type != performance.navigation.TYPE_RELOAD) {//controleert of de pagina niet is herladen
							processviewSTS();
						}
					} else {
						processviewSTS();
					}
				}
			}
		}
    }
});

if (mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "LogCounter" || (mw.config.get('wgTitle') === "Statistieken Wikikids" || (mw.config.get('wgTitle') === "Statistieken WikiKids" || mw.config.get('wgTitle') === "WikiStats")))) {
	document.getElementById('bodyContent').innerHTML = `Login om de statistieken te zien, als je 5 of meer bijdragen hebt gedaan, kun je de statistieken bekijken zonder wachtwoord. <br><input type="password" id="passwordSTS"><button onclick="if (document.getElementById('passwordSTS').value === 'WikiStats') {
	disableViewLoggingSTS(1800);
	alert('Herlaad de pagina');
	}">Login</button>`;
}

function disableViewLoggingSTS(timeSTS){
	mw.storage.set('disableLoggingWS', true, timeSTS);
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/JS-Statistieken.js&oldid=798763"