משתמש:Yonidebest/scripts/checkblockedUsers.js
< משתמש:Yonidebest | scripts
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*
* מציג את רשימת החסומים בדף, כולל רשימה מרוכזת בהתחלה
* נבדק ב-IE8.
* נכתב על ידי [[משתמש:Yonidebest]]
*
*/
function checkblockedUsers() {
var links = document.getElementById('bodyContent').getElementsByTagName('a');
if (!links || !links[0]) return; // no links in page
var userList = "";
// get user list
for (var i = 0; i < links.length; i++) {
if (links[i].title.indexOf('משתמש:') == -1 || links[i].title.indexOf('שיחת משתמש') == 0) continue;
var userName = links[i].title.substring(6);
if (userName.indexOf(' (הדף אינו קיים)') != -1)
userName = userName.substring(0, userName.indexOf(' (הדף אינו קיים)'));
if (userName.indexOf('/') == -1)
userList += userName + "|";
}
if (userList == "")
return; // no user links on page
else
userList = userList.substring(0, userList.length-1);
// get list
var a = sajax_init_object();
a.open('GET', 'http://he.wikipedia.org/w/api.php?action=query&list=blocks&bklimit=500&bkusers=' + encodeURIComponent(userList) + '&bkprop=user|by|expiry|reason&format=xml' , true);
a.onreadystatechange = function() {
if (a.readyState != 4) return;
var links = document.getElementById('bodyContent').getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (links[i].title.indexOf('משתמש:') == -1 || links[i].title.indexOf('שיחת משתמש') == 0) continue;
var userName = links[i].title.substring(6);
if (userName.indexOf('/') != -1)
continue;
if (userName.indexOf(' (הדף אינו קיים)') != -1)
userName = userName.substring(0, userName.indexOf(' (הדף אינו קיים)'));
var rx = new RegExp('block user="' + userName + '" by="([^=]*)" expiry="([^=]*)" reason="([^/]*)"');
var m = rx.exec(a.responseText);
if (m && m[0])
{
// חסום
links[i].style.background = "yellow";
links[i].style.border = "3px solid red";
links[i].innerHTML += ' נחסם על ידי ' + m[1] + ' עד ' + m[2] + ' מהסיבה "' + m[3] + '"';
}
else
{
// לא חסום
links[i].style.border = "1px solid green";
}
}
var blockedList = "רשימת החסומים:<br />";
var rx2 = new RegExp('block user="([^=]*)" by="([^=]*)" expiry="([^=]*)" reason="([^/]*)"', 'g');
var m2 = rx2.exec(a.responseText);
while (m2)
{
blockedList += m2[1] + ' נחסם על ידי ' + m2[2] + ' עד ' + m2[3] + ' מהסיבה "' + m2[4] + '"<br />';
m2 = rx2.exec(a.responseText);
}
if (blockedList != "רשימת החסומים:<br />")
document.getElementById('contentSub').innerHTML = blockedList;
else
document.getElementById('contentSub').innerHTML = "אין אף משתמש חסום בדף זה.";
}
a.send(null);
}
function initCheckblockedUsers() {
var wgNamespaceNumber = mw.config.get('wgNamespaceNumber');
if (wgNamespaceNumber != -1 && wgNamespaceNumber != 0)
mw.util.addPortletLink('p-tb', "javascript:checkblockedUsers()", 'בדוק מי חסום', 't-blockedusers', 'בדוק אילו משתמשים בדף זה חסומים', "", 't-specialpages');
}
$(initCheckblockedUsers);