משתמש:Assafn/common.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
userHideAllSubsequent=true;
//importScript('משתמש:Assafn/hidetopcontrib.js');
mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:Markhurd/hidetopcontrib.js&action=raw&ctype=text/javascript");
//////
importScript('משתמש:yonidebest/monobook.js/updateUserEditCounter.js');
if (mw.config.get('wgNamespaceNumber') == 4) {
importScript('משתמש:yonidebest/monobook.js/checkpercentage.js'); /* Allow to check who's winning in vote pages. */
}
importUserScript(13);
/*
* סקריפט לבדיקת זכות הצבעה. הסקריפט מוסיף קישור בתיבת הכלים. לחיצה על קישור זה מוסיפה קישורי "±" ליד קישורים לדפי משתמש. לחיצה על קישור זה תבצע את הבדיקה.
* נבדק ב-IE8.
* נכתב על ידי [[משתמש:Yonidebest]]
*/
function updateVoteRightResult(userName, id, result) {
var span = document.getElementById('votelink' + id);
var text = '<font color="';
if (result == 'עבר') // pass
text += 'green';
else // failed
text += 'red';
text += '">' + result + '</font>';
span.innerHTML = ' (' + text + ') ';
}
function check100EditsAnd90Days(userName, id) {
var a = sajax_init_object();
a.open('GET', '//he.wikipedia.org/w/api.php?action=query&format=xml&list=usercontribs&ucuser=' +
userName +
'&ucprop=title|timestamp&ucnamespace=0|6|8|10|12|14|100&uclimit=100&ucstart=' +
myCheckDate.getFullYear() +
(( (myCheckDate.getMonth() + 1) <= 9 ) ? '0' + (myCheckDate.getMonth() + 1) : (myCheckDate.getMonth() + 1)) +
(( myCheckDate.getDate() <= 9 ) ? '0' + myCheckDate.getDate() : myCheckDate.getDate()) +
(( myCheckDate.getHours() <= 9 ) ? '0' + myCheckDate.getHours() : myCheckDate.getHours()) +
(( myCheckDate.getMinutes() <= 9 ) ? '0' + myCheckDate.getMinutes() : myCheckDate.getMinutes()) +
'00', true);
a.onreadystatechange = function() {
if (a.readyState != 4) return;
var rx = new RegExp('timestamp="(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})', 'g');
var m;
var counter = 1;
while (counter < 101) {
m = rx.exec(a.responseText);
if (!m) { // no 100 edits
updateVoteRightResult(userName, id, 'נכשל - אין 100 עריכות'); // failed - no 100 edits
return;
}
counter++;
}
// if reached here, there are 100 edit - check 90 day rule
var compareDate = new Date();
compareDate.setFullYear(m[1], eval(m[2]) - 1, m[3]);
compareDate.setHours(m[4], m[5]);
if (((myCheckDate - compareDate)/60/60/1000/24) > 91) { // more than 91 days
updateVoteRightResult(userName, id, 'נכשל - אין 100 עריכות ב-90 ימים'); // failed - more than 90 days
return;
}
// if reached here, passed all tests.
updateVoteRightResult(userName, id, 'עבר'); // passed
};
a.send(null);
}
function checkUserSeniority(userName, id) {
var a = sajax_init_object();
a.open('GET', '//he.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=' + userName + '&ucprop=title|timestamp&format=xml&ucdir=newer&uclimit=1' , true);
a.onreadystatechange = function() {
if (a.readyState != 4) return;
if (a.responseText.indexOf('item userid=') == -1) { // there are no contributions
updateVoteRightResult(userName, id, 'נכשל - אין תרומות'); // failed - no contributions
return;
} else { // there are contributions - check first edit date
var rx = new RegExp('timestamp="(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})');
var m = rx.exec(a.responseText);
if (m && m[0]) {
var compareDate = new Date();
compareDate.setFullYear(m[1], eval(m[2]) - 1, m[3]);
compareDate.setHours(m[4], m[5]);
if (((myCheckDate - compareDate)/60/60/1000/24) < 30) { // less than 30 days
updateVoteRightResult(userName, id, 'נכשל - אין 30 ימי ותק'); // failed - less than 30 days
return;
} else { // passes seniority - on to next test
check100EditsAnd90Days(userName, id);
}
}
}
};
a.send(null);
}
var myCheckDate = new Date();
function checkVoteRights2(userName, id) {
var textboxTime = document.getElementById('checkTime');
var rxTime = new RegExp("[0-2][0-9]:[0-5][0-9]");
var mTime = rxTime.exec(textboxTime.value);
if (!mTime) // no time added, use default
textboxTime.value = '12:00';
var textboxDate = document.getElementById('checkDate');
if (textboxDate == 'ddmmyyyy') {
alert("יש להזין את תאריך הבדיקה (בדרך כלל תאריך תחילת ההצבעה) בתיבה המתאימה."); // type check date in the appropriate textbox
return;
}
var rxDate = new RegExp("[0-3][0-9][0-1][0-9]20[0-9][0-9]");
var mDate = rxDate.exec(textboxDate.value);
if (!mDate) { // date not inserted correctly
alert('התאריך שהוזן אינו תקין. יש להזין יום ב-2 ספרות, לאחר מכן חודש ב-2 ספרות ולאחר מכן שנה ב-4 ספרות.'); // incorrect date
return;
}
if (id == "-1") { // checking user from user page - add span
var link = document.getElementById('checkDateLink');
var span = document.createElement('span');
span.id = 'votelink-1';
span.innerHTML = '<font color="orange">בודק...</font>'; // checking...
link.parentNode.insertBefore(span, link);
link.parentNode.removeChild(link);
}
else { // get ready-made span
var span = document.getElementById('votelink' + id);
span.innerHTML = ' (<font color="orange">בודק...</font>) '; // checking...
}
myCheckDate.setFullYear(textboxDate.value.substr(4, 4), eval(textboxDate.value.substr(2, 2)) - 1, textboxDate.value.substr(0, 2)); // year, month, day
myCheckDate.setHours(textboxTime.value.substr(0, 2), textboxTime.value.substr(3, 2));
checkUserSeniority(userName, id);
}
function addVoteRightsLinks(event) {
function cvr_pad(i, len) {
var s = '00000' + i;
return s.substring(s.length - len);
}
var type = mw.config.get('wgNamespaceNumber') == 2 ? 1 : 0;
var textbox1 = document.createElement('input');
textbox1.size = "10";
textbox1.id = 'checkDate';
textbox1.value = 'ddmmyyyy';
var toolLink = document.getElementById('t-showvoterights');
toolLink.parentNode.insertBefore(textbox1, toolLink);
var textbox2 = document.createElement('input');
textbox2.id = 'checkTime';
textbox2.size = "10";
textbox2.value = 'hh:mm';
event.preventDefault();
toolLink.parentNode.insertBefore(textbox2, toolLink);
var lists = mw.util.$content.find('li');
for (var i = 0; i < lists.length; i++) {
var l = lists[i];
var s = l.innerHTML;
if (s.indexOf('תחילת ההצבעה') + 1) {
var match = s.match(/(\d{2}):(\d{2})/);
if (match)
textbox2.value = match[1] + ':' + match[2];
var months = ['בינואר','בפברואר','במרץ','באפריל','במאי','ביוני','ביולי','באוגוסט','בספטמבר','באוקטובר','בנובמבר','בדצמבר'];
var regex = /(\d{1,2})[, ]*(MONTHS)[, ]*(20\d{2})/;
regex = new RegExp(regex.source.replace('MONTHS', months.join('|')));
match = s.match(regex);
if (match)
textbox1.value = cvr_pad(match[1], 2) + cvr_pad($.inArray(match[2], months) + 1, 2) + match[3];
}
}
if (type == 1) { // one-user check
var link = document.createElement('a');
link.id = 'checkDateLink';
link.appendChild(document.createTextNode('בצע בדיקה'));
link.href = 'javascript:checkUserVoteRight()';
toolLink.innerHTML = "";
toolLink.appendChild(link);
}
else { // page check
toolLink.parentNode.removeChild(toolLink);
var links = mw.util.$content.find('a');
if (!links || !links[0]) return; // no links in page
for (var i = 0; i < links.length; i++) {
if (! /משתמשת?:/.test(links[i].title) || links[i].title.indexOf('שיחת משתמש') == 0) continue;
var span = document.createElement('span');
span.id = 'votelink' + i;
span.innerHTML = ' (';
var a = document.createElement('a');
a.appendChild(document.createTextNode('±'));
var userName = links[i].title.substring(6);
if (userName.indexOf(' (הדף אינו קיים)') != -1)
userName = userName.substring(0, userName.indexOf(' (הדף אינו קיים)'));
a.href = 'javascript:checkVoteRights2("' + userName + '", ' + i + ')';
a.title = '2בדיקת זכות הצבעה'; // check this user's voting rights
span.appendChild(a);
span.innerHTML += ') ';
links[i].parentNode.insertBefore(span, links[i]);
}
}
}
function checkUserVoteRight() {
var textbox = document.getElementById('checkDate');
if (textbox == 'ddmmyyyy') {
alert("יש להזין את תאריך הבדיקה (בדרך כלל תאריך תחילת ההצבעה) בתיבה המתאימה."); // type check date in the appropriate textbox
return;
}
var wgTitle = mw.config.get('wgTitle');
var username = (wgTitle.indexOf('/') == -1) ? wgTitle : wgTitle.substr(0, wgTitle.indexOf('/'));
checkVoteRights2(username, '-1');
}
var linkButton;
var wgNamespaceNumber = mw.config.get('wgNamespaceNumber');
if (wgNamespaceNumber % 2 == 1 || wgNamespaceNumber == 4)
linkButton = mw.util.addPortletLink('p-tb', '', '2בדיקת זכות הצבעה', 't-showvoterights', 'בדיקת זכות הצבעה של משתמשים בדף זה', "", 't-specialpages');
if (wgNamespaceNumber == 2)
linkButton = mw.util.addPortletLink('p-tb', '', '2בדיקת זכות הצבעה', 't-showvoterights', '2בדיקת זכות הצבעה', "", 't-specialpages');
if (linkButton)
$(linkButton).click(addVoteRightsLinks);