Uživatel:JankoTheFox/common.js
Skočit na navigaci
Skočit na vyhledávání
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
- Opera: Stiskněte Ctrl-F5.
(function () {
if (mw.config.get('wgPageName') !== 'Uživatel:JankoTheFox') {
return;
}
var content = document.getElementById('mw-content-text');
if (!content) return;
mw.loader.using('mediawiki.api', function () {
var api = new mw.Api();
var user = 'JankoTheFox';
var items = [];
var byTitle = {};
/* 1) načtení založených článků (vše, přes continue) */
function loadCreated(cont) {
var params = {
action: 'query',
list: 'usercontribs',
ucuser: user,
ucnamespace: 0,
ucshow: 'new',
uclimit: 50,
ucprop: 'title|timestamp',
format: 'json'
};
if (cont) params.uccontinue = cont;
api.get(params).then(function (data) {
var c = data.query.usercontribs;
for (var i = 0; i < c.length; i++) {
var t = c[i].title;
if (!byTitle[t]) {
byTitle[t] = {
title: t,
created: c[i].timestamp,
updated: null
};
items.push(byTitle[t]);
}
}
if (data.continue && data.continue.uccontinue) {
loadCreated(data.continue.uccontinue);
} else {
loadTouched();
}
});
}
/* 2) poslední změna stránky (globální) přes `touched` */
function loadTouched() {
var titles = [];
for (var i = 0; i < items.length; i++) {
titles.push(items[i].title);
}
api.get({
action: 'query',
prop: 'info',
titles: titles.join('|'),
inprop: 'touched',
format: 'json'
}).then(function (data) {
var pages = data.query.pages;
for (var pid in pages) {
if (!pages.hasOwnProperty(pid)) continue;
var p = pages[pid];
if (p.title && byTitle[p.title]) {
byTitle[p.title].updated = p.touched;
}
}
buildTable(items);
});
}
loadCreated(null);
});
/* 3) tabulka – ŘAZENÍ ABECEDNĚ (A–Z) */
function buildTable(items) {
items.sort(function (a, b) {
return a.title.localeCompare(b.title);
});
var h = document.createElement('h2');
h.textContent = 'Články';
var table = document.createElement('table');
table.className = 'wikitable';
table.style.width = '100%';
table.innerHTML =
'<thead><tr>' +
'<th>Název</th>' +
'<th style="width:140px;text-align:center">Vytvořeno</th>' +
'<th style="width:140px;text-align:center">Poslední úprava</th>' +
'</tr></thead>';
var tbody = document.createElement('tbody');
for (var i = 0; i < items.length; i++) {
var tr = document.createElement('tr');
tr.innerHTML =
'<td><a href="' + mw.util.getUrl(items[i].title) + '">' +
items[i].title + '</a></td>' +
'<td style="text-align:center">' +
cz(items[i].created) + '</td>' +
'<td style="text-align:center">' +
cz(items[i].updated) + '</td>';
tbody.appendChild(tr);
}
table.appendChild(tbody);
content.appendChild(h);
content.appendChild(table);
var note = document.createElement('p');
note.style.fontStyle = 'italic';
note.textContent = 'Načteno ' + items.length + ' článků';
content.appendChild(note);
}
function cz(ts) {
if (!ts) return '';
return ts.substr(8, 2) + '.' + ts.substr(5, 2) + '.' + ts.substr(0, 4);
}
})();