Napomena: nakon snimanja, trebate očistiti memoriju svog internetskog preglednika kako biste odmah vidjeli promjene: Firefox, Google Chrome i drugi preglednici temeljeni na Chromiumu, Safari i Internet Explorer: pritisnite i držite tipku ⇧ Shift i kliknite Osvježi u alatnoj traci Vašeg preglednika.
<!--'''MediaWiki:Gadget-jubilarci.js'''-->//jubilarac
mw.loader.using('oojs-ui-core').done(function() {
if (location.href.includes('Ivi104/Skripte/Jubilarci') || location.href.includes('Wikipedija:Jubilarni_%C4%8Dlanci/Pomo%C4%87nik')) {
var textboxjubilarac = document.createElement('input');
textboxjubilarac.type = 'text';
textboxjubilarac.id = 'ivi-jubilarac-input';
textboxjubilarac.style.padding = '6px 12px';
textboxjubilarac.style.width = '200px';
document.getElementById('ivi-jubilarac-text').after(textboxjubilarac);
var jubilaracGumbProvjeri = document.createElement('span');
jubilaracGumbProvjeri.type = 'button';
jubilaracGumbProvjeri.classList.add('mw-ui-button', 'mw-ui-progressive');
jubilaracGumbProvjeri.innerText = 'Provjeri';
jubilaracGumbProvjeri.addEventListener("click", jubilaracValidacija);
document.getElementById('ivi-jubilarac-gumb').after(jubilaracGumbProvjeri);
//Linkback: [[User:Ivi104/Skripte/jubilarci.js]]
//Linkback: [[MediaWiki:Gadget-jubilarci.js]]
}
function jubilaracValidacija() {
var jubilaracDatum = document.getElementById('ivi-jubilarac-input').value;
checkJubilaracDatumRegex = new RegExp(/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/);
if (checkJubilaracDatumRegex.test(jubilaracDatum)) {
jubilaracMain(jubilaracDatum);
} else {
var kriviDatum = document.createElement('span');
kriviDatum.style.color = 'red';
kriviDatum.innerHTML = 'Datum <b>' + jubilaracDatum + '</b> nije ispravan!';
document.getElementById('ivi-jubilarac-status').append(kriviDatum);
}
}
function jubilaracMain(jubilaracDatum) {
//reset
document.getElementById("ivi-jubilarac-veliki").innerHTML = "";
document.getElementById("ivi-jubilarac-mali").innerHTML = "";
document.getElementById("ivi-jubilarac-sumnjivi-prvi").innerHTML = "";
document.getElementById("ivi-jubilarac-sumnjivi-drugi").innerHTML = "";
document.getElementById("ivi-jubilarac-wikitekst").innerHTML = "";
//pretvorba u lokalni datum
var dateS = parseDate(jubilaracDatum + ' 00:00');
var dateE = parseDate(jubilaracDatum + ' 23:59');
var dateStart = formatDate(localDateToUTC(dateS)).replace(" ", "T").replace(/$/, '.000Z');
var dateEnd = formatDate(localDateToUTC(dateE)).replace(" ", "T").replace(/$/, '.000Z');
console.log(dateStart, ' ', dateEnd);
function parseDate(dateString) {
var tokens = dateString.split(/[-: ]/g).slice(0, 6).map(function(token) { return parseInt(token, 10); });
tokens[1] -= 1; // Subtract 1 from month.
return newInstance(Date, tokens);
}
function formatDate(date) {
function pad(val, pattern) { return (pattern + val).substr(-pattern.length); }
return date.getFullYear() + '-' + pad(date.getMonth() + 1, '00') + '-' + pad(date.getDate(), '00') + ' ' +
pad(date.getHours(), '00') + ':' + pad(date.getMinutes(), '00') + ':' + pad(date.getSeconds(), '00');
}
function localDateToUTC(localDate) {
return new Date(localDate.getUTCFullYear(), localDate.getUTCMonth(), localDate.getUTCDate(),
localDate.getUTCHours(), localDate.getUTCMinutes(), localDate.getUTCSeconds());
}
function newInstance(clazz, arguments, scope) {
return new(Function.prototype.bind.apply(clazz, [scope].concat(arguments)))();
}
document.getElementById('ivi-jubilarac-status').innerText = 'provjeravam članke...';
var jubilaracVelikiArray = [];
var jubilaracMaliArray = [];
var jubilaracSumnjiviArrayPrvi = [];
var jubilaracSumnjiviArrayDrugi = [];
//1. novi članci - GIP i Dodatak na uneseni datum
var dohvatiNoveClankeParams = {
"action": "query",
"format": "json",
"prop": "info",
"generator": "recentchanges",
"utf8": 1,
"grcstart": dateStart,
"grcend": dateEnd,
"grcdir": "newer",
"grcnamespace": "0|102",
"grcprop": "title|timestamp|ids|sizes",
"grclimit": "max",
"grctype": "new"
},
api = new mw.Api();
api.get(dohvatiNoveClankeParams).done(function(data) {
var jubilarniClanciID = Object.keys(data.query.pages);
for (var i = 0; i < jubilarniClanciID.length; i++) {
if (parseInt(data.query.pages[jubilarniClanciID[i]].length) >= 3000) {
jubilaracVelikiArray.push(data.query.pages[jubilarniClanciID[i]].title);
} else if (parseInt(data.query.pages[jubilarniClanciID[i]].length) < 3000) {
jubilaracMaliArray.push(data.query.pages[jubilarniClanciID[i]].title);
} else {
jubilaracSumnjiviArrayPrvi.push(data.query.pages[jubilarniClanciID[i]].title);
}
}
//wikitext
var jubilaracTextarea = document.createElement('textarea');
jubilaracTextarea.id = "ivi-jubilarac-textarea";
jubilaracTextarea.setAttribute("rows", "20");
jubilaracTextarea.setAttribute("cols", "60");
//velikiArray
jubilaracTextarea.append("== Novi članci započeti !DATUM! (abecednim redom) ==\n");
jubilaracVelikiArray.sort();
jubilaracVelikiArray.forEach(function(entry) {
var elementVeliki = document.createElement('li');
elementVeliki.innerText = entry;
document.getElementById("ivi-jubilarac-veliki").append(elementVeliki);
jubilaracTextarea.append("=== [[" + entry + "]] ===\n");
});
//maliArray
jubilaracTextarea.append("\n== Novi članci započeti !DATUM! manji od 3000 bajtova i nesređeni članci ==\n");
jubilaracMaliArray.sort();
jubilaracMaliArray.forEach(function(entry) {
var elementMali = document.createElement('li');
elementMali.innerText = entry;
document.getElementById("ivi-jubilarac-mali").append(elementMali);
jubilaracTextarea.append("=== [[" + entry + "]] ===\n");
});
//sumnjivi prvi - nije prva izmjena
jubilaracSumnjiviArrayPrvi.sort();
jubilaracSumnjiviArrayPrvi.forEach(function(entry) {
var elementSumnjiviPrvi = document.createElement('li');
elementSumnjiviPrvi.innerText = entry;
document.getElementById("ivi-jubilarac-sumnjivi-prvi").append(elementSumnjiviPrvi);
});
//sumnjivi drugi - ostalo
jubilaracSumnjiviArrayDrugi.sort();
jubilaracSumnjiviArrayDrugi.forEach(function(entry) {
var elementSumnjiviDrugi = document.createElement('li');
elementSumnjiviDrugi.innerText = entry;
document.getElementById("ivi-jubilarac-sumnjivi-drugi").append(elementSumnjiviDrugi);
});
document.getElementById("ivi-jubilarac-wikitekst").append(jubilaracTextarea);
});
document.getElementById('ivi-jubilarac-status').innerText = 'Provjera završena!';
console.log("Pomočnik za jubilarce-v2 done!");
}
});