Zum Inhalt springen

„Benutzer:Jj137/monobook.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
Jj137 (Diskussion | Beiträge)
über
 
Jj137 (Diskussion | Beiträge)
über remove
 
Zeile 1: Zeile 1:
//Please leave this link: [[User:ais523/editcount.js]]
//<pre><nowiki>

//JavaScript edit counter. By [[User:ais523]].
//To install this, you can copy it into your monobook.js or use a script-inclusion
//method (see WikiProject User Scripts). It produces a 'count' tab on contribs pages
//that can be used to count a user's edits. It won't count more than 5000 edits in any
//namespace, to prevent excessive server load.

//Add LI Link and Add Tab, renamed to prevent conflicts. To make installation easier
//for people who haven't used User Scripts before.

function ecAddLILink(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id)
{
if(key && title)
{
ta[id] = [key, title];
}
else if(key)
{
ta[id] = [key, ''];
}
else if(title)
{
ta[id] = ['', title];
}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}

function ecAddTab(url, name, id, title, key){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
return ecAddLILink(tabs, url, name, id, title, key)
}

var aecwpajax;
// From [[WP:US]] mainpage (wpajax renamed to aecwpajax), some comments removed
aecwpajax={
download:function(bundle) {
var x = window.XMLHttpRequest ? new XMLHttpRequest()
: window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP")
: false;
if (x) {
x.onreadystatechange=function() {
x.readyState==4 && aecwpajax.downloadComplete(x,bundle);
};
x.open("GET",bundle.url,true);
x.send(null);
}
return x;
},

downloadComplete:function(x,bundle) {
x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )
|| ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText));
}
};

function ecQuickCountComplete(xmlreq,data)
{
alert("Edit count: "+xmlreq.responseText.split("<count>")[1].split("</count>")[0]);
}

addOnloadHook(function() {
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)
ecAddTab("javascript:ais523quickcount()","quick count","ca-ais523qc","Quick Count","");
});

function ais523quickcount()
{
var trg;
trg=ecGetParamValue('target');
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);
aecwpajax.download({url:'http://en.wikipedia.org/w/query.php?what=contribcounter&'+
'titles=User:'+encodeURIComponent(trg)+'&format=xml', onSuccess:ecQuickCountComplete});
}

addOnloadHook(function() {
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)
ecAddTab("javascript:ais523contrib()","count","ca-ais523count","Count","");
});

//This function was orignally taken from [[User:Lupin/autoedit.js]]. I've renamed it
//because I know many users use popups, and I don't want to cause a naming conflict.
//Edited to decode + to space as well, and to use a decoding function that handles
//a broader range of characters.
function ecGetParamValue(paramName) {
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var h=document.location;
var m;
if (m=cmdRe.exec(h)) {
try {
while(m[1].indexOf('+')!=-1)
{
m[1]=m[1].substr(0,m[1].indexOf('+'))+" "+m[1].substr(m[1].indexOf('+')+1);
}
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
};


function ais523contrib()
{
var u;
if(location.href.indexOf("?")!=-1) u=ecGetParamValue("target");
else u=location.href.substr(location.href.lastIndexOf("/")+1);
location.href="/w/index.php?title=Special:Contributions&limit=5000&target="+u+"&ais523count=1&namespace=0";
}

//Analyses an edit summary and returns a two-letter code indicating what the edit seems
//to be doing. The edit summary is passed with parens round it, written in HTML. This
//doesn't yet work for section edits, which will have to be parsed out in the main
//function.
function ecAnalyseSummary(edsum)
{
edsum=edsum.toLowerCase();
if(edsum.indexOf("→")!=-1) return 'se'; //section edit, can't say any more than that
if(edsum==")") return 'se'; //section edit, no summary
if(edsum.indexOf(" ")==0) edsum="("+edsum.substr(1); //came from section

if(edsum.indexOf("(rvv")==0) return 'rv'; //vandalism revert
if(edsum.indexOf("(rv vand")==0) return 'rv'; //vandalism revert
if(edsum.indexOf("(revv")==0) return 'rv'; //vandalism revert
if(edsum.indexOf("(rev vand")==0) return 'rv'; //vandalism revert
if(edsum.indexOf("(revert vand")==0) return 'rv'; //vandalism revert

if(edsum.indexOf("(rv ")==0&&edsum.indexOf("vandal")!=-1) return 'rv';
if(edsum.indexOf("(rev ")==0&&edsum.indexOf("vandal")!=-1) return 'rv';

if(edsum.indexOf("(rv ")==0) return 'ro'; //other manual revert
if(edsum.indexOf("(rev ")==0) return 'ro'; //other manual revert

if(edsum.indexOf("(reverted ")==0) return 'ra'; //automatic revert
if(edsum.indexOf("(revert to ")==0) return 'ra'; //automatic revert, probably
if(edsum.indexOf("(revert edit(s) ")==0) return 'ra'; //per [[User:Qxz]]

if(edsum.indexOf("(revert")==0) return 'ro'; //guess manual for time being;
//I need more examples of this sort of rv

if(edsum.indexOf("(rm ")==0) return 'rm'; //removal
if(edsum.indexOf("(rem ")==0) return 'rm'; //removal
if(edsum.indexOf("(remove ")==0) return 'rm'; //removal

if(edsum.indexOf("(redir")==0) return 'rd'; //redirect, including redir auto-summary
if(edsum.indexOf("(#redir")==0) return 'rd'; //redirect, including redir auto-summary

if(edsum.indexOf('(<a href="/w')==0) return 'li'; //edit summary was a link
if(edsum.indexOf("(<a href='/w")==0) return 'li'; //edit summary was a link
if(edsum.indexOf('(<a href=/w')==0) return 'li'; //edit summary was a link

if(edsum.indexOf('{{welcome')!=-1) return 'we'; //welcome
if(edsum.indexOf('welcome}}')!=-1) return 'we'; //welcome
if(edsum.indexOf('(welcome')!=-1) return 'we'; //welcome
if(edsum.indexOf('welcome)')!=-1) return 'we'; //welcome

//User warnings are sorted by level. Other warnings and edit summaries are used;
//this is just a small beginning for now.
if(edsum.indexOf('test0')!=-1) return 'w0'; //warning 1
if(edsum.indexOf('test1')!=-1) return 'w1'; //warning 1
if(edsum.indexOf('test2')!=-1) return 'w2'; //warning 2
if(edsum.indexOf('test3')!=-1) return 'w3'; //warning 3
if(edsum.indexOf('test4')!=-1) return 'w4'; //warning 4
if(edsum.indexOf('test5')!=-1) return 'w5'; //warning 5
if(edsum.indexOf('test6')!=-1) return 'w6'; //warning 6

//Automated warnings
if(edsum.indexOf('(warning user using')==0) return 'wa'; //automated warning

//Prodding
if(edsum.indexOf('{'+'{prod')!=-1) return 'pr'; //prod
if(edsum.indexOf('(prod')!=-1) return 'pr'; //prod

//Some XfD-tagging summaries. So far I've only included the deletion-debates
//I'm familiar with.
if(edsum.indexOf('{'+'{afd}}')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('{'+'{afd1')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('(afd)')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('{'+'{tfd}}')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('(tfd)')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('{'+'{md}}')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('{'+'{md1')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('(mfd)')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('{'+'{rfd}}')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('(rfd)')!=-1) return 'xf'; //XfD tagging
if(edsum.indexOf('for deletion')!=-1) return 'xf'; //XfD tagging

//Speedy deletions
if(edsum.indexOf('db-')!=-1) return 'sp'; //Speedy
if(edsum.indexOf('db|')!=-1) return 'sp'; //Speedy
if(edsum.indexOf('speedy')!=-1) return 'sp'; //Speedy (probably)
if(edsum.indexOf('{{delete}}')!=-1) return 'sp'; //override group de below

//Other deletion-related (removal of text, delete votes, etc.
if(edsum.indexOf('(del')!=-1) return 'de';
if(edsum.indexOf('delete')!=-1) return 'de';
if(edsum.indexOf('(d)')!=-1) return 'de';
if(edsum.indexOf('(d ')!=-1) return 'de';
if(edsum.indexOf('(-')==0) return 'de'; // as in -link

//Marked as additions
if(edsum.indexOf('(add ')!=-1) return 'ad';
if(edsum.indexOf(' add ')!=-1) return 'ad';
if(edsum.indexOf('(add)')!=-1) return 'ad';
if(edsum.indexOf(' add)')!=-1) return 'ad';
if(edsum.indexOf('(+')==0) return 'ad'; // as in +1

//Probable XfD votes to keep
if(edsum.indexOf('(k)')!=-1) return 'ke';
if(edsum.indexOf('(keep')!=-1) return 'ke';
if(edsum.indexOf("'keep'")!=-1) return 'ke'; //for when the user just copies their
//vote to the summary; also produced by
//WikiVoter

//Votes somewhere to support
if(edsum.indexOf('(support')!=-1) return 'su';
//to oppose
if(edsum.indexOf('(oppose')!=-1) return 'op';

if(edsum.indexOf("{"+"{")!=-1) return 'ta'; //unknown, marked as a tag

if(edsum.length<=6) return 'ab'; //unknown abbreviation <=4 chars + parens

return 'uk'; //unknown
}

//The main function; this actually counts the edits. The section at the end displays
//the results.
addOnloadHook(function() {
if(location.href.indexOf("ais523count")!=-1&&location.href.indexOf("ais523countres")==-1)
{
//Counting edits. Relies on the fact that <LI> with no arguments only appears
//at the start of a contrib line.
var contribs=0;
var nosum=0,oldnosum;
var sumloc;
var sortcount=new Array();
var bodyh=document.body.innerHTML;
while(bodyh.indexOf("<li>")!=-1)
{
contribs++;
oldnosum=nosum;
bodyh=bodyh.substr(bodyh.indexOf("<li>")+4);
sumloc=9999999;
if(bodyh.indexOf('<span class="comment">')!=-1)
sumloc=bodyh.indexOf('<span class="comment">');
if(bodyh.indexOf("<li>")<sumloc)
nosum++;
if(bodyh.indexOf("<li>")==-1&&sumloc!=9999999) nosum--; //last edit on page
if(nosum==oldnosum)
{ //Parse edit summary
var edsum=bodyh.indexOf('>',sumloc);
bodyh=bodyh.substr(edsum+1);
sumloc=bodyh.indexOf("</span>");
edsum=bodyh.substr(0,sumloc);
edsum=ecAnalyseSummary(edsum);
if(edsum=='se')
{
//jump to next </span>
bodyh=bodyh.substr(sumloc+7);
sumloc=bodyh.indexOf("</span>");
edsum=bodyh.substr(0,sumloc);
edsum=ecAnalyseSummary(edsum);
}
if(sortcount[edsum]==undefined) sortcount[edsum]=0;
sortcount[edsum]++;
}
}
bodyh=document.body.innerHTML;
//This is the way IE counts it.
while(bodyh.indexOf("<LI>")!=-1)
{
contribs++;
oldnosum=nosum;
bodyh=bodyh.substr(bodyh.indexOf("<LI>")+4);
sumloc=9999999;
if(bodyh.indexOf('<SPAN CLASS="comment">')!=-1) //a plausible format
sumloc=bodyh.indexOf('<SPAN CLASS="comment">');
if(bodyh.indexOf('<SPAN class=comment>')!=-1) //The IE method
sumloc=bodyh.indexOf('<SPAN class=comment>');
if(bodyh.indexOf("<LI>")<sumloc)
nosum++;
if(bodyh.indexOf("<LI>")==-1&&sumloc!=9999999) nosum--; //last edit on page
if(nosum==oldnosum)
{ //Parse edit summary
var edsum=bodyh.indexOf('>',sumloc);
bodyh=bodyh.substr(edsum+1);
sumloc=bodyh.indexOf("</SPAN>");
edsum=bodyh.substr(0,sumloc);
edsum=ecAnalyseSummary(edsum);
if(edsum=='se')
{
//jump to next </SPAN>
bodyh=bodyh.substr(sumloc+7);
sumloc=bodyh.indexOf("</SPAN>");
edsum=bodyh.substr(0,sumloc);
edsum=ecAnalyseSummary(edsum);
}
if(sortcount[edsum]==undefined) sortcount[edsum]=0;
sortcount[edsum]++;
}
}
var namespace=ecGetParamValue("namespace");
var scres="";
var scit;
for (scit in sortcount)
{
scres+="&cns"+namespace+scit+"="+sortcount[scit];
}
if(namespace!="101") //Portal talk
location.href=location.href.substr(0,location.href.lastIndexOf("namespace="))+
"countns"+namespace+"="+contribs+scres+"&countnosum"+namespace+"="+nosum+"&namespace="+(namespace=="15"?"100":1+new Number(namespace));
else
{
var lh=location.href;
location.href="/wiki/User:ais523/results?ais523countres="+lh+"&countns101="+contribs+"&countnosum101="+nosum+scres;
//You can use a page other than [[User:ais523/results]] as long as it's in the
//correct format.
}
}
else if(location.href.indexOf("ais523countres=")!=-1)
{ //This relies on the template page [[User:ais523/results]] being in the
//correct format.
document.getElementById("ais523echead").style.display="none";
var h=document.getElementById("ais523ecbody").innerHTML;
while(h.indexOf("((")!=-1)
{
var i=h.indexOf("((");
var f=h.substr(0,i);
var g=h.substr(i+2,h.indexOf("))")-i-2);
if(g.indexOf('#d')==0)
{ //delete unwanted lines to remove clutter
var j=h.indexOf("((/#d))");
var v=false;
j=h.substr(i+6,j-i-2);
while(j.indexOf("((")!=-1)
{
var ii=j.indexOf("((");
var gg=j.substr(ii+2,j.indexOf("))")-ii-2);
j=j.substr(ii+2);
gg=ecGetParamValue(gg);
if(gg!=null&&gg!=0&&gg!='0') v=true;
}
if(v) g="";
else {h=h.substr(h.indexOf("((/#d")); g="";}
}
else if(g.indexOf("/#d")==0)
g="";
else if(g.indexOf("total")==0)
{
g=new Number(ecGetParamValue('countns0'));
g+=new Number(ecGetParamValue('countns1'));
g+=new Number(ecGetParamValue('countns2'));
g+=new Number(ecGetParamValue('countns3'));
g+=new Number(ecGetParamValue('countns4'));
g+=new Number(ecGetParamValue('countns5'));
g+=new Number(ecGetParamValue('countns6'));
g+=new Number(ecGetParamValue('countns7'));
g+=new Number(ecGetParamValue('countns8'));
g+=new Number(ecGetParamValue('countns9'));
g+=new Number(ecGetParamValue('countns10'));
g+=new Number(ecGetParamValue('countns11'));
g+=new Number(ecGetParamValue('countns12'));
g+=new Number(ecGetParamValue('countns13'));
g+=new Number(ecGetParamValue('countns14'));
g+=new Number(ecGetParamValue('countns15'));
g+=new Number(ecGetParamValue('countns100'));
g+=new Number(ecGetParamValue('countns101'));
}
else
g=ecGetParamValue(g);
if(g==null) g='0';
f+=g+h.substr(h.indexOf("))")+2);
h=f;
}
document.getElementById("ais523ecbody").innerHTML=h;
}
});

//JavaScript diff finder. By [[User:ais523]]
addOnloadHook(function() {
if(location.href.indexOf("Special")!=-1&&location.href.indexOf("Contributions")!=-1)
{
ecAddTab("javascript:ais523l1000()","last 1000","ca-ais523sort","Random diffs from recent edits","");
document.getElementById('ca-ais523sort').innerHTML=
"last <A HREF='javascript:ais523l1000()'>1000</A> "+
"<A HREF='javascript:ais523l2000()'>2000</A>";
}
if(location.href.indexOf("&ais523sort=last")!=-1)
window.setTimeout("ais523sort();",500); //work around IE bug
});

function ais523l1000()
{
var trg;
trg=ecGetParamValue('target');
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);
location.href="/w/index.php?title=Special:Contributions"+
"&limit=1000&target="+trg+"&ais523sort=last1000";
}

function ais523l2000()
{
var trg;
trg=ecGetParamValue('target');
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);
location.href="/w/index.php?title=Special:Contributions"+
"&limit=2000&target="+trg+"&ais523sort=last2000";
}

function ais523sort()
{
var s=document.body.innerHTML;
var re=/href="(\/w\/index\.php\?title=([^"/]*)((\/[^"]*)?)&amp;diff=prev&amp;oldid=[0-9]*)"/i;
var a=new Array();
var b=new Array();
var c=new Array();
var nc=new Array();
var d=new Array();
while(s.search(re)!=-1)
{
var m=s.match(re);
var m2="";
var q;
if(m[3]!='') m2=" subpages";
m[4]=decodeURIComponent(m[2])+m2;
m[5]=m2;
if(c[m[4]]==undefined) c[m[4]]=0;
if(c[m[4]]<10) q=c[m[4]];
else if(Math.random()<10/(c[m[4]]+1)) q=Math.floor(Math.random()*10);
else q=-1;
c[m[4]]++;
if(d[m[4]]==undefined) d[m[4]]=new Array();
if(q>-1) d[m[4]][q]=m;
s=s.substr(s.search(re)+2);
}
var i;
var j;
for(i in c)
{
if(c[i]<5)
{
for(j in d[i])
{
var ns="(main)";
var q;
if(d[i][j][4].indexOf(":")!=-1) ns=d[i][j][4].substr(0,d[i][j][4].indexOf(":"));
m=d[i][j];
m[2]="Others in namespace "+ns;
m[3]="";
m[4]=m[2];
m[5]="";
if(nc[m[4]]==undefined) nc[m[4]]=0;
if(nc[m[4]]<10) q=nc[m[4]];
else if(Math.random()<10/(nc[m[4]]+1)) q=Math.floor(Math.random()*10);
else q=-1;
nc[m[4]]++;
if(d[m[4]]==undefined) d[m[4]]=new Array();
if(q>-1) d[m[4]][q]=m;
}
}
}
for(i in d)
{
if(nc[i]!=undefined||c[i]>=5)
for(j in d[i])
{
var m=d[i][j];
m[2]=decodeURIComponent(m[2]);
if(a[m[4]]==undefined) a[m[4]]="*[[:"+m[2].split("_").join(" ")+"]]"+m[5]+":";
if(b[m[4]]==undefined) b[m[4]]="<LI><A HREF='http://en.wikipedia.org/wiki/"+
m[2]+"'>"+m[2].split("_").join(" ")+"</A>"+m[5]+":";
a[m[4]]+=" [http://en.wikipedia.org"+m[1]+"]";
b[m[4]]+=" <A HREF='http://en.wikipedia.org"+m[1]+"'>["+(new Number(j)+1)+"]</A>";
}
}
var e=0;
for(i in c)
{
if(c[i]>=5)
{
a[i]+=(c[i]>10?"...":"")+" ("+c[i]+" edit(s))\n";
b[i]+=(c[i]>10?"...":"")+" ("+c[i]+" edit(s))\n";
if(c[i]>e) e=c[i]+1;
}
}
for(i in nc)
{
if(nc[i]>=5)
{
a[i]+=(nc[i]>10?"...":"")+" ("+nc[i]+" edit(s))\n";
b[i]+=(nc[i]>10?"...":"")+" ("+nc[i]+" edit(s))\n";
}
}
var trg=ecGetParamValue('target');
var h="<H1>Contribution breakdown for <A HREF='http://en.wikipedia.org/wiki/User:"+trg;
h+="'>User:"+trg+"</A></H1>\n";
h+="<H2>HTML output</H2><UL>";
var j=e;
while(--j>=5)
{
for(i in c)
{
if(c[i]==j) h+=b[i];
}
}
for(i in nc) if(nc[i]>=5) h+=b[i];
j=e;
h+="</UL>\n<H2>Wikimarkup output</H2><pr"+"e>";
while(--j>=5)
{
for(i in c)
{
if(c[i]==j) h+=a[i];
}
}
for(i in nc) if(nc[i]>=5) h+=a[i];
h+="</p"+"re>";
document.body.innerHTML=h;
}

// Log counter.
function ais523log()
{
location.href="/w/index.php?title=Special:Log&type=&user="+
document.getElementById('user').value+"&page=&limit=5000&offset=0&ais523log=count";
}

addOnloadHook(function() {
if(location.href.indexOf("ais523log")!=-1&&location.href.indexOf("ais523logres")==-1)
{
var h=document.body.innerHTML;
var i;
var j=new Array();
h=h.toLowerCase().split("<li>");
i=h.length;
while(--i)
{
if(h[i].indexOf("block</a>)")!=-1)
h[i]=h[i].split("block</a>)")[1];
else
h[i]=h[i].split("contribs</a>)")[1];
h[i]=h[i].split("<")[0].split('"').join("").split(" ").join("");
if(h[i]==""&&i+1==h.length) h[i]="newuseraccount";
else if(h[i]=="") h[i]="renamed"; //renames and original account creation are both ""
if(j[h[i]]==null||j[h[i]]==undefined) j[h[i]]=0;
j[h[i]]++;
}
h="";
for(i in j)
h+="<tr><td>"+i+"</td><td>"+j[i]+"</td></tr>";
location.href="/wiki/User:ais523/logresults?ais523logres="+
encodeURIComponent(h);
}
else if(location.href.indexOf("ais523logres")!=-1)
document.getElementById("ais523ecbody").innerHTML=
"<table>"+decodeURIComponent(ecGetParamValue('ais523logres'))+"</table>";
else if(wgPageName=="Special:Log")
ecAddTab("javascript:ais523log()","count","ca-ais523log","Count","");
});

// Contribution day/time counter
addOnloadHook(function(){
if(wgPageName=="Special:Contributions")
ecAddTab("javascript:ais523dtc()","day/time","ca-ais523dtc","Summarizes what times on what days this editor edits","");
});

var ais523dtc_counts=null;
var ais523dtc_max=0;
var ais523dtc_rschn=false;
var ais523dtc_prog=0;
var ais523drc_sg=false;

var ais523dtc_nybbles=new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

function ais523dtc_v(n)
{
if(ais523dtc_max<n)
{
ais523dtc_max=n;
ais523dtc_rschn=true;
}
var f=n/ais523dtc_max;
var r=0, g=0;
if(f<1/3) g=Math.floor(f*3*255);
else if(f<2/3) {g=255; r=Math.floor((f*3-1)*255);}
else {r=255; g=Math.floor((3-f*3)*255);}
return ais523dtc_nybbles[Math.floor(r/16)]+ais523dtc_nybbles[r%16]+
ais523dtc_nybbles[Math.floor(g/16)]+ais523dtc_nybbles[g%16]+"00";
}

function ais523dtcStep(xmlreq,data)
{
var trg;
trg=ecGetParamValue('target');
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);
var a=xmlreq.responseText.split('timestamp="')
var i=a.length;
ais523dtc_prog+=i-1;
while(--i)
{
var q=a[i].split('"')[0];
var d=new Date();
d.setUTCFullYear(+q.substr(0,4));
d.setUTCMonth((+q.substr(5,2))-1);
d.setUTCDate(+q.substr(8,2));
var wday=d.getUTCDay();
var hper=4*+q.substr(11,2)+Math.floor((+q.substr(14,2))/15);
document.getElementById('a5w'+wday+'q'+hper).style.backgroundColor=
"#"+ais523dtc_v(++ais523dtc_counts[wday*96+hper]);
}
if(ais523dtc_rschn)
{
ais523dtc_rschn=false;
var wday=7;
while(wday--)
{
var hper=96;
while(hper--)
document.getElementById('a5w'+wday+'q'+hper).style.backgroundColor=
"#"+ais523dtc_v(ais523dtc_counts[wday*96+hper]);
}
}
document.getElementById('a5dtcp').innerHTML=ais523dtc_prog;
document.getElementById('a5dtck1').innerHTML=Math.floor(ais523dtc_max/3);
document.getElementById('a5dtck2').innerHTML=Math.floor(2*ais523dtc_max/3);
document.getElementById('a5dtck3').innerHTML=ais523dtc_max;
if(xmlreq.responseText.indexOf("query-continue")==-1) // finished
{
ais523dtc_sg=true;
document.getElementById('a5dtco').innerHTML='(finished)';
return;
}
aecwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=usercontribs&'+
'ucuser='+encodeURIComponent(trg)+'&ucprop=timestamp&format=xml&uclimit=100&ucstart='+
xmlreq.responseText.split('ucstart="')[1].split('"')[0],onSuccess:ais523dtcStep});
}

function ais523dtcook(xmlreq,data)
{
if(!ais523dtc_sg) return;
document.getElementById('a5dtco').innerHTML="(out of an overestimated "+
xmlreq.responseText.split("<count>")[1].split("</count>")[0]+")";
}

function ais523dtc()
{
var trg;
trg=ecGetParamValue('target');
if(trg==null) trg=location.href.substr(location.href.lastIndexOf("/")+1);
var h="<table class='wikitable'><tr><th>&nbsp;</th>";
var i=0;
while(i<24) h+="<th colspan=4>"+i++ +"</th>"
h+="</tr><tr><th>Sun</th>"; i=0; while(i<96) h+="<td id='a5w0q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Mon</th>"; i=0; while(i<96) h+="<td id='a5w1q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Tue</th>"; i=0; while(i<96) h+="<td id='a5w2q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Wed</th>"; i=0; while(i<96) h+="<td id='a5w3q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Thu</th>"; i=0; while(i<96) h+="<td id='a5w4q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Fri</th>"; i=0; while(i<96) h+="<td id='a5w5q"+i++ +"'>&thinsp;</td>";
h+="</tr><tr><th>Sat</th>"; i=0; while(i<96) h+="<td id='a5w6q"+i++ +"'>&thinsp;</td>";
h+="</tr></table><div>Processed <span id='a5dtcp'>0</span> edits so far <span id='a5dtco'></span>";
h+=". Key: <span style='background-color:#000000'>0 edits, </span>";
h+="<span style='background-color:#00FF00'><span id='a5dtck1'>0</span> edits, </span>";
h+="<span style='background-color:#FFFF00'><span id='a5dtck2'>0</span> edits, </span>";
h+="<span style='background-color:#FF0000'><span id='a5dtck3'>0</span> edits.</span></div>";
document.getElementById('contentSub').innerHTML=h;
if(ais523dtc_counts==null) ais523dtc_counts=new Array();
ais523dtc_max=null;
ais523dtc_prog=0;
ais523dtc_sg=true;
i=7*96; while(i--) ais523dtc_counts[i]=0;
aecwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=usercontribs&'+
'ucuser='+encodeURIComponent(trg)+'&ucprop=timestamp&format=xml&uclimit=100',
onSuccess:ais523dtcStep});
aecwpajax.download({url:'http://en.wikipedia.org/w/query.php?what=contribcounter&'+
'titles=User:'+encodeURIComponent(trg)+'&format=xml', onSuccess:ais523dtcook});
}

//</nowiki></pre>
//[[Category:Wikipedia scripts]]

Aktuelle Version vom 12. Dezember 2007, 01:41 Uhr