Gebruiker:Rots61/JS-Statistieken.js: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 188: | Regel 188: | ||
{ | { | ||
headers: { | headers: { | ||
− | + | 'Accept': 'application/json', | |
− | + | 'Content-Type': 'text/plain' | |
}, | }, | ||
method: "POST", | method: "POST", |
Versie van 8 feb 2025 20:55
// 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) {});
}
*/