https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=User%3AJj137%2Fmonobook.js
Benutzer:Jj137/monobook.js - Versionsgeschichte
2025-05-09T01:19:53Z
Versionsgeschichte dieser Seite in Wikipedia
MediaWiki 1.44.0-wmf.28
https://de.wikipedia.org/w/index.php?title=Benutzer:Jj137/monobook.js&diff=39968478&oldid=prev
Jj137: über remove
2007-12-11T23:41:23Z
<p>über remove</p>
<a href="//de.wikipedia.org/w/index.php?title=Benutzer:Jj137/monobook.js&diff=39968478&oldid=39968458">Änderungen zeigen</a>
Jj137
https://de.wikipedia.org/w/index.php?title=Benutzer:Jj137/monobook.js&diff=39968458&oldid=prev
Jj137: über
2007-12-11T23:40:41Z
<p>über</p>
<p><b>Neue Seite</b></p><div>//Please leave this link: [[User:ais523/editcount.js]]<br />
//<pre><nowiki><br />
<br />
//JavaScript edit counter. By [[User:ais523]].<br />
//To install this, you can copy it into your monobook.js or use a script-inclusion<br />
//method (see WikiProject User Scripts). It produces a 'count' tab on contribs pages<br />
//that can be used to count a user's edits. It won't count more than 5000 edits in any<br />
//namespace, to prevent excessive server load.<br />
<br />
//Add LI Link and Add Tab, renamed to prevent conflicts. To make installation easier<br />
//for people who haven't used User Scripts before.<br />
<br />
function ecAddLILink(tabs, url, name, id, title, key){<br />
var na = document.createElement('a');<br />
na.href = url;<br />
na.appendChild(document.createTextNode(name));<br />
var li = document.createElement('li');<br />
if(id) li.id = id;<br />
li.appendChild(na);<br />
tabs.appendChild(li);<br />
if(id)<br />
{<br />
if(key && title)<br />
{<br />
ta[id] = [key, title];<br />
}<br />
else if(key)<br />
{<br />
ta[id] = [key, ''];<br />
}<br />
else if(title)<br />
{<br />
ta[id] = ['', title];<br />
}<br />
}<br />
// re-render the title and accesskeys from existing code in wikibits.js<br />
akeytt();<br />
return li;<br />
}<br />
<br />
function ecAddTab(url, name, id, title, key){<br />
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];<br />
return ecAddLILink(tabs, url, name, id, title, key)<br />
}<br />
<br />
var aecwpajax;<br />
// From [[WP:US]] mainpage (wpajax renamed to aecwpajax), some comments removed<br />
aecwpajax={<br />
download:function(bundle) {<br />
var x = window.XMLHttpRequest ? new XMLHttpRequest()<br />
: window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP")<br />
: false;<br />
<br />
if (x) {<br />
x.onreadystatechange=function() {<br />
x.readyState==4 && aecwpajax.downloadComplete(x,bundle);<br />
};<br />
x.open("GET",bundle.url,true);<br />
x.send(null); <br />
}<br />
return x;<br />
},<br />
<br />
downloadComplete:function(x,bundle) {<br />
x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )<br />
|| ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText));<br />
}<br />
};<br />
<br />
function ecQuickCountComplete(xmlreq,data)<br />
{<br />
alert("Edit count: "+xmlreq.responseText.split("<count>")[1].split("</count>")[0]);<br />
}<br />
<br />
addOnloadHook(function() {<br />
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)<br />
ecAddTab("javascript:ais523quickcount()","quick count","ca-ais523qc","Quick Count","");<br />
});<br />
<br />
function ais523quickcount()<br />
{<br />
var trg;<br />
trg=ecGetParamValue('target');<br />
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);<br />
aecwpajax.download({url:'http://en.wikipedia.org/w/query.php?what=contribcounter&'+<br />
'titles=User:'+encodeURIComponent(trg)+'&format=xml', onSuccess:ecQuickCountComplete});<br />
}<br />
<br />
addOnloadHook(function() {<br />
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)<br />
ecAddTab("javascript:ais523contrib()","count","ca-ais523count","Count","");<br />
});<br />
<br />
//This function was orignally taken from [[User:Lupin/autoedit.js]]. I've renamed it<br />
//because I know many users use popups, and I don't want to cause a naming conflict.<br />
//Edited to decode + to space as well, and to use a decoding function that handles<br />
//a broader range of characters.<br />
function ecGetParamValue(paramName) {<br />
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');<br />
var h=document.location;<br />
var m;<br />
if (m=cmdRe.exec(h)) {<br />
try { <br />
while(m[1].indexOf('+')!=-1)<br />
{<br />
m[1]=m[1].substr(0,m[1].indexOf('+'))+" "+m[1].substr(m[1].indexOf('+')+1);<br />
}<br />
return decodeURIComponent(m[1]);<br />
} catch (someError) {}<br />
}<br />
return null;<br />
};<br />
<br />
<br />
function ais523contrib()<br />
{<br />
var u;<br />
if(location.href.indexOf("?")!=-1) u=ecGetParamValue("target");<br />
else u=location.href.substr(location.href.lastIndexOf("/")+1);<br />
location.href="http://en.wikipedia.org/w/index.php?title=Special:Contributions&limit=5000&target="+u+"&ais523count=1&namespace=0";<br />
}<br />
<br />
//Analyses an edit summary and returns a two-letter code indicating what the edit seems<br />
//to be doing. The edit summary is passed with parens round it, written in HTML. This<br />
//doesn't yet work for section edits, which will have to be parsed out in the main<br />
//function.<br />
function ecAnalyseSummary(edsum)<br />
{<br />
edsum=edsum.toLowerCase();<br />
if(edsum.indexOf("→")!=-1) return 'se'; //section edit, can't say any more than that<br />
if(edsum==")") return 'se'; //section edit, no summary<br />
if(edsum.indexOf(" ")==0) edsum="("+edsum.substr(1); //came from section<br />
<br />
if(edsum.indexOf("(rvv")==0) return 'rv'; //vandalism revert<br />
if(edsum.indexOf("(rv vand")==0) return 'rv'; //vandalism revert<br />
if(edsum.indexOf("(revv")==0) return 'rv'; //vandalism revert<br />
if(edsum.indexOf("(rev vand")==0) return 'rv'; //vandalism revert<br />
if(edsum.indexOf("(revert vand")==0) return 'rv'; //vandalism revert<br />
<br />
if(edsum.indexOf("(rv ")==0&&edsum.indexOf("vandal")!=-1) return 'rv';<br />
if(edsum.indexOf("(rev ")==0&&edsum.indexOf("vandal")!=-1) return 'rv';<br />
<br />
if(edsum.indexOf("(rv ")==0) return 'ro'; //other manual revert<br />
if(edsum.indexOf("(rev ")==0) return 'ro'; //other manual revert<br />
<br />
if(edsum.indexOf("(reverted ")==0) return 'ra'; //automatic revert<br />
if(edsum.indexOf("(revert to ")==0) return 'ra'; //automatic revert, probably<br />
if(edsum.indexOf("(revert edit(s) ")==0) return 'ra'; //per [[User:Qxz]]<br />
<br />
if(edsum.indexOf("(revert")==0) return 'ro'; //guess manual for time being;<br />
//I need more examples of this sort of rv<br />
<br />
if(edsum.indexOf("(rm ")==0) return 'rm'; //removal<br />
if(edsum.indexOf("(rem ")==0) return 'rm'; //removal<br />
if(edsum.indexOf("(remove ")==0) return 'rm'; //removal<br />
<br />
if(edsum.indexOf("(redir")==0) return 'rd'; //redirect, including redir auto-summary<br />
if(edsum.indexOf("(#redir")==0) return 'rd'; //redirect, including redir auto-summary<br />
<br />
if(edsum.indexOf('(<a href="/w')==0) return 'li'; //edit summary was a link<br />
if(edsum.indexOf("(<a href='/w")==0) return 'li'; //edit summary was a link<br />
if(edsum.indexOf('(<a href=/w')==0) return 'li'; //edit summary was a link<br />
<br />
if(edsum.indexOf('{{welcome')!=-1) return 'we'; //welcome<br />
if(edsum.indexOf('welcome}}')!=-1) return 'we'; //welcome<br />
if(edsum.indexOf('(welcome')!=-1) return 'we'; //welcome<br />
if(edsum.indexOf('welcome)')!=-1) return 'we'; //welcome<br />
<br />
//User warnings are sorted by level. Other warnings and edit summaries are used;<br />
//this is just a small beginning for now.<br />
if(edsum.indexOf('test0')!=-1) return 'w0'; //warning 1<br />
if(edsum.indexOf('test1')!=-1) return 'w1'; //warning 1<br />
if(edsum.indexOf('test2')!=-1) return 'w2'; //warning 2<br />
if(edsum.indexOf('test3')!=-1) return 'w3'; //warning 3<br />
if(edsum.indexOf('test4')!=-1) return 'w4'; //warning 4<br />
if(edsum.indexOf('test5')!=-1) return 'w5'; //warning 5<br />
if(edsum.indexOf('test6')!=-1) return 'w6'; //warning 6<br />
<br />
//Automated warnings<br />
if(edsum.indexOf('(warning user using')==0) return 'wa'; //automated warning<br />
<br />
//Prodding<br />
if(edsum.indexOf('{'+'{prod')!=-1) return 'pr'; //prod<br />
if(edsum.indexOf('(prod')!=-1) return 'pr'; //prod<br />
<br />
//Some XfD-tagging summaries. So far I've only included the deletion-debates<br />
//I'm familiar with.<br />
if(edsum.indexOf('{'+'{afd}}')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('{'+'{afd1')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('(afd)')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('{'+'{tfd}}')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('(tfd)')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('{'+'{md}}')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('{'+'{md1')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('(mfd)')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('{'+'{rfd}}')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('(rfd)')!=-1) return 'xf'; //XfD tagging<br />
if(edsum.indexOf('for deletion')!=-1) return 'xf'; //XfD tagging<br />
<br />
//Speedy deletions<br />
if(edsum.indexOf('db-')!=-1) return 'sp'; //Speedy<br />
if(edsum.indexOf('db|')!=-1) return 'sp'; //Speedy<br />
if(edsum.indexOf('speedy')!=-1) return 'sp'; //Speedy (probably)<br />
if(edsum.indexOf('{{delete}}')!=-1) return 'sp'; //override group de below<br />
<br />
//Other deletion-related (removal of text, delete votes, etc.<br />
if(edsum.indexOf('(del')!=-1) return 'de';<br />
if(edsum.indexOf('delete')!=-1) return 'de';<br />
if(edsum.indexOf('(d)')!=-1) return 'de';<br />
if(edsum.indexOf('(d ')!=-1) return 'de';<br />
if(edsum.indexOf('(-')==0) return 'de'; // as in -link<br />
<br />
//Marked as additions<br />
if(edsum.indexOf('(add ')!=-1) return 'ad';<br />
if(edsum.indexOf(' add ')!=-1) return 'ad';<br />
if(edsum.indexOf('(add)')!=-1) return 'ad';<br />
if(edsum.indexOf(' add)')!=-1) return 'ad';<br />
if(edsum.indexOf('(+')==0) return 'ad'; // as in +1<br />
<br />
//Probable XfD votes to keep<br />
if(edsum.indexOf('(k)')!=-1) return 'ke';<br />
if(edsum.indexOf('(keep')!=-1) return 'ke';<br />
if(edsum.indexOf("'keep'")!=-1) return 'ke'; //for when the user just copies their<br />
//vote to the summary; also produced by<br />
//WikiVoter<br />
<br />
//Votes somewhere to support<br />
if(edsum.indexOf('(support')!=-1) return 'su';<br />
//to oppose<br />
if(edsum.indexOf('(oppose')!=-1) return 'op';<br />
<br />
if(edsum.indexOf("{"+"{")!=-1) return 'ta'; //unknown, marked as a tag<br />
<br />
if(edsum.length<=6) return 'ab'; //unknown abbreviation <=4 chars + parens<br />
<br />
return 'uk'; //unknown<br />
}<br />
<br />
//The main function; this actually counts the edits. The section at the end displays<br />
//the results.<br />
addOnloadHook(function() {<br />
if(location.href.indexOf("ais523count")!=-1&&location.href.indexOf("ais523countres")==-1)<br />
{<br />
//Counting edits. Relies on the fact that <LI> with no arguments only appears<br />
//at the start of a contrib line.<br />
var contribs=0;<br />
var nosum=0,oldnosum;<br />
var sumloc;<br />
var sortcount=new Array();<br />
var bodyh=document.body.innerHTML;<br />
while(bodyh.indexOf("<li>")!=-1)<br />
{<br />
contribs++;<br />
oldnosum=nosum;<br />
bodyh=bodyh.substr(bodyh.indexOf("<li>")+4);<br />
sumloc=9999999;<br />
if(bodyh.indexOf('<span class="comment">')!=-1)<br />
sumloc=bodyh.indexOf('<span class="comment">');<br />
if(bodyh.indexOf("<li>")<sumloc)<br />
nosum++;<br />
if(bodyh.indexOf("<li>")==-1&&sumloc!=9999999) nosum--; //last edit on page<br />
if(nosum==oldnosum)<br />
{ //Parse edit summary<br />
var edsum=bodyh.indexOf('>',sumloc);<br />
bodyh=bodyh.substr(edsum+1);<br />
sumloc=bodyh.indexOf("</span>");<br />
edsum=bodyh.substr(0,sumloc);<br />
edsum=ecAnalyseSummary(edsum);<br />
if(edsum=='se')<br />
{<br />
//jump to next </span><br />
bodyh=bodyh.substr(sumloc+7);<br />
sumloc=bodyh.indexOf("</span>");<br />
edsum=bodyh.substr(0,sumloc);<br />
edsum=ecAnalyseSummary(edsum); <br />
}<br />
if(sortcount[edsum]==undefined) sortcount[edsum]=0;<br />
sortcount[edsum]++;<br />
}<br />
}<br />
bodyh=document.body.innerHTML;<br />
//This is the way IE counts it.<br />
while(bodyh.indexOf("<LI>")!=-1)<br />
{<br />
contribs++;<br />
oldnosum=nosum;<br />
bodyh=bodyh.substr(bodyh.indexOf("<LI>")+4);<br />
sumloc=9999999;<br />
if(bodyh.indexOf('<SPAN CLASS="comment">')!=-1) //a plausible format<br />
sumloc=bodyh.indexOf('<SPAN CLASS="comment">');<br />
if(bodyh.indexOf('<SPAN class=comment>')!=-1) //The IE method<br />
sumloc=bodyh.indexOf('<SPAN class=comment>');<br />
if(bodyh.indexOf("<LI>")<sumloc)<br />
nosum++;<br />
if(bodyh.indexOf("<LI>")==-1&&sumloc!=9999999) nosum--; //last edit on page<br />
if(nosum==oldnosum)<br />
{ //Parse edit summary<br />
var edsum=bodyh.indexOf('>',sumloc);<br />
bodyh=bodyh.substr(edsum+1);<br />
sumloc=bodyh.indexOf("</SPAN>");<br />
edsum=bodyh.substr(0,sumloc);<br />
edsum=ecAnalyseSummary(edsum);<br />
if(edsum=='se')<br />
{<br />
//jump to next </SPAN><br />
bodyh=bodyh.substr(sumloc+7);<br />
sumloc=bodyh.indexOf("</SPAN>");<br />
edsum=bodyh.substr(0,sumloc);<br />
edsum=ecAnalyseSummary(edsum); <br />
}<br />
if(sortcount[edsum]==undefined) sortcount[edsum]=0;<br />
sortcount[edsum]++;<br />
}<br />
}<br />
var namespace=ecGetParamValue("namespace");<br />
var scres="";<br />
var scit;<br />
for (scit in sortcount)<br />
{<br />
scres+="&cns"+namespace+scit+"="+sortcount[scit];<br />
}<br />
if(namespace!="101") //Portal talk<br />
location.href=location.href.substr(0,location.href.lastIndexOf("namespace="))+<br />
"countns"+namespace+"="+contribs+scres+"&countnosum"+namespace+"="+nosum+"&namespace="+(namespace=="15"?"100":1+new Number(namespace));<br />
else<br />
{ <br />
var lh=location.href;<br />
location.href="http://en.wikipedia.org/wiki/User:ais523/results?ais523countres="+lh+"&countns101="+contribs+"&countnosum101="+nosum+scres;<br />
//You can use a page other than [[User:ais523/results]] as long as it's in the<br />
//correct format.<br />
}<br />
}<br />
else if(location.href.indexOf("ais523countres=")!=-1)<br />
{ //This relies on the template page [[User:ais523/results]] being in the<br />
//correct format.<br />
document.getElementById("ais523echead").style.display="none";<br />
var h=document.getElementById("ais523ecbody").innerHTML;<br />
while(h.indexOf("((")!=-1)<br />
{<br />
var i=h.indexOf("((");<br />
var f=h.substr(0,i);<br />
var g=h.substr(i+2,h.indexOf("))")-i-2);<br />
if(g.indexOf('#d')==0)<br />
{ //delete unwanted lines to remove clutter<br />
var j=h.indexOf("((/#d))");<br />
var v=false;<br />
j=h.substr(i+6,j-i-2);<br />
while(j.indexOf("((")!=-1)<br />
{<br />
var ii=j.indexOf("((");<br />
var gg=j.substr(ii+2,j.indexOf("))")-ii-2);<br />
j=j.substr(ii+2);<br />
gg=ecGetParamValue(gg);<br />
if(gg!=null&&gg!=0&&gg!='0') v=true;<br />
}<br />
if(v) g="";<br />
else {h=h.substr(h.indexOf("((/#d")); g="";}<br />
}<br />
else if(g.indexOf("/#d")==0)<br />
g="";<br />
else if(g.indexOf("total")==0)<br />
{<br />
g=new Number(ecGetParamValue('countns0'));<br />
g+=new Number(ecGetParamValue('countns1'));<br />
g+=new Number(ecGetParamValue('countns2'));<br />
g+=new Number(ecGetParamValue('countns3'));<br />
g+=new Number(ecGetParamValue('countns4'));<br />
g+=new Number(ecGetParamValue('countns5'));<br />
g+=new Number(ecGetParamValue('countns6'));<br />
g+=new Number(ecGetParamValue('countns7'));<br />
g+=new Number(ecGetParamValue('countns8'));<br />
g+=new Number(ecGetParamValue('countns9'));<br />
g+=new Number(ecGetParamValue('countns10'));<br />
g+=new Number(ecGetParamValue('countns11'));<br />
g+=new Number(ecGetParamValue('countns12'));<br />
g+=new Number(ecGetParamValue('countns13'));<br />
g+=new Number(ecGetParamValue('countns14'));<br />
g+=new Number(ecGetParamValue('countns15'));<br />
g+=new Number(ecGetParamValue('countns100'));<br />
g+=new Number(ecGetParamValue('countns101'));<br />
}<br />
else<br />
g=ecGetParamValue(g);<br />
if(g==null) g='0';<br />
f+=g+h.substr(h.indexOf("))")+2);<br />
h=f;<br />
}<br />
document.getElementById("ais523ecbody").innerHTML=h;<br />
}<br />
});<br />
<br />
//JavaScript diff finder. By [[User:ais523]]<br />
addOnloadHook(function() {<br />
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)<br />
{<br />
ecAddTab("javascript:ais523l1000()","last 1000","ca-ais523sort","Random diffs from recent edits","");<br />
document.getElementById('ca-ais523sort').innerHTML=<br />
"last <A HREF='javascript:ais523l1000()'>1000</A> "+<br />
"<A HREF='javascript:ais523l2000()'>2000</A>";<br />
}<br />
if(location.href.indexOf("&ais523sort=last")!=-1)<br />
window.setTimeout("ais523sort();",500); //work around IE bug<br />
});<br />
<br />
function ais523l1000()<br />
{<br />
var trg;<br />
trg=ecGetParamValue('target');<br />
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);<br />
location.href="http://en.wikipedia.org/w/index.php?title=Special:Contributions"+<br />
"&limit=1000&target="+trg+"&ais523sort=last1000";<br />
}<br />
<br />
function ais523l2000()<br />
{<br />
var trg;<br />
trg=ecGetParamValue('target');<br />
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);<br />
location.href="http://en.wikipedia.org/w/index.php?title=Special:Contributions"+<br />
"&limit=2000&target="+trg+"&ais523sort=last2000";<br />
}<br />
<br />
function ais523sort()<br />
{<br />
var s=document.body.innerHTML;<br />
var re=/href="(\/w\/index\.php\?title=([^"/]*)((\/[^"]*)?)&amp;diff=prev&amp;oldid=[0-9]*)"/i;<br />
var a=new Array();<br />
var b=new Array();<br />
var c=new Array();<br />
var nc=new Array();<br />
var d=new Array();<br />
while(s.search(re)!=-1)<br />
{<br />
var m=s.match(re);<br />
var m2="";<br />
var q;<br />
if(m[3]!='') m2=" subpages";<br />
m[4]=decodeURIComponent(m[2])+m2;<br />
m[5]=m2;<br />
if(c[m[4]]==undefined) c[m[4]]=0;<br />
if(c[m[4]]<10) q=c[m[4]];<br />
else if(Math.random()<10/(c[m[4]]+1)) q=Math.floor(Math.random()*10);<br />
else q=-1;<br />
c[m[4]]++;<br />
if(d[m[4]]==undefined) d[m[4]]=new Array();<br />
if(q>-1) d[m[4]][q]=m;<br />
s=s.substr(s.search(re)+2);<br />
}<br />
var i;<br />
var j;<br />
for(i in c)<br />
{<br />
if(c[i]<5)<br />
{<br />
for(j in d[i])<br />
{<br />
var ns="(main)";<br />
var q;<br />
if(d[i][j][4].indexOf(":")!=-1) ns=d[i][j][4].substr(0,d[i][j][4].indexOf(":"));<br />
m=d[i][j];<br />
m[2]="Others in namespace "+ns;<br />
m[3]="";<br />
m[4]=m[2];<br />
m[5]="";<br />
if(nc[m[4]]==undefined) nc[m[4]]=0;<br />
if(nc[m[4]]<10) q=nc[m[4]];<br />
else if(Math.random()<10/(nc[m[4]]+1)) q=Math.floor(Math.random()*10);<br />
else q=-1;<br />
nc[m[4]]++;<br />
if(d[m[4]]==undefined) d[m[4]]=new Array();<br />
if(q>-1) d[m[4]][q]=m;<br />
}<br />
}<br />
}<br />
for(i in d)<br />
{<br />
if(nc[i]!=undefined||c[i]>=5)<br />
for(j in d[i])<br />
{<br />
var m=d[i][j];<br />
m[2]=decodeURIComponent(m[2]);<br />
if(a[m[4]]==undefined) a[m[4]]="*[[:"+m[2].split("_").join(" ")+"]]"+m[5]+":";<br />
if(b[m[4]]==undefined) b[m[4]]="<LI><A HREF='http://en.wikipedia.org/wiki/"+<br />
m[2]+"'>"+m[2].split("_").join(" ")+"</A>"+m[5]+":";<br />
a[m[4]]+=" [http://en.wikipedia.org"+m[1]+"]";<br />
b[m[4]]+=" <A HREF='http://en.wikipedia.org"+m[1]+"'>["+(new Number(j)+1)+"]</A>";<br />
}<br />
}<br />
var e=0;<br />
for(i in c)<br />
{<br />
if(c[i]>=5)<br />
{<br />
a[i]+=(c[i]>10?"...":"")+" ("+c[i]+" edit(s))\n";<br />
b[i]+=(c[i]>10?"...":"")+" ("+c[i]+" edit(s))\n";<br />
if(c[i]>e) e=c[i]+1;<br />
}<br />
}<br />
for(i in nc)<br />
{<br />
if(nc[i]>=5)<br />
{<br />
a[i]+=(nc[i]>10?"...":"")+" ("+nc[i]+" edit(s))\n";<br />
b[i]+=(nc[i]>10?"...":"")+" ("+nc[i]+" edit(s))\n";<br />
}<br />
}<br />
var trg=ecGetParamValue('target');<br />
var h="<H1>Contribution breakdown for <A HREF='http://en.wikipedia.org/wiki/User:"+trg;<br />
h+="'>User:"+trg+"</A></H1>\n";<br />
h+="<H2>HTML output</H2><UL>";<br />
var j=e;<br />
while(--j>=5)<br />
{<br />
for(i in c)<br />
{<br />
if(c[i]==j) h+=b[i];<br />
}<br />
}<br />
for(i in nc) if(nc[i]>=5) h+=b[i];<br />
j=e;<br />
h+="</UL>\n<H2>Wikimarkup output</H2><pr"+"e>";<br />
while(--j>=5)<br />
{<br />
for(i in c)<br />
{<br />
if(c[i]==j) h+=a[i];<br />
}<br />
}<br />
for(i in nc) if(nc[i]>=5) h+=a[i];<br />
h+="</p"+"re>";<br />
document.body.innerHTML=h;<br />
}<br />
<br />
// Log counter.<br />
function ais523log()<br />
{<br />
location.href="http://en.wikipedia.org/w/index.php?title=Special:Log&type=&user="+<br />
document.getElementById('user').value+"&page=&limit=5000&offset=0&ais523log=count";<br />
}<br />
<br />
addOnloadHook(function() {<br />
if(location.href.indexOf("ais523log")!=-1&&location.href.indexOf("ais523logres")==-1)<br />
{<br />
var h=document.body.innerHTML;<br />
var i;<br />
var j=new Array();<br />
h=h.toLowerCase().split("<li>");<br />
i=h.length;<br />
while(--i)<br />
{<br />
if(h[i].indexOf("block</a>)")!=-1)<br />
h[i]=h[i].split("block</a>)")[1];<br />
else<br />
h[i]=h[i].split("contribs</a>)")[1];<br />
h[i]=h[i].split("<")[0].split('"').join("").split(" ").join("");<br />
if(h[i]==""&&i+1==h.length) h[i]="newuseraccount";<br />
else if(h[i]=="") h[i]="renamed"; //renames and original account creation are both ""<br />
if(j[h[i]]==null||j[h[i]]==undefined) j[h[i]]=0;<br />
j[h[i]]++;<br />
}<br />
h="";<br />
for(i in j)<br />
h+="<tr><td>"+i+"</td><td>"+j[i]+"</td></tr>";<br />
location.href="http://en.wikipedia.org/wiki/User:ais523/logresults?ais523logres="+<br />
encodeURIComponent(h);<br />
}<br />
else if(location.href.indexOf("ais523logres")!=-1)<br />
document.getElementById("ais523ecbody").innerHTML=<br />
"<table>"+decodeURIComponent(ecGetParamValue('ais523logres'))+"</table>";<br />
else if(wgPageName=="Special:Log")<br />
ecAddTab("javascript:ais523log()","count","ca-ais523log","Count",""); <br />
});<br />
<br />
// Contribution day/time counter<br />
addOnloadHook(function(){<br />
if(wgPageName=="Special:Contributions")<br />
ecAddTab("javascript:ais523dtc()","day/time","ca-ais523dtc","Summarizes what times on what days this editor edits","");<br />
});<br />
<br />
var ais523dtc_counts=null;<br />
var ais523dtc_max=0;<br />
var ais523dtc_rschn=false;<br />
var ais523dtc_prog=0;<br />
var ais523drc_sg=false;<br />
<br />
var ais523dtc_nybbles=new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');<br />
<br />
function ais523dtc_v(n)<br />
{<br />
if(ais523dtc_max<n)<br />
{<br />
ais523dtc_max=n;<br />
ais523dtc_rschn=true;<br />
}<br />
var f=n/ais523dtc_max;<br />
var r=0, g=0;<br />
if(f<1/3) g=Math.floor(f*3*255);<br />
else if(f<2/3) {g=255; r=Math.floor((f*3-1)*255);}<br />
else {r=255; g=Math.floor((3-f*3)*255);}<br />
return ais523dtc_nybbles[Math.floor(r/16)]+ais523dtc_nybbles[r%16]+<br />
ais523dtc_nybbles[Math.floor(g/16)]+ais523dtc_nybbles[g%16]+"00";<br />
}<br />
<br />
function ais523dtcStep(xmlreq,data)<br />
{<br />
var trg;<br />
trg=ecGetParamValue('target');<br />
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);<br />
var a=xmlreq.responseText.split('timestamp="')<br />
var i=a.length;<br />
ais523dtc_prog+=i-1;<br />
while(--i)<br />
{<br />
var q=a[i].split('"')[0];<br />
var d=new Date();<br />
d.setUTCFullYear(+q.substr(0,4));<br />
d.setUTCMonth((+q.substr(5,2))-1);<br />
d.setUTCDate(+q.substr(8,2));<br />
var wday=d.getUTCDay();<br />
var hper=4*+q.substr(11,2)+Math.floor((+q.substr(14,2))/15);<br />
document.getElementById('a5w'+wday+'q'+hper).style.backgroundColor=<br />
"#"+ais523dtc_v(++ais523dtc_counts[wday*96+hper]);<br />
}<br />
if(ais523dtc_rschn)<br />
{<br />
ais523dtc_rschn=false;<br />
var wday=7;<br />
while(wday--)<br />
{<br />
var hper=96;<br />
while(hper--)<br />
document.getElementById('a5w'+wday+'q'+hper).style.backgroundColor=<br />
"#"+ais523dtc_v(ais523dtc_counts[wday*96+hper]);<br />
}<br />
}<br />
document.getElementById('a5dtcp').innerHTML=ais523dtc_prog;<br />
document.getElementById('a5dtck1').innerHTML=Math.floor(ais523dtc_max/3);<br />
document.getElementById('a5dtck2').innerHTML=Math.floor(2*ais523dtc_max/3);<br />
document.getElementById('a5dtck3').innerHTML=ais523dtc_max;<br />
if(xmlreq.responseText.indexOf("query-continue")==-1) // finished<br />
{<br />
ais523dtc_sg=true;<br />
document.getElementById('a5dtco').innerHTML='(finished)';<br />
return;<br />
}<br />
aecwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=usercontribs&'+<br />
'ucuser='+encodeURIComponent(trg)+'&ucprop=timestamp&format=xml&uclimit=100&ucstart='+<br />
xmlreq.responseText.split('ucstart="')[1].split('"')[0],onSuccess:ais523dtcStep});<br />
}<br />
<br />
function ais523dtcook(xmlreq,data)<br />
{<br />
if(!ais523dtc_sg) return;<br />
document.getElementById('a5dtco').innerHTML="(out of an overestimated "+<br />
xmlreq.responseText.split("<count>")[1].split("</count>")[0]+")";<br />
}<br />
<br />
function ais523dtc()<br />
{<br />
var trg;<br />
trg=ecGetParamValue('target');<br />
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);<br />
var h="<table class='wikitable'><tr><th>&nbsp;</th>";<br />
var i=0;<br />
while(i<24) h+="<th colspan=4>"+i++ +"</th>"<br />
h+="</tr><tr><th>Sun</th>"; i=0; while(i<96) h+="<td id='a5w0q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Mon</th>"; i=0; while(i<96) h+="<td id='a5w1q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Tue</th>"; i=0; while(i<96) h+="<td id='a5w2q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Wed</th>"; i=0; while(i<96) h+="<td id='a5w3q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Thu</th>"; i=0; while(i<96) h+="<td id='a5w4q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Fri</th>"; i=0; while(i<96) h+="<td id='a5w5q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr><tr><th>Sat</th>"; i=0; while(i<96) h+="<td id='a5w6q"+i++ +"'>&thinsp;</td>";<br />
h+="</tr></table><div>Processed <span id='a5dtcp'>0</span> edits so far <span id='a5dtco'></span>";<br />
h+=". Key: <span style='background-color:#000000'>0 edits, </span>";<br />
h+="<span style='background-color:#00FF00'><span id='a5dtck1'>0</span> edits, </span>";<br />
h+="<span style='background-color:#FFFF00'><span id='a5dtck2'>0</span> edits, </span>";<br />
h+="<span style='background-color:#FF0000'><span id='a5dtck3'>0</span> edits.</span></div>";<br />
document.getElementById('contentSub').innerHTML=h;<br />
if(ais523dtc_counts==null) ais523dtc_counts=new Array();<br />
ais523dtc_max=null;<br />
ais523dtc_prog=0;<br />
ais523dtc_sg=true;<br />
i=7*96; while(i--) ais523dtc_counts[i]=0;<br />
aecwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=usercontribs&'+<br />
'ucuser='+encodeURIComponent(trg)+'&ucprop=timestamp&format=xml&uclimit=100',<br />
onSuccess:ais523dtcStep});<br />
aecwpajax.download({url:'http://en.wikipedia.org/w/query.php?what=contribcounter&'+<br />
'titles=User:'+encodeURIComponent(trg)+'&format=xml', onSuccess:ais523dtcook});<br />
}<br />
<br />
//</nowiki></pre><br />
//[[Category:Wikipedia scripts]]</div>
Jj137