Gebruiker:Rots61/JS-TVB.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 |
/* jshint sub:true maxerr:100000 */
// Script dat ervoor zorgt dat alle pagina's met een categorie die bij een portaal hoort, automatisch een of meerdere TVB krijgen.
// Geschreven door Rots61
// Input met alle categorieen en portalen
/*
var WikiKidsAtlas = {};
WikiKidsAtlas['c'] = {};
WikiKidsAtlas.c.Denemarken = ['Denemarken', 'Deens persoon', 'Cultuur in Denemarken', 'Geografie van Denemarken', 'Weg in Denemarken', 'Regio van Denemarken', 'Plaats in Denemarken', 'Kopenhagen'];
WikiKidsAtlas.c.Duitsland = ['Duitsland', 'Cultuur in Duitsland', 'Duits automerk', 'Geografie van Duitsland', 'Weg in Duitsland', 'Duits persoon', 'Geschiedenis van Duitsland', 'Politiek van Duitsland', 'Duitse politici'];
// Einde input
var allCats = mw.config.get('wgCategories');
var Portaal;
for (const property in WikiKidsAtlas.c) {
for (var x = 0; x < WikiKidsAtlas.c[property].length; x++) {
if (allCats.includes(WikiKidsAtlas.c[property][x])) {
Portaal = property;
}
}
}
// Mogelijk sjabloon, moeten standaard sjablonen worden.
WikiKidsAtlas['sjabloon'] = '{{User:Rots61/Portaals|1=' + Portaal + '|kleur=green|afbeelding=bestand:vinkje.png|randkleur=darkgreen|tekstkleur=white}}';
var textToParse = WikiKidsAtlas['sjabloon'];
console.log(Portaal);
api.get( {
action: 'parse',
text: textToParse,
titles: mw.config.get('wgTitle'),
contentmodel: 'wikitext',
} ).done( function ( query ) {
console.log(query.parse.text['*']);
document.getElementById('mw-content-text').outerHTML += query.parse.text['*'];
});
*/
var api;
var catsOnPage = mw.config.get('wgCategories');
var TVBportalen = [];
function TVBstartPT() {
api = new mw.Api();
// Get the number of links
var temp;
for (var x = 0; x < catsOnPage.length; x++) {
api[x] = new mw.Api();
console.log('Begin');
TVBgetPageCountPT(x, "Categorie:" + catsOnPage[x]).then(console.log('Einde'));
}
setTimeout( function () { // The page count we got will be passed here.
if (TVBportalen.length !== 0) {
document.getElementById('TVBdemo').innerHTML = 'TVB: ';
for (var y = 0; y < TVBportalen.length; y++) {
document.getElementById('TVBdemo').innerHTML += TVBportalen[y] + ', ';
}
}
}, 500);
}
function TVBgetPageCountPT(apinr, pageName) {
return api[apinr].get({
action: "query",
prop: "linkshere",
titles: pageName,
lhlimit: "100",
}).then(function (data) {
temp = data.query.pages;
for (const property in temp) {
temp = temp[property].linkshere;
}
if (typeof temp === 'undefined') {
return 0;
} else {
var tempgetal = 0;
while (temp[tempgetal]) {
if (temp[tempgetal]["title"].startsWith("Gebruiker:Rots61/Portalen")) {
TVBportalen.push(temp[tempgetal]["title"].split("/Portalen/").pop());
}
tempgetal += 1;
}
if (TVBportalen.length) {
return TVBportalen;
} else {
return 0;
}
}
});
}
document.getElementById('mw-content-text').outerHTML += '<hr style="clear:both;"><div id="TVBdemo"><button onclick="TVBstartPT();">TVB</button></div>';