Jump to content
Wikimedia Meta-Wiki

User:Pathoschild/2009 steward confirmation statistics

From Meta, a Wikimedia project coordination wiki
2009 steward confirmations (unofficial voting statistics)
This page statistically summarizes the 2009 steward confirmations. See also a summary of the 2009 elections, and the collected statistics page.

Table

[edit ]

Unique participants: 227.
This table only shows overall tendency. The final results are determined by discussing the arguments, not counting votes.

Last update: 2009年02月22日 01:15 (UTC)

steward support ratio (approximate) oppose reasons result
Spacebirdy 1.000,  100% (73/73) confirmed
DerHexer 1.000,  100% (62/62) confirmed
guillom 1.000,  100% (49/49) confirmed
Angela 1.000,  100% (39/39) confirmed
M7 1.000,  100% (39/39) confirmed
Jon Harald Søby 1.000,  100% (38/38) confirmed
Effeietsanders 1.000,  100% (28/28) confirmed
Pathoschild 0.981,  98.1% (53/54) confirmed confirmed
Anthere 0.975,  97.5% (39/40) inactivity. confirmed
Shanel 0.974,  97.4% (38/39) confirmed
Andre Engels 0.974,  97.4% (37/38) no statement. confirmed
Bastique 0.969,  96.9% (62/64) confirmed
Nick1915 0.969,  96.9% (31/32) confirmed
Drini 0.966,  96.6% (56/58) confirmed
Thogo 0.964,  96.4% (54/56) confirmed
Wpedzich 0.96,  96% (24/25) usurped account on kowiki. confirmed
Lar 0.95,  95% (57/60) confirmed
Dungodung 0.939,  93.9% (46/49) confirmed
Darkoneko 0.925,  92.5% (49/53) confirmed
Millosh 0.917,  91.7% (22/24) exclusion of en-Wikipedians from Global sysop proposal vote. confirmed
Rdsmith4 0.893,  89.3% (25/28) confirmed
Mav 0.846,  84.6% (22/26) inactivity. confirmed
Yann 0.793,  79.3% (23/29) inactivity, frwiki dispute, (削除) no statement (削除ここまで) (later added). confirmed
Walter 0.731,  73.1% (19/26) inactivity. confirmed
Redux 0.722,  72.2% (13/18) inactivity. confirmed
Jusjih 0.571,  57.1% (12/21) inactivity, violation of steward policies, too much access. confirmed
Oscar 0.677,  67.7% (21/31) inactivity. confirmed
Zirland 0.429,  42.9% (9/21) inactivity. failed
Jimbo Wales 0.421,  42.1% (24/57) inactivity, should have 'staff' flag instead. Dear Founder
Cspurrier 0.263,  26.3% (5/19) inactivity. confirmed
Sj 0.111,  11.1% (2/18) inactivity, no statement. confirmed
Dbl2010 0.059,  5.9% (1/17) inactivity. failed
.anaconda 0.000,  0% (0/9) resigned; inactivity, no statement. withdrawn
Paginazero 0.125,  12.5% (1/8) resigned; inactivity. withdrawn
Shizhao 0.000,  0% (0/2) removed (was appointed as ombudsman); violation of steward policies. withdrawn

Script

[edit ]

Although comments need to be tallied manually (there are no explicit support/oppose sections), this can be done quickly by using the following quick-and-dirty script to count all comments for every listed candidate, split them into oppose/support by manually checking new comments (most comments tend to reflect one side, with a small number of outliers), then sort the table by clicking the provided link.

/*********************
** Functions
*********************/
functionses_report(text){
$('stewiestats').adopt(document.createTextNode(text));
}
/*********************
** Initialize
*********************/
functionses_update_stats(){
/*********************
	** Display status box
	*********************/
varbox=document.getElementById('stewiestats');
if(!box){
// load required framework
importScriptURI('http://meta.wikimedia.org/w/index.php?title=User:Pathoschild/Scripts/MooTools.js&action=raw&ctype=text/javascript');
// create box
box=document.createElement('pre');
box.setAttribute('id','stewiestats');
box.setAttribute('style','margin:1em; padding:0.5em; border:1px solid #C00;');
box.appendChild(document.createTextNode('Loading required framework...\n'));
editbox.parentNode.insertBefore(box,editbox.parentNode.firstChild);
// jump to box
window.location.hash="#stewiestats";
}
/*********************
	** Wait until WikiMooTools loaded
	*********************/
if(!window.$chk){
setTimeout('init_scan()',500);
return;
}
// clear old messages
box.empty();
ses_report('Loading required framework...\n');
/*********************
	** Extract list of candidates & counts
	*********************/
ses_report('Extracting candidate list...\n');
varnames=[];
vartotals=[];
vartext=editbox.value.match(/<!--ses-start-->([\s\S]+?)<!--ses-end-->/)[1].toString();
vartemps=text.match(/{{user[\s\S]+?}}/ig);
for(vari=0,len=temps.length;i<len;i++){
varsupps=temps[i].match(/support *= *(.+)/)[1].toString();
varoppos=temps[i].match(/oppose *= *(.+)/)[1].toString();
names[i]=temps[i].match(/name *= *(.+)/)[1].toString();
totals[i]=parseInt(supps)+parseInt(oppos);
}
/*********************
	** Extract participant count
	*********************/
ses_report('Counting unique participants... ');
box.adopt(
newElement('span',{'id':'ses-box-count'})
);
ses_report('\n');
varrequest=newRequest({
url:'http://meta.wikimedia.org/wiki/Stewards/confirm?action=render',
method:'GET',
onSuccess:function(text,xml){
varlinks=text.match(/title="User:[^\/"]+/ig);
varnames={};
varcount=0;
for(vari=0,len=links.length;i<len;i++){
varname=links[i].match(/User:(.+)/)[1];
if(!names[name]){
names[name]=1;
count++;
}
}
$('ses-box-count').adopt(document.createTextNode(count));
editbox.value=editbox.value.replace(/(<span id="ses_count">).*?(<\/span>)/,'1ドル'+count+'2ドル');
},
onFailure:function(xhr){
$('ses-box-count').set({'text':' FAILED: '+xhr.status+' ('+xhr.statusText+')'});
}
}).send();
/*********************
	** Extract comment counts per candidate
	*********************/
ses_report('Fetching elections pages...\n');
for(vari=0,len=temps.length;i<len;i++){
vardiv=newElement('div')
box.adopt(div);
extract_count(div,names[i],totals[i]);
}
/*********************
	** Extract a count
	*********************/
functionextract_count(div,name,prev_count){
varrequest=newRequest({
url:'http://meta.wikimedia.org/wiki/Stewards/confirm/2009/'+encodeURIComponent(name)+'?action=render',
method:'GET',
onSuccess:function(text,xml){
// strip cruft
text=text.replace(/^[\s\S]+?Comments about .+/,'');// statement, etc
text=text.replace(/^<([ou]l) [^>]*class="[^"]*stat-ignore[\s\S]+?<\/1円>/mg,'');// ignore non-comment bullets
text=text.replace(/^<(?:ul|li).+class\s*=\s*"\s*neutral.+/mig,'');// ignore neutrals
// count comments
varcount=text.match(/^<li/mg).length;
// report to user
div.set({
'text':' '+(count<10?' ':'')+count+' '
}).adopt(
newElement('a',{
'href':'http://meta.wikimedia.org/wiki/Stewards/confirm/2009/'+encodeURIComponent(name)+'?action=render',
'text':name
})
);
// highlight those with non-matching counts
if(count!=prev_count)
div.set({'styles':{'background':'#FEE','font-weight':'bold'}});
else
div.set({'styles':{'color':'gray'}});
},
onFailure:function(xhr){
div.set({'text':' '+name+' FAILED: '+xhr.status+' ('+xhr.statusText+')'});
}
}).send();
}
/*********************
	** Add 'sort table' link
	*********************/
box.adopt(
newElement('div').adopt(
newElement('a',{
'href':'javascript:ses_sort_table();',
'text':'sort table'
})
)
);
}
ses_update_stats();
/*********************
** Sort table
*********************/
functionses_sort_table(){
ses_report('\nSorting table and updating date...\n');
/***************
	** Extract rows & data
	***************/
varraw=editbox.value.match(/<!--ses-start-->([\s\S]+?)<!--ses-end-->/i)[1].toString();
raw=raw.match(/{{user[^}]+?}}/g);
varnames=[];
varsorted=[];
varrows={};
varratios={};
varcounts={};
for(vari=0,len=raw.length;i<len;i++){
varname=raw[i].match(/name *= *(.+)/)[1].toString();
varsupports=raw[i].match(/support *= *(.+)/)[1].toString();
varopposes=raw[i].match(/oppose *= *(.+)/)[1].toString();
names.push(name);
counts[name]=supports+opposes;
ratios[name]=supports/(supports+opposes);
rows[name]=raw[i];
}
/***************
	** Sort rows
	***************/
for(vari=0,len=names.length;i<len;i++){
varname=names[i];
varratio=ratios[name];
// insert into sorted position
for(varx=0,slen=sorted.length;x<=slen;x++){
// end of array, just push it in
if(x==slen){
sorted.push(name);
break;
}
// equal but more votes (or sorted first), insert
elseif(ratios[name]==ratios[sorted[x]]){
if(counts[name]>counts[sorted[x]]||(counts[name]==counts[sorted[x]]&&name<sorted[x])){
sorted.splice(x,0,name);
break;
}
}
// higher, insert
elseif(ratios[name]>ratios[sorted[x]]){
sorted.splice(x,0,name);
break;
}
}
}
/*********************
	** Update date
	*********************/
functionget_date(){
// zero pad
functionzero_pad(num){
if(num<10)
num='0'+num;
returnnum;
}
// generate string
vard=newDate();
varstr=d.getUTCFullYear()+'-'+zero_pad(d.getUTCMonth()+1)+'-'+zero_pad(d.getUTCDate())+' '
+zero_pad(d.getUTCHours())+':'+zero_pad(d.getUTCMinutes())+' (UTC)';
returnstr;
}
editbox.value=editbox.value.replace(/(<span id="ses_date">).*?(<\/span>)/,'1ドル'+get_date()+'2ドル');
/***************
	** Update edit box
	***************/
varstr='';
len=sorted.length;
for(vari=0;i<len;i++)
str+=rows[sorted[i]]+'\n';
editbox.value=editbox.value.replace(/(<!--ses-start-->)[\s\S]+?(<!--ses-end-->)/i,'1ドル\n'+str+'2ドル');
document.getElementById('wpSummary').value='updated';
ses_report('Done.');
}

AltStyle によって変換されたページ (->オリジナル) /