Gebruiker:Rots61/JS-Statistieken.js
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 |
// 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() {
/*
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'
}
if (mw.config.get('wgIsMainPage')) {
processchangesSTS('hpss', 'hp-snel-aan-de-slag');
}
*/
var object;
var loggedPages = [1, 61839, 97842, 2429, 5756, 138368, 149810, 149866, 40669, 2430, 25376, 51736, 93624, 1295, 103753, 4112, 1445, 151008, 157714, 160016];
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")) {
//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)
/*
$('body').on("click mousedown mouseup focus blur change mousemove mouseover mousewheel keypress touchstart touchmove touchend touchcancel resize scroll select",function(e){
resetTimeout();
});
setInterval(function() {tijdStatistiekenF()}, 1000);
document.addEventListener("scroll", scrollSTS);
scrollSTS();
if (document.getElementById('p-lang')) {
document.getElementById('p-lang').addEventListener("mouseenter", languageLog);
}
*/
object = {
title: mw.config.get('wgPageName'),
fromMainPage: false
};
/*
var offsetStats = new Date().getTimezoneOffset();
if (offsetStats === 180 || offsetStats === 240) {
object.fromMainPage = true;
}
var visitedSTS = JSON.parse(mw.storage.get('visitedWikiStats092023d'));
if (visitedSTS) {
object.fromMainPage = false;
} else {
mw.storage.set('visitedWikiStats092023d', 'true', 604800); //7 dagen
object.fromMainPage = true;
}
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 (mw.util.getParamValue('x') === "hp") { //hpss = hoofdpaginasnelaandeslag
var objecthp = {
title: 'X:Y:' + mw.config.get('wgPageName'),
fromMainPage: false
};
//verzend stat
}
// Nederlanders en Belgen
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.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(object)
})
.then(function (res) {})
.catch(function (res) {});
/* if (mw.config.get('wgNamespaceNumber') === 14) {
var object2 = {
title: "X:" + mw.config.get('wgPageName'),
fromMainPage: false
};
if (mw.util.getParamValue('x') === "ca6") {
object2.fromMainPage = true;
}
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(object2)
})
.then(function (res) {})
.catch(function (res) {});
}
/*
const observerstats = new
PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
if (entry.domInteractive > 5000) {
var objectwalltime = {
title: 'X:domInteractive:' + Math.round(entry.domInteractive/1000) + ':' + Math.round(entry.loadEventEnd/1000) + ':' + mw.config.get('wgPageName'),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objectwalltime)
})
.then(function (res) {})
.catch(function (res) {});
}
});
});
observerstats.observe({ type: "navigation", buffered: true });
*/
}
if (document.referrer === 'https://wikikids.nl/Hoofdpagina' || document.referrer === 'https://wikikids.nl/' || document.referrer === 'https://www.wikikids.nl/' || document.referrer === 'https://www.wikikids.nl/Hoofdpagina') {
var objectrefhp = {
title: 'X:' + document.URL.split('wikikids.nl/')[1].replace(/[ +]/g,"_").replace(/[^a-zA-Z0-9?_!=&:\.\/\-]/g, "q").slice(0,99),
fromMainPage: false
};
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")) {
objectrefhp.title = 'X:' + mw.config.get('wgPageName');
}
if (mw.config.get('wgPageName') === 'Speciaal:Zoeken') {
objectrefhp.title = "Zoeken:" + mw.util.getParamValue('search').replace(/ /g,"_").replace(/[^a-zA-Z0-9?_!]/g, "").slice(0,55);
}
fetch("https://wikikids.wikirots61.workers.dev/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objectrefhp)
})
.then(function (res) {})
.catch(function (res) {});
}
/*
if (mw.config.get('wgPageName') === 'Speciaal:Zoeken') {
var objectzoeken = {
title: 'Zoeken:' + mw.util.getParamValue('search').replace(/ /g,"_").replace(/[^a-zA-Z0-9?_!]/g, "").slice(0,55),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objectzoeken)
})
.then(function (res) {})
.catch(function (res) {});
}
*/
}
function tijdStatistiekenF () {
if (document.visibilityState !== 'hidden' && timeoutTimerTS !== 0) {
secondenTS += 1;
timeoutTimerTS -= 1;
if (secondenTS <= 500) {
if ((secondenTS % 20) === 0) {
uploadTS();
}
}
} else if (document.visibilityState === 'hidden') {
resetTimeout();
}
}
function uploadTS () {
var tijdStatistieken = new Date();
/*
if ((secondenTS % 500) === 0 & secondenTS > 50) {
var objecttijdextra = {
title: 'X:X' + secondenTS + ':' + mw.config.get('wgPageName'),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objecttijdextra)
})
.then(function (res) {})
.catch(function (res) {});
}
*/
var objecttijd = {
title: 'X:Z:' + secondenTS,
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objecttijd)
})
.then(function (res) {})
.catch(function (res) {});
}
function resetTimeout() {
timeoutTimerTS = 30;
}
function languageLog() {
document.getElementById('p-lang').removeEventListener("mouseenter", languageLog);
var objectlanguage = {
title: 'X:Y:' + mw.config.get('wgPageName'),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objectlanguage)
})
.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.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(objectscroll)
})
.then(function (res) {})
.catch(function (res) {});
document.removeEventListener("scroll", scrollLogCounter);
}
}
var secondenTS = 0;
var timeoutTimerTS = 40;
var tijdStatistieken = new Date();
// -> local time op 18:00 voor komende zaterdag, en Epoch timestamp hieronder neerzetten.
//var volgendeStatistieken = 1695916800;
$.when($.ready, mw.loader.using(['mediawiki.util'])).done(function () {
//processchangesSTS('ca6', 'catlinks');
//processchangesSTS('li2');
if (true) { //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);
}
/*
if (mw.config.get('wgNamespaceNumber') === 0) {
var stopbeoordeling = false;
if (Math.random() > 0.95) {
beoordelingensterren = '<span id="beoordelingen" class="mw-body" style="margin-top: 1em;border: solid 1px #23819c;background:white;display:inline-block;"><span id="beoordelingtekst">Beoordeel dit artikel: </span><br><img id="ster1" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Farm-Fresh_star.png" onmouseover="beoordelinghover(1);" onclick="beoordelingklik(1);"><img id="ster2" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Farm-Fresh_star.png" onmouseover="beoordelinghover(2);" onclick="beoordelingklik(2);"><img id="ster3" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Farm-Fresh_star.png" onmouseover="beoordelinghover(3);" onclick="beoordelingklik(3);"><img id="ster4" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Farm-Fresh_star.png" onmouseover="beoordelinghover(4);" onclick="beoordelingklik(4);"><img id="ster5" src="https://upload.wikimedia.org/wikipedia/commons/7/73/Farm-Fresh_star.png" onmouseover="beoordelinghover(5);" onclick="beoordelingklik(5);"><span id="beoordeling-deeltwee" style="display:none;"><br>Heb je nog een verbeterpunt voor dit artikel? <textarea id="beoordelingtekstvlak" maxlength="125" placeholder="Alleen nuttige feedback wordt gelezen."></textarea><button onclick="verstuurbeoordeling();" style="background:#23819c; border:0px; height:2.49em; padding:8px;">Verzenden</button></span></span>';
document.getElementById('footer').outerHTML = beoordelingensterren + document.getElementById('footer').outerHTML;
beoordelinghover(0);
}
}
function beoordelinghover(nummer) {
if (stopbeoordeling) return;
for (var x = 1; x < 6; x++) {
if (nummer < x) {
document.getElementById('ster' + x).classList.add('beoordelinggrijs');
} else {
document.getElementById('ster' + x).classList.remove('beoordelinggrijs');
}
}
}
function beoordelingklik(nummer) {
if (stopbeoordeling) return;
beoordelinghover(nummer);
stopbeoordeling = true;
document.getElementById('beoordelingtekst').innerText = 'Dank je wel!';
document.getElementById('beoordeling-deeltwee').style.display = '';
object = {
title: 'X:' + nummer + ':' + mw.config.get('wgPageName'),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(object)
})
.then(function (res) {})
.catch(function (res) {});
}
function verstuurbeoordeling() {
document.getElementById('beoordeling-deeltwee').style.display = 'none';
var geschrevenfeedback = '';
try {
if (document.getElementById('beoordelingtekstvlak')) {
geschrevenfeedback = document.getElementById('beoordelingtekstvlak').value;
}
if (!geschrevenfeedback) {
return;
}
} catch (error) {
return;
}
object = {
title: 'X:' + mw.config.get('wgPageName') + ':' + geschrevenfeedback.replace(/ /g,"_").replace(/[^a-zA-Z0-9?_!]/g, "").slice(0,127),
fromMainPage: false
};
fetch("https://wikikids.dekenos.nl/pages/add",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'text/plain'
},
method: "POST",
body: JSON.stringify(object)
})
.then(function (res) {})
.catch(function (res) {});
}
*/