Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.
- Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
- Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
- Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
( function () {
'use strict';
let markBlockedCSS;
function parseTimestamp(ts) {
var m = ts.replace(/\D/g, '').match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/);
return new Date(Date.UTC(m[1], m[2] - 1, m[3], m[4], m[5], m[6]));
}
function formatDuration(ms) {
var mm = Math.floor(ms / 60000);
if (!mm) return Math.floor(ms / 1000) + 's';
var hh = Math.floor(mm / 60);
mm = mm % 60;
var dd = Math.floor(hh / 24);
hh = hh % 24;
if (dd) {
return dd + (dd < 10 ? '.' + pad(hh) : '') + ' gün';
}
return hh + ':' + pad(mm);
}
function pad(n) {
return (n <= 9 ? '0' + n : n);
}
function markBlocked(container) {
var contentLinks = container ?
$(container).find('a') :
(mw.util.$content || $('.mw-body')).find('a').add('#ca-nstab-user a');
if (!markBlockedCSS) {
markBlockedCSS = mw.util.addCSS([
'.mediawiki .user-blocked-partial {', (window.mbPartialStyle || 'opacity: 0.5'), '}',
'.mediawiki .user-blocked-temp {', (window.mbTempStyle || 'opacity: 0.7; text-decoration: line-through'), '}',
'.mediawiki .user-blocked-indef {', (window.mbIndefStyle || 'opacity: 0.4; font-style: italic; text-decoration: line-through'), '}',
'.mediawiki .user-blocked-tipbox {', (window.mbTipBoxStyle || 'font-size:85%; background-color:var(--background-color-neutral, #eaecf0); border:1px solid var(--border-color-base, #a2a9b1); padding:0 0.3em;'), '}'
].join(''));
}
var tooltipTemplate = window.mbTooltip || ';$1 bloklanma ($2; $3 tərəfindən): $4 ($5 əvvəl)';
var namespaceIds = mw.config.get('wgNamespaceIds');
var userNS = [];
for (var ns in namespaceIds) {
if (namespaceIds[ns] === 2 || namespaceIds[ns] === 3) {
userNS.push(ns.replace(/_/g, ' ') + ':');
}
}
var userTitleRX = new RegExp('^(' +
userNS.join('|') +
'|Xüsusi:Töhfələr\\/|Xüsusi:Fəaliyyətlər\\/|Special:Contributions\\/)([^\\/#]+)$', 'i');
var articleRX = new RegExp('^(?:' + mw.config.get('wgServer') + ')?' +
mw.config.get('wgArticlePath').replace('$1', '') + '([^#]+)');
var scriptRX = new RegExp('^(?:' + mw.config.get('wgServer') + ')?' +
mw.config.get('wgScript') + '\\?title=([^#&]+)');
var userLinks = {}, url, ma, pgTitle;
contentLinks.each(function (i, lnk) {
url = $(lnk).attr('href');
if (!url || url.charAt(0) !== '/') return;
if ((ma = articleRX.exec(url)) || (ma = scriptRX.exec(url))) {
pgTitle = decodeURIComponent(ma[1]).replace(/_/g, ' ');
} else {
return;
}
var userMatch = userTitleRX.exec(pgTitle);
if (!userMatch) return;
var user = userMatch[2];
if (user === 'Silinməyə namizəd') return;
$(lnk).addClass('userlink');
if (!userLinks[user]) {
userLinks[user] = [];
}
userLinks[user].push(lnk);
});
var users = [];
for (var u in userLinks) {
users.push(u);
}
if (!users.length) return;
var waitingCSS = mw.util.addCSS('a.userlink { opacity:' + (window.mbLoadingOpacity || 0.85) + ' }');
var apiRequests = 0;
function handleResponse(resp, status, xhr) {
if (!resp || !resp.query || !resp.query.blocks) return;
var serverTime = new Date(xhr.getResponseHeader('Date'));
var blocks = resp.query.blocks;
for (var i = 0; i < blocks.length; i++) {
var blk = blocks[i];
var clss = 'user-blocked-temp';
var blTime = '';
var blPartial = '';
if (/^in/.test(blk.expiry)) {
clss = 'user-blocked-indef';
blTime = blk.expiry;
} else {
clss = 'user-blocked-temp';
blTime = formatDuration(parseTimestamp(blk.expiry) - parseTimestamp(blk.timestamp));
}
if ('partial' in blk) {
clss = 'user-blocked-partial';
blPartial = ' qismən';
}
var since = formatDuration(serverTime - parseTimestamp(blk.timestamp));
var tip = tooltipTemplate
.replace('$1', blPartial)
.replace('$2', blTime)
.replace('$3', blk.by)
.replace('$4', blk.reason)
.replace('$5', since);
var links = userLinks[blk.user];
for (var k = 0; k < links.length; k++) {
var $link = $(links[k]).addClass(clss);
if (window.mbTipBox) {
$('<span class="user-blocked-tipbox">#</span>')
.attr('title', tip)
.insertBefore($link);
} else {
var oldTitle = $link.attr('title') || '';
$link.attr('title', oldTitle + ' ' + tip);
}
}
}
if (--apiRequests === 0) {
waitingCSS.disabled = true;
$('#ca-showblocks').parent().remove();
}
}
while (users.length > 0) {
apiRequests++;
$.ajax({
url: mw.util.wikiScript('api'),
method: 'POST',
dataType: 'json',
data: {
format: 'json',
action: 'query',
list: 'blocks',
bklimit: 100,
bkusers: users.splice(0, 50).join('|'),
bkprop: 'user|by|timestamp|expiry|reason|flags'
},
success: handleResponse
});
}
}
switch (mw.config.get('wgAction')) {
case 'edit':
case 'submit':
case 'delete':
break;
case 'view':
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 10]) !== -1) {
break;
}
default:
mw.loader.using('mediawiki.util').done(function () {
if (window.mbNoAutoStart) {
mw.util.addPortletLink('p-cactions', 'javascript:markBlocked()', 'XX', 'ca-showblocks');
} else {
mw.hook('wikipage.content').add(function () {
markBlocked();
});
}
});
}
} )();