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&amp;diff=39968478&amp;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 /> //&lt;pre&gt;&lt;nowiki&gt;<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 &#039;count&#039; tab on contribs pages<br /> //that can be used to count a user&#039;s edits. It won&#039;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&#039;t used User Scripts before.<br /> <br /> function ecAddLILink(tabs, url, name, id, title, key){<br /> var na = document.createElement(&#039;a&#039;);<br /> na.href = url;<br /> na.appendChild(document.createTextNode(name));<br /> var li = document.createElement(&#039;li&#039;);<br /> if(id) li.id = id;<br /> li.appendChild(na);<br /> tabs.appendChild(li);<br /> if(id)<br /> {<br /> if(key &amp;&amp; title)<br /> {<br /> ta[id] = [key, title];<br /> }<br /> else if(key)<br /> {<br /> ta[id] = [key, &#039;&#039;];<br /> }<br /> else if(title)<br /> {<br /> ta[id] = [&#039;&#039;, 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(&#039;p-cactions&#039;).getElementsByTagName(&#039;ul&#039;)[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(&quot;Microsoft.XMLHTTP&quot;)<br /> : false;<br /> <br /> if (x) {<br /> x.onreadystatechange=function() {<br /> x.readyState==4 &amp;&amp; aecwpajax.downloadComplete(x,bundle);<br /> };<br /> x.open(&quot;GET&quot;,bundle.url,true);<br /> x.send(null); <br /> }<br /> return x;<br /> },<br /> <br /> downloadComplete:function(x,bundle) {<br /> x.status==200 &amp;&amp; ( bundle.onSuccess &amp;&amp; bundle.onSuccess(x,bundle) || true )<br /> || ( bundle.onFailure &amp;&amp; bundle.onFailure(x,bundle) || alert(x.statusText));<br /> }<br /> };<br /> <br /> function ecQuickCountComplete(xmlreq,data)<br /> {<br /> alert(&quot;Edit count: &quot;+xmlreq.responseText.split(&quot;&lt;count&gt;&quot;)[1].split(&quot;&lt;/count&gt;&quot;)[0]);<br /> }<br /> <br /> addOnloadHook(function() {<br /> if(location.href.indexOf(&quot;Special&quot;)!=-1&amp;&amp;location.href.indexOf(&quot;Contributions&quot;)!=-1)<br /> ecAddTab(&quot;javascript:ais523quickcount()&quot;,&quot;quick count&quot;,&quot;ca-ais523qc&quot;,&quot;Quick Count&quot;,&quot;&quot;);<br /> });<br /> <br /> function ais523quickcount()<br /> {<br /> var trg;<br /> trg=ecGetParamValue(&#039;target&#039;);<br /> if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> aecwpajax.download({url:&#039;http://en.wikipedia.org/w/query.php?what=contribcounter&amp;&#039;+<br /> &#039;titles=User:&#039;+encodeURIComponent(trg)+&#039;&amp;format=xml&#039;, onSuccess:ecQuickCountComplete});<br /> }<br /> <br /> addOnloadHook(function() {<br /> if(location.href.indexOf(&quot;Special&quot;)!=-1&amp;&amp;location.href.indexOf(&quot;Contributions&quot;)!=-1)<br /> ecAddTab(&quot;javascript:ais523contrib()&quot;,&quot;count&quot;,&quot;ca-ais523count&quot;,&quot;Count&quot;,&quot;&quot;);<br /> });<br /> <br /> //This function was orignally taken from [[User:Lupin/autoedit.js]]. I&#039;ve renamed it<br /> //because I know many users use popups, and I don&#039;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(&#039;[&amp;?]&#039;+paramName+&#039;=([^&amp;]*)&#039;);<br /> var h=document.location;<br /> var m;<br /> if (m=cmdRe.exec(h)) {<br /> try { <br /> while(m[1].indexOf(&#039;+&#039;)!=-1)<br /> {<br /> m[1]=m[1].substr(0,m[1].indexOf(&#039;+&#039;))+&quot; &quot;+m[1].substr(m[1].indexOf(&#039;+&#039;)+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(&quot;?&quot;)!=-1) u=ecGetParamValue(&quot;target&quot;);<br /> else u=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> location.href=&quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&amp;limit=5000&amp;target=&quot;+u+&quot;&amp;ais523count=1&amp;namespace=0&quot;;<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&#039;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(&quot;→&quot;)!=-1) return &#039;se&#039;; //section edit, can&#039;t say any more than that<br /> if(edsum==&quot;)&quot;) return &#039;se&#039;; //section edit, no summary<br /> if(edsum.indexOf(&quot; &quot;)==0) edsum=&quot;(&quot;+edsum.substr(1); //came from section<br /> <br /> if(edsum.indexOf(&quot;(rvv&quot;)==0) return &#039;rv&#039;; //vandalism revert<br /> if(edsum.indexOf(&quot;(rv vand&quot;)==0) return &#039;rv&#039;; //vandalism revert<br /> if(edsum.indexOf(&quot;(revv&quot;)==0) return &#039;rv&#039;; //vandalism revert<br /> if(edsum.indexOf(&quot;(rev vand&quot;)==0) return &#039;rv&#039;; //vandalism revert<br /> if(edsum.indexOf(&quot;(revert vand&quot;)==0) return &#039;rv&#039;; //vandalism revert<br /> <br /> if(edsum.indexOf(&quot;(rv &quot;)==0&amp;&amp;edsum.indexOf(&quot;vandal&quot;)!=-1) return &#039;rv&#039;;<br /> if(edsum.indexOf(&quot;(rev &quot;)==0&amp;&amp;edsum.indexOf(&quot;vandal&quot;)!=-1) return &#039;rv&#039;;<br /> <br /> if(edsum.indexOf(&quot;(rv &quot;)==0) return &#039;ro&#039;; //other manual revert<br /> if(edsum.indexOf(&quot;(rev &quot;)==0) return &#039;ro&#039;; //other manual revert<br /> <br /> if(edsum.indexOf(&quot;(reverted &quot;)==0) return &#039;ra&#039;; //automatic revert<br /> if(edsum.indexOf(&quot;(revert to &quot;)==0) return &#039;ra&#039;; //automatic revert, probably<br /> if(edsum.indexOf(&quot;(revert edit(s) &quot;)==0) return &#039;ra&#039;; //per [[User:Qxz]]<br /> <br /> if(edsum.indexOf(&quot;(revert&quot;)==0) return &#039;ro&#039;; //guess manual for time being;<br /> //I need more examples of this sort of rv<br /> <br /> if(edsum.indexOf(&quot;(rm &quot;)==0) return &#039;rm&#039;; //removal<br /> if(edsum.indexOf(&quot;(rem &quot;)==0) return &#039;rm&#039;; //removal<br /> if(edsum.indexOf(&quot;(remove &quot;)==0) return &#039;rm&#039;; //removal<br /> <br /> if(edsum.indexOf(&quot;(redir&quot;)==0) return &#039;rd&#039;; //redirect, including redir auto-summary<br /> if(edsum.indexOf(&quot;(#redir&quot;)==0) return &#039;rd&#039;; //redirect, including redir auto-summary<br /> <br /> if(edsum.indexOf(&#039;(&lt;a href=&quot;/w&#039;)==0) return &#039;li&#039;; //edit summary was a link<br /> if(edsum.indexOf(&quot;(&lt;a href=&#039;/w&quot;)==0) return &#039;li&#039;; //edit summary was a link<br /> if(edsum.indexOf(&#039;(&lt;a href=/w&#039;)==0) return &#039;li&#039;; //edit summary was a link<br /> <br /> if(edsum.indexOf(&#039;{{welcome&#039;)!=-1) return &#039;we&#039;; //welcome<br /> if(edsum.indexOf(&#039;welcome}}&#039;)!=-1) return &#039;we&#039;; //welcome<br /> if(edsum.indexOf(&#039;(welcome&#039;)!=-1) return &#039;we&#039;; //welcome<br /> if(edsum.indexOf(&#039;welcome)&#039;)!=-1) return &#039;we&#039;; //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(&#039;test0&#039;)!=-1) return &#039;w0&#039;; //warning 1<br /> if(edsum.indexOf(&#039;test1&#039;)!=-1) return &#039;w1&#039;; //warning 1<br /> if(edsum.indexOf(&#039;test2&#039;)!=-1) return &#039;w2&#039;; //warning 2<br /> if(edsum.indexOf(&#039;test3&#039;)!=-1) return &#039;w3&#039;; //warning 3<br /> if(edsum.indexOf(&#039;test4&#039;)!=-1) return &#039;w4&#039;; //warning 4<br /> if(edsum.indexOf(&#039;test5&#039;)!=-1) return &#039;w5&#039;; //warning 5<br /> if(edsum.indexOf(&#039;test6&#039;)!=-1) return &#039;w6&#039;; //warning 6<br /> <br /> //Automated warnings<br /> if(edsum.indexOf(&#039;(warning user using&#039;)==0) return &#039;wa&#039;; //automated warning<br /> <br /> //Prodding<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{prod&#039;)!=-1) return &#039;pr&#039;; //prod<br /> if(edsum.indexOf(&#039;(prod&#039;)!=-1) return &#039;pr&#039;; //prod<br /> <br /> //Some XfD-tagging summaries. So far I&#039;ve only included the deletion-debates<br /> //I&#039;m familiar with.<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{afd}}&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{afd1&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;(afd)&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{tfd}}&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;(tfd)&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{md}}&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{md1&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;(mfd)&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;{&#039;+&#039;{rfd}}&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;(rfd)&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> if(edsum.indexOf(&#039;for deletion&#039;)!=-1) return &#039;xf&#039;; //XfD tagging<br /> <br /> //Speedy deletions<br /> if(edsum.indexOf(&#039;db-&#039;)!=-1) return &#039;sp&#039;; //Speedy<br /> if(edsum.indexOf(&#039;db|&#039;)!=-1) return &#039;sp&#039;; //Speedy<br /> if(edsum.indexOf(&#039;speedy&#039;)!=-1) return &#039;sp&#039;; //Speedy (probably)<br /> if(edsum.indexOf(&#039;{{delete}}&#039;)!=-1) return &#039;sp&#039;; //override group de below<br /> <br /> //Other deletion-related (removal of text, delete votes, etc.<br /> if(edsum.indexOf(&#039;(del&#039;)!=-1) return &#039;de&#039;;<br /> if(edsum.indexOf(&#039;delete&#039;)!=-1) return &#039;de&#039;;<br /> if(edsum.indexOf(&#039;(d)&#039;)!=-1) return &#039;de&#039;;<br /> if(edsum.indexOf(&#039;(d &#039;)!=-1) return &#039;de&#039;;<br /> if(edsum.indexOf(&#039;(-&#039;)==0) return &#039;de&#039;; // as in -link<br /> <br /> //Marked as additions<br /> if(edsum.indexOf(&#039;(add &#039;)!=-1) return &#039;ad&#039;;<br /> if(edsum.indexOf(&#039; add &#039;)!=-1) return &#039;ad&#039;;<br /> if(edsum.indexOf(&#039;(add)&#039;)!=-1) return &#039;ad&#039;;<br /> if(edsum.indexOf(&#039; add)&#039;)!=-1) return &#039;ad&#039;;<br /> if(edsum.indexOf(&#039;(+&#039;)==0) return &#039;ad&#039;; // as in +1<br /> <br /> //Probable XfD votes to keep<br /> if(edsum.indexOf(&#039;(k)&#039;)!=-1) return &#039;ke&#039;;<br /> if(edsum.indexOf(&#039;(keep&#039;)!=-1) return &#039;ke&#039;;<br /> if(edsum.indexOf(&quot;&#039;keep&#039;&quot;)!=-1) return &#039;ke&#039;; //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(&#039;(support&#039;)!=-1) return &#039;su&#039;;<br /> //to oppose<br /> if(edsum.indexOf(&#039;(oppose&#039;)!=-1) return &#039;op&#039;;<br /> <br /> if(edsum.indexOf(&quot;{&quot;+&quot;{&quot;)!=-1) return &#039;ta&#039;; //unknown, marked as a tag<br /> <br /> if(edsum.length&lt;=6) return &#039;ab&#039;; //unknown abbreviation &lt;=4 chars + parens<br /> <br /> return &#039;uk&#039;; //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(&quot;ais523count&quot;)!=-1&amp;&amp;location.href.indexOf(&quot;ais523countres&quot;)==-1)<br /> {<br /> //Counting edits. Relies on the fact that &lt;LI&gt; 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(&quot;&lt;li&gt;&quot;)!=-1)<br /> {<br /> contribs++;<br /> oldnosum=nosum;<br /> bodyh=bodyh.substr(bodyh.indexOf(&quot;&lt;li&gt;&quot;)+4);<br /> sumloc=9999999;<br /> if(bodyh.indexOf(&#039;&lt;span class=&quot;comment&quot;&gt;&#039;)!=-1)<br /> sumloc=bodyh.indexOf(&#039;&lt;span class=&quot;comment&quot;&gt;&#039;);<br /> if(bodyh.indexOf(&quot;&lt;li&gt;&quot;)&lt;sumloc)<br /> nosum++;<br /> if(bodyh.indexOf(&quot;&lt;li&gt;&quot;)==-1&amp;&amp;sumloc!=9999999) nosum--; //last edit on page<br /> if(nosum==oldnosum)<br /> { //Parse edit summary<br /> var edsum=bodyh.indexOf(&#039;&gt;&#039;,sumloc);<br /> bodyh=bodyh.substr(edsum+1);<br /> sumloc=bodyh.indexOf(&quot;&lt;/span&gt;&quot;);<br /> edsum=bodyh.substr(0,sumloc);<br /> edsum=ecAnalyseSummary(edsum);<br /> if(edsum==&#039;se&#039;)<br /> {<br /> //jump to next &lt;/span&gt;<br /> bodyh=bodyh.substr(sumloc+7);<br /> sumloc=bodyh.indexOf(&quot;&lt;/span&gt;&quot;);<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(&quot;&lt;LI&gt;&quot;)!=-1)<br /> {<br /> contribs++;<br /> oldnosum=nosum;<br /> bodyh=bodyh.substr(bodyh.indexOf(&quot;&lt;LI&gt;&quot;)+4);<br /> sumloc=9999999;<br /> if(bodyh.indexOf(&#039;&lt;SPAN CLASS=&quot;comment&quot;&gt;&#039;)!=-1) //a plausible format<br /> sumloc=bodyh.indexOf(&#039;&lt;SPAN CLASS=&quot;comment&quot;&gt;&#039;);<br /> if(bodyh.indexOf(&#039;&lt;SPAN class=comment&gt;&#039;)!=-1) //The IE method<br /> sumloc=bodyh.indexOf(&#039;&lt;SPAN class=comment&gt;&#039;);<br /> if(bodyh.indexOf(&quot;&lt;LI&gt;&quot;)&lt;sumloc)<br /> nosum++;<br /> if(bodyh.indexOf(&quot;&lt;LI&gt;&quot;)==-1&amp;&amp;sumloc!=9999999) nosum--; //last edit on page<br /> if(nosum==oldnosum)<br /> { //Parse edit summary<br /> var edsum=bodyh.indexOf(&#039;&gt;&#039;,sumloc);<br /> bodyh=bodyh.substr(edsum+1);<br /> sumloc=bodyh.indexOf(&quot;&lt;/SPAN&gt;&quot;);<br /> edsum=bodyh.substr(0,sumloc);<br /> edsum=ecAnalyseSummary(edsum);<br /> if(edsum==&#039;se&#039;)<br /> {<br /> //jump to next &lt;/SPAN&gt;<br /> bodyh=bodyh.substr(sumloc+7);<br /> sumloc=bodyh.indexOf(&quot;&lt;/SPAN&gt;&quot;);<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(&quot;namespace&quot;);<br /> var scres=&quot;&quot;;<br /> var scit;<br /> for (scit in sortcount)<br /> {<br /> scres+=&quot;&amp;cns&quot;+namespace+scit+&quot;=&quot;+sortcount[scit];<br /> }<br /> if(namespace!=&quot;101&quot;) //Portal talk<br /> location.href=location.href.substr(0,location.href.lastIndexOf(&quot;namespace=&quot;))+<br /> &quot;countns&quot;+namespace+&quot;=&quot;+contribs+scres+&quot;&amp;countnosum&quot;+namespace+&quot;=&quot;+nosum+&quot;&amp;namespace=&quot;+(namespace==&quot;15&quot;?&quot;100&quot;:1+new Number(namespace));<br /> else<br /> { <br /> var lh=location.href;<br /> location.href=&quot;http://en.wikipedia.org/wiki/User:ais523/results?ais523countres=&quot;+lh+&quot;&amp;countns101=&quot;+contribs+&quot;&amp;countnosum101=&quot;+nosum+scres;<br /> //You can use a page other than [[User:ais523/results]] as long as it&#039;s in the<br /> //correct format.<br /> }<br /> }<br /> else if(location.href.indexOf(&quot;ais523countres=&quot;)!=-1)<br /> { //This relies on the template page [[User:ais523/results]] being in the<br /> //correct format.<br /> document.getElementById(&quot;ais523echead&quot;).style.display=&quot;none&quot;;<br /> var h=document.getElementById(&quot;ais523ecbody&quot;).innerHTML;<br /> while(h.indexOf(&quot;((&quot;)!=-1)<br /> {<br /> var i=h.indexOf(&quot;((&quot;);<br /> var f=h.substr(0,i);<br /> var g=h.substr(i+2,h.indexOf(&quot;))&quot;)-i-2);<br /> if(g.indexOf(&#039;#d&#039;)==0)<br /> { //delete unwanted lines to remove clutter<br /> var j=h.indexOf(&quot;((/#d))&quot;);<br /> var v=false;<br /> j=h.substr(i+6,j-i-2);<br /> while(j.indexOf(&quot;((&quot;)!=-1)<br /> {<br /> var ii=j.indexOf(&quot;((&quot;);<br /> var gg=j.substr(ii+2,j.indexOf(&quot;))&quot;)-ii-2);<br /> j=j.substr(ii+2);<br /> gg=ecGetParamValue(gg);<br /> if(gg!=null&amp;&amp;gg!=0&amp;&amp;gg!=&#039;0&#039;) v=true;<br /> }<br /> if(v) g=&quot;&quot;;<br /> else {h=h.substr(h.indexOf(&quot;((/#d&quot;)); g=&quot;&quot;;}<br /> }<br /> else if(g.indexOf(&quot;/#d&quot;)==0)<br /> g=&quot;&quot;;<br /> else if(g.indexOf(&quot;total&quot;)==0)<br /> {<br /> g=new Number(ecGetParamValue(&#039;countns0&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns1&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns2&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns3&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns4&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns5&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns6&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns7&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns8&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns9&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns10&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns11&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns12&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns13&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns14&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns15&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns100&#039;));<br /> g+=new Number(ecGetParamValue(&#039;countns101&#039;));<br /> }<br /> else<br /> g=ecGetParamValue(g);<br /> if(g==null) g=&#039;0&#039;;<br /> f+=g+h.substr(h.indexOf(&quot;))&quot;)+2);<br /> h=f;<br /> }<br /> document.getElementById(&quot;ais523ecbody&quot;).innerHTML=h;<br /> }<br /> });<br /> <br /> //JavaScript diff finder. By [[User:ais523]]<br /> addOnloadHook(function() {<br /> if(location.href.indexOf(&quot;Special&quot;)!=-1&amp;&amp;location.href.indexOf(&quot;Contributions&quot;)!=-1)<br /> {<br /> ecAddTab(&quot;javascript:ais523l1000()&quot;,&quot;last 1000&quot;,&quot;ca-ais523sort&quot;,&quot;Random diffs from recent edits&quot;,&quot;&quot;);<br /> document.getElementById(&#039;ca-ais523sort&#039;).innerHTML=<br /> &quot;last &lt;A HREF=&#039;javascript:ais523l1000()&#039;&gt;1000&lt;/A&gt; &quot;+<br /> &quot;&lt;A HREF=&#039;javascript:ais523l2000()&#039;&gt;2000&lt;/A&gt;&quot;;<br /> }<br /> if(location.href.indexOf(&quot;&amp;ais523sort=last&quot;)!=-1)<br /> window.setTimeout(&quot;ais523sort();&quot;,500); //work around IE bug<br /> });<br /> <br /> function ais523l1000()<br /> {<br /> var trg;<br /> trg=ecGetParamValue(&#039;target&#039;);<br /> if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> location.href=&quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&quot;+<br /> &quot;&amp;limit=1000&amp;target=&quot;+trg+&quot;&amp;ais523sort=last1000&quot;;<br /> }<br /> <br /> function ais523l2000()<br /> {<br /> var trg;<br /> trg=ecGetParamValue(&#039;target&#039;);<br /> if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> location.href=&quot;http://en.wikipedia.org/w/index.php?title=Special:Contributions&quot;+<br /> &quot;&amp;limit=2000&amp;target=&quot;+trg+&quot;&amp;ais523sort=last2000&quot;;<br /> }<br /> <br /> function ais523sort()<br /> {<br /> var s=document.body.innerHTML;<br /> var re=/href=&quot;(\/w\/index\.php\?title=([^&quot;/]*)((\/[^&quot;]*)?)&amp;amp;diff=prev&amp;amp;oldid=[0-9]*)&quot;/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=&quot;&quot;;<br /> var q;<br /> if(m[3]!=&#039;&#039;) m2=&quot; subpages&quot;;<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]]&lt;10) q=c[m[4]];<br /> else if(Math.random()&lt;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&gt;-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]&lt;5)<br /> {<br /> for(j in d[i])<br /> {<br /> var ns=&quot;(main)&quot;;<br /> var q;<br /> if(d[i][j][4].indexOf(&quot;:&quot;)!=-1) ns=d[i][j][4].substr(0,d[i][j][4].indexOf(&quot;:&quot;));<br /> m=d[i][j];<br /> m[2]=&quot;Others in namespace &quot;+ns;<br /> m[3]=&quot;&quot;;<br /> m[4]=m[2];<br /> m[5]=&quot;&quot;;<br /> if(nc[m[4]]==undefined) nc[m[4]]=0;<br /> if(nc[m[4]]&lt;10) q=nc[m[4]];<br /> else if(Math.random()&lt;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&gt;-1) d[m[4]][q]=m;<br /> }<br /> }<br /> }<br /> for(i in d)<br /> {<br /> if(nc[i]!=undefined||c[i]&gt;=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]]=&quot;*[[:&quot;+m[2].split(&quot;_&quot;).join(&quot; &quot;)+&quot;]]&quot;+m[5]+&quot;:&quot;;<br /> if(b[m[4]]==undefined) b[m[4]]=&quot;&lt;LI&gt;&lt;A HREF=&#039;http://en.wikipedia.org/wiki/&quot;+<br /> m[2]+&quot;&#039;&gt;&quot;+m[2].split(&quot;_&quot;).join(&quot; &quot;)+&quot;&lt;/A&gt;&quot;+m[5]+&quot;:&quot;;<br /> a[m[4]]+=&quot; [http://en.wikipedia.org&quot;+m[1]+&quot;]&quot;;<br /> b[m[4]]+=&quot; &lt;A HREF=&#039;http://en.wikipedia.org&quot;+m[1]+&quot;&#039;&gt;[&quot;+(new Number(j)+1)+&quot;]&lt;/A&gt;&quot;;<br /> }<br /> }<br /> var e=0;<br /> for(i in c)<br /> {<br /> if(c[i]&gt;=5)<br /> {<br /> a[i]+=(c[i]&gt;10?&quot;...&quot;:&quot;&quot;)+&quot; (&quot;+c[i]+&quot; edit(s))\n&quot;;<br /> b[i]+=(c[i]&gt;10?&quot;...&quot;:&quot;&quot;)+&quot; (&quot;+c[i]+&quot; edit(s))\n&quot;;<br /> if(c[i]&gt;e) e=c[i]+1;<br /> }<br /> }<br /> for(i in nc)<br /> {<br /> if(nc[i]&gt;=5)<br /> {<br /> a[i]+=(nc[i]&gt;10?&quot;...&quot;:&quot;&quot;)+&quot; (&quot;+nc[i]+&quot; edit(s))\n&quot;;<br /> b[i]+=(nc[i]&gt;10?&quot;...&quot;:&quot;&quot;)+&quot; (&quot;+nc[i]+&quot; edit(s))\n&quot;;<br /> }<br /> }<br /> var trg=ecGetParamValue(&#039;target&#039;);<br /> var h=&quot;&lt;H1&gt;Contribution breakdown for &lt;A HREF=&#039;http://en.wikipedia.org/wiki/User:&quot;+trg;<br /> h+=&quot;&#039;&gt;User:&quot;+trg+&quot;&lt;/A&gt;&lt;/H1&gt;\n&quot;;<br /> h+=&quot;&lt;H2&gt;HTML output&lt;/H2&gt;&lt;UL&gt;&quot;;<br /> var j=e;<br /> while(--j&gt;=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]&gt;=5) h+=b[i];<br /> j=e;<br /> h+=&quot;&lt;/UL&gt;\n&lt;H2&gt;Wikimarkup output&lt;/H2&gt;&lt;pr&quot;+&quot;e&gt;&quot;;<br /> while(--j&gt;=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]&gt;=5) h+=a[i];<br /> h+=&quot;&lt;/p&quot;+&quot;re&gt;&quot;;<br /> document.body.innerHTML=h;<br /> }<br /> <br /> // Log counter.<br /> function ais523log()<br /> {<br /> location.href=&quot;http://en.wikipedia.org/w/index.php?title=Special:Log&amp;type=&amp;user=&quot;+<br /> document.getElementById(&#039;user&#039;).value+&quot;&amp;page=&amp;limit=5000&amp;offset=0&amp;ais523log=count&quot;;<br /> }<br /> <br /> addOnloadHook(function() {<br /> if(location.href.indexOf(&quot;ais523log&quot;)!=-1&amp;&amp;location.href.indexOf(&quot;ais523logres&quot;)==-1)<br /> {<br /> var h=document.body.innerHTML;<br /> var i;<br /> var j=new Array();<br /> h=h.toLowerCase().split(&quot;&lt;li&gt;&quot;);<br /> i=h.length;<br /> while(--i)<br /> {<br /> if(h[i].indexOf(&quot;block&lt;/a&gt;)&quot;)!=-1)<br /> h[i]=h[i].split(&quot;block&lt;/a&gt;)&quot;)[1];<br /> else<br /> h[i]=h[i].split(&quot;contribs&lt;/a&gt;)&quot;)[1];<br /> h[i]=h[i].split(&quot;&lt;&quot;)[0].split(&#039;&quot;&#039;).join(&quot;&quot;).split(&quot; &quot;).join(&quot;&quot;);<br /> if(h[i]==&quot;&quot;&amp;&amp;i+1==h.length) h[i]=&quot;newuseraccount&quot;;<br /> else if(h[i]==&quot;&quot;) h[i]=&quot;renamed&quot;; //renames and original account creation are both &quot;&quot;<br /> if(j[h[i]]==null||j[h[i]]==undefined) j[h[i]]=0;<br /> j[h[i]]++;<br /> }<br /> h=&quot;&quot;;<br /> for(i in j)<br /> h+=&quot;&lt;tr&gt;&lt;td&gt;&quot;+i+&quot;&lt;/td&gt;&lt;td&gt;&quot;+j[i]+&quot;&lt;/td&gt;&lt;/tr&gt;&quot;;<br /> location.href=&quot;http://en.wikipedia.org/wiki/User:ais523/logresults?ais523logres=&quot;+<br /> encodeURIComponent(h);<br /> }<br /> else if(location.href.indexOf(&quot;ais523logres&quot;)!=-1)<br /> document.getElementById(&quot;ais523ecbody&quot;).innerHTML=<br /> &quot;&lt;table&gt;&quot;+decodeURIComponent(ecGetParamValue(&#039;ais523logres&#039;))+&quot;&lt;/table&gt;&quot;;<br /> else if(wgPageName==&quot;Special:Log&quot;)<br /> ecAddTab(&quot;javascript:ais523log()&quot;,&quot;count&quot;,&quot;ca-ais523log&quot;,&quot;Count&quot;,&quot;&quot;); <br /> });<br /> <br /> // Contribution day/time counter<br /> addOnloadHook(function(){<br /> if(wgPageName==&quot;Special:Contributions&quot;)<br /> ecAddTab(&quot;javascript:ais523dtc()&quot;,&quot;day/time&quot;,&quot;ca-ais523dtc&quot;,&quot;Summarizes what times on what days this editor edits&quot;,&quot;&quot;);<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(&#039;0&#039;,&#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;,&#039;A&#039;,&#039;B&#039;,&#039;C&#039;,&#039;D&#039;,&#039;E&#039;,&#039;F&#039;);<br /> <br /> function ais523dtc_v(n)<br /> {<br /> if(ais523dtc_max&lt;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&lt;1/3) g=Math.floor(f*3*255);<br /> else if(f&lt;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]+&quot;00&quot;;<br /> }<br /> <br /> function ais523dtcStep(xmlreq,data)<br /> {<br /> var trg;<br /> trg=ecGetParamValue(&#039;target&#039;);<br /> if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> var a=xmlreq.responseText.split(&#039;timestamp=&quot;&#039;)<br /> var i=a.length;<br /> ais523dtc_prog+=i-1;<br /> while(--i)<br /> {<br /> var q=a[i].split(&#039;&quot;&#039;)[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(&#039;a5w&#039;+wday+&#039;q&#039;+hper).style.backgroundColor=<br /> &quot;#&quot;+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(&#039;a5w&#039;+wday+&#039;q&#039;+hper).style.backgroundColor=<br /> &quot;#&quot;+ais523dtc_v(ais523dtc_counts[wday*96+hper]);<br /> }<br /> }<br /> document.getElementById(&#039;a5dtcp&#039;).innerHTML=ais523dtc_prog;<br /> document.getElementById(&#039;a5dtck1&#039;).innerHTML=Math.floor(ais523dtc_max/3);<br /> document.getElementById(&#039;a5dtck2&#039;).innerHTML=Math.floor(2*ais523dtc_max/3);<br /> document.getElementById(&#039;a5dtck3&#039;).innerHTML=ais523dtc_max;<br /> if(xmlreq.responseText.indexOf(&quot;query-continue&quot;)==-1) // finished<br /> {<br /> ais523dtc_sg=true;<br /> document.getElementById(&#039;a5dtco&#039;).innerHTML=&#039;(finished)&#039;;<br /> return;<br /> }<br /> aecwpajax.download({url:&#039;http://en.wikipedia.org/w/api.php?action=query&amp;list=usercontribs&amp;&#039;+<br /> &#039;ucuser=&#039;+encodeURIComponent(trg)+&#039;&amp;ucprop=timestamp&amp;format=xml&amp;uclimit=100&amp;ucstart=&#039;+<br /> xmlreq.responseText.split(&#039;ucstart=&quot;&#039;)[1].split(&#039;&quot;&#039;)[0],onSuccess:ais523dtcStep});<br /> }<br /> <br /> function ais523dtcook(xmlreq,data)<br /> {<br /> if(!ais523dtc_sg) return;<br /> document.getElementById(&#039;a5dtco&#039;).innerHTML=&quot;(out of an overestimated &quot;+<br /> xmlreq.responseText.split(&quot;&lt;count&gt;&quot;)[1].split(&quot;&lt;/count&gt;&quot;)[0]+&quot;)&quot;;<br /> }<br /> <br /> function ais523dtc()<br /> {<br /> var trg;<br /> trg=ecGetParamValue(&#039;target&#039;);<br /> if(trg==null) trg=location.href.substr(location.href.lastIndexOf(&quot;/&quot;)+1);<br /> var h=&quot;&lt;table class=&#039;wikitable&#039;&gt;&lt;tr&gt;&lt;th&gt;&amp;nbsp;&lt;/th&gt;&quot;;<br /> var i=0;<br /> while(i&lt;24) h+=&quot;&lt;th colspan=4&gt;&quot;+i++ +&quot;&lt;/th&gt;&quot;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Sun&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w0q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Mon&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w1q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Tue&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w2q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Wed&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w3q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Thu&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w4q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Fri&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w5q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Sat&lt;/th&gt;&quot;; i=0; while(i&lt;96) h+=&quot;&lt;td id=&#039;a5w6q&quot;+i++ +&quot;&#039;&gt;&amp;thinsp;&lt;/td&gt;&quot;;<br /> h+=&quot;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;Processed &lt;span id=&#039;a5dtcp&#039;&gt;0&lt;/span&gt; edits so far &lt;span id=&#039;a5dtco&#039;&gt;&lt;/span&gt;&quot;;<br /> h+=&quot;. Key: &lt;span style=&#039;background-color:#000000&#039;&gt;0 edits, &lt;/span&gt;&quot;;<br /> h+=&quot;&lt;span style=&#039;background-color:#00FF00&#039;&gt;&lt;span id=&#039;a5dtck1&#039;&gt;0&lt;/span&gt; edits, &lt;/span&gt;&quot;;<br /> h+=&quot;&lt;span style=&#039;background-color:#FFFF00&#039;&gt;&lt;span id=&#039;a5dtck2&#039;&gt;0&lt;/span&gt; edits, &lt;/span&gt;&quot;;<br /> h+=&quot;&lt;span style=&#039;background-color:#FF0000&#039;&gt;&lt;span id=&#039;a5dtck3&#039;&gt;0&lt;/span&gt; edits.&lt;/span&gt;&lt;/div&gt;&quot;;<br /> document.getElementById(&#039;contentSub&#039;).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:&#039;http://en.wikipedia.org/w/api.php?action=query&amp;list=usercontribs&amp;&#039;+<br /> &#039;ucuser=&#039;+encodeURIComponent(trg)+&#039;&amp;ucprop=timestamp&amp;format=xml&amp;uclimit=100&#039;,<br /> onSuccess:ais523dtcStep});<br /> aecwpajax.download({url:&#039;http://en.wikipedia.org/w/query.php?what=contribcounter&amp;&#039;+<br /> &#039;titles=User:&#039;+encodeURIComponent(trg)+&#039;&amp;format=xml&#039;, onSuccess:ais523dtcook});<br /> }<br /> <br /> //&lt;/nowiki&gt;&lt;/pre&gt;<br /> //[[Category:Wikipedia scripts]]</div> Jj137