משתמש:Yonidebest/scripts/anonRecentEditors.js

מתוך ויקיפדיה, האנציקלופדיה החופשית

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
/* סקריפט היוצר קישור בשם "הצג עריכות אחרונות של אנונימיים" בדף שינויים אחרונים. לאחר לחיצה על הקישור, המשתמש מועבר לדף שינויים אחרונים שבו 100 עריכות בלתי מבוקרות של משתמשים אנונימיים. לאחר מכן, הסקריפט עובר על כל עריכה ועריכה ומסיר עריכות מהרשימה אם מישהו אחר ביצע עריכה בערך אחרי עריכתו של האנונימי.
 * written by [[user:yonidebest]]
 *
 */

var anonREcounter;
var anonREtotal;
var getParamValue = mw.util.getParamValue;
var wgCanonicalSpecialPageName = mw.config.get( 'wgCanonicalSpecialPageName' );

function checkAnonRecentEdit(li) {
	var url = 'http://he.wikipedia.org/w/api.php?action=query&prop=revisions&rvlimit=1&rvprop=user&format=json&titles=';
	url += encodeURIComponent(li.getElementsByTagName('a')[0].title);
	var a = sajax_init_object();
	a.open('GET', url, true);
	a.onreadystatechange = function() {
		if (a.readyState != 4) return;
		
		var username = li.getElementsByTagName('a')[3].innerHTML;
		var rx = RegExp('curid=([0-9]+)&');
		var m = rx.exec(li.getElementsByTagName('a')[0].href);
		var response = eval('(' + a.responseText + ')');
		//alert(li.getElementsByTagName('a')[0].title + "\n" + username + "\n" + response['query']['pages'][m[1]]['revisions'][0]['user']);
		if (username != response['query']['pages'][m[1]]['revisions'][0]['user']) // is last editor
			li.style.display = "none";
			
		anonREcounter--;
		if (anonREcounter > 0)
			document.getElementById("anonREcounter").innerHTML = 'נא להמתין... ' + Math.round((anonREtotal - anonREcounter)/anonREtotal) + '%';
		else
			document.getElementById("anonREcounter").innerHTML = 'בוצע. להלן עריכות בלתי מבוקרות של משתמשים אנונימיים. אף אחד לא ביצע עריכה נוספת בערך לאחר עריכתו של האנונימי.';
			
	}
	a.send(null);
}

function anonRecentEditors() {
	if (getParamValue("anonre") == 1) {
		var special = document.querySelectorAll("ul.special")[0];
		var div = document.createElement('div');
		div.id = "anonREcounter";
		div.innerHTML = "נא להמתין...";
		if(!special) return;
		special.parentNode.insertBefore(div, special);
		var bc = document.getElementById("bodyContent");
		if(!bc) return;

		var lis = bc.getElementsByTagName("li");
		anonREcounter = lis.length;
		anonREtotal = anonREcounter;
		for (var i = 0; i < lis.length; i++)
			checkAnonRecentEdit(lis[i])
	}
	else if (wgCanonicalSpecialPageName == "Recentchanges") {
		var rcoptions = document.querySelectorAll("fieldset.rcoptions")[0];
		var br = rcoptions && rcoptions.getElementsByTagName('br')[1];
		var link = document.createElement('A');
		link.href = '/w/index.php?title=%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%A9%D7%99%D7%A0%D7%95%D7%99%D7%99%D7%9D_%D7%90%D7%97%D7%A8%D7%95%D7%A0%D7%99%D7%9D&limit=100&hideliu=1&hidepatrolled=1&anonre=1'; //hideliu=1 הסרת משתמשים רשומים
		link.title = 'הצג עריכות אחרונות של אנונימיים';
		link.appendChild(document.createTextNode('הצג עריכות אחרונות של אנונימיים'));
		if (br) {
			br.parentNode.insertBefore(document.createTextNode(" | "), br);
			br.parentNode.insertBefore(link, br);
		}
	}
}

$(anonRecentEditors);