Usuario:Rizome/A.PROYECTOS/Validador de votantes
Apariencia
Esta subpágina lista los votantes[1] de Wikipedia:Votaciones/2009/Para la asignación de una política oficial para los userboxes y páginas de usuario.
Se realiza el listado para poder, al cierre de la votación, comprobar que todos los votos se efectuaron adecuadamente y cumpliendo las normas de 100 ediciones y 30 días (registrados antes del 3 de octubre de 2009).
Fecha de publicación: 09/07/2011 00:00
- Listado:
- Ezarate [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- RoyFocker [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Cratón [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Niplos [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Vitamine [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Mar del Sur [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Lcsrns [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Emiduronte [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Alpertron [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Diegusjaimes [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Farisori [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Banfield [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Miss Manzana [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Baiji [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Mel 23 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Rastrojo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Oscar_. [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Maragm [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Petronas [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Gigabig [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Poco_a_poco [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Taty2007 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Shalbat [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- XanaG [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Savh [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Lobo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Fedaro [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Escarlati [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ensada [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Eligna [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Marinna [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Edmenb [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Pownerus [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Gustronico [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ecemaml [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Isha [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- GMoyano [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Aleposta [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Bedwyr [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Efegé [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Falerístico [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Er Komandante [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Tikin777 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Flores,Alberto [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Raulshc [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- NaBUru38 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- IrwinSantos [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- ProtoplasmaKid [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- BuenaGente [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Carrousel [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Obelix83 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Roberto Fiadone [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- CASF [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Alhen [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Dorieo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Wikiléptico [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ecelan [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Halfdrag [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Tirithel [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ejemplo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Antur [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ysidoro [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Rickynoram [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Fadesga [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Sergio Andres Segovia [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Leonpolanco [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Wikisilki [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Nachosan [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Racso [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- MotherForker [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Linfocito B [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Rubpe19 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Alfredobi [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Lucien leGrey [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Erick1984 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Zeroth [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Dangelin5 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Miguillen [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Tatvs [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- OboeCrack [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Juan Mayordomo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- DJ Nietzsche [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Siger [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Bucephala [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Mahadeva [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- David Perez [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Furado [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Technopat [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Gilwellian [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Xjmos [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Ggenellina [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Rondador [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Rocalpi [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Jduranboger [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Iulius1973 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Nerêo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Cookie [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Metrónomo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Josetxus [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Amanuense [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Imperator-Kaiser [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- P.o.l.o. [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Irbian [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Kordas [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Sanbec [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Furti [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Dagane [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- AzucenaPop [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Montgomery [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Sayri [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Antón Francho [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Enrique Cordero [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Jkbw [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Góngora [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- AldanaN [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- MadriCR [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Wilfredor [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Augusto664 [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- HMcLuhan [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Dodecaedro [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Txo [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Yeza [disc. · EDIT100 · edit100 · grupos — contr. · stats]
- Moraleh [disc. · EDIT100 · edit100 · grupos — contr. · stats]
UserScript de comprobación
[editar]El siguiente UserScript puede ser usado en esta página con la configuración que se muestra a continuación.
Requisitos:
- Mozilla Firefox (v.3 o posterior)
- GreaseMonkey (complemento para el Firefox)
VERIÓN 2.0
- La versión actual, muestra si un usuario cumple con el requisito de antigüedad —>30 días—.
- También se comprueba la fecha de su primera edición, y su edición número 100.
- Indica si cumple los dos requisitos necesaios para votar —antigüedad y versión nº100—.
- Iré actualizando este userscript. Queda:
- que genere link un link al usuario.
- que indique el grupo del usuario —biblio, reversor, etcétera—.
- cambios menores en la apariencia de los datos mostrados
// ==UserScript== // @name Antigüedad wikipédica // @namespace Wikipedia // @description Probador de antigüedad wikipédica. // @include http://es.wikipedia.org/wiki/Usuario:Rizome/A.PROYECTOS/Validador_de_votantes // ==/UserScript== //xPath var XPFirst = XPathResult.FIRST_ORDERED_NODE_TYPE; var XPList = XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE; function find(xpath,xpres,i) {var ret=document.evaluate(xpath,document,null,xpres,null); return xpres==XPFirst?ret.singleNodeValue:(i?ret.snapshotItem(i):ret); } //GEBI function GEBI(id) {return document.getElementById(id);} //GEBIh function GEBIh(id) {return GEBI(id).innerHTML;} //función que pasa de "wiki-mes" a "JavaScript-mes" function MEStoJS(wiki) {MES=new Array(); switch(wiki) {case 'ene':MES[0]=0;MES[1]='enero';break; case 'feb':MES[0]=1;MES[1]='febrero';break; case 'mar':MES[0]=2;MES[1]='marzo';break; case 'abr':MES[0]=3;MES[1]='abril';break; case 'may':MES[0]=4;MES[1]='mayo';break; case 'jun':MES[0]=5;MES[1]='junio';break; case 'jul':MES[0]=6;MES[1]='julio';break; case 'ago':MES[0]=7;MES[1]='agosto';break; case 'sep':MES[0]=8;MES[1]='septiembre';break; case 'oct':MES[0]=9;MES[1]='octubre';break; case 'nov':MES[0]=10;MES[1]='noviembre';break; case 'dic':MES[0]=11;MES[1]='diciembre';break; } return MES; } //función que pasa de "wiki-fecha" a "JavaScript-fecha" function WIKItoJS(wiki,input_format,output_format) {if(input_format==1) //23:33 14 oct 2009 {FECHA=wiki.split(' '); FECHA=new Array(FECHA[3],MEStoJS(FECHA[2])[(output_format==1?0:1)],FECHA[1],FECHA[0].split(':')[0],FECHA[0].split(':')[1]); } else //30 sep 2009 a las 23:58 {FECHA=wiki.split(' '); FECHA=new Array(FECHA[2],MEStoJS(FECHA[1])[(output_format==1?0:1)],FECHA[0],FECHA[5].split(':')[0],FECHA[5].split(':')[1]); } return (output_format==1)? eval('new Date('+FECHA+')'): //devuelve un OBJETO de fecha FECHA[2]+' de '+FECHA[1]+' de '+FECHA[0]+', a las '+FECHA[3]+':'+FECHA[4]; //devuelve un STRING con la fecha } //AJAX function llamarasincrono(url,container,func) {//CREA EL OBJETO var AJAXobj=false; if (window.XMLHttpRequest) {AJAXobj=new XMLHttpRequest();} else if (window.ActiveXObject) {try {AJAXobj=new ActiveXObject ("Msxml2.XMLHTTP");} catch (e) {try {AJAXobj=new ActiveXObject ("Microsoft.XMLHTTP");} catch (e){} } } else {return false;} //Verifica que una fecha (dada por "string", en formato "input_format"), sea menor que otra puesta como requisito ("date2"), y escribe el resultado en el elemento xHTML marcado por su "id" function verify(id,string,input_format,date2,k) {GEBI(id).innerHTML=WIKItoJS(string,input_format,2); REG_date=WIKItoJS(string,input_format,1); GEBI(id).setAttribute('style',date2>REG_date?'color:'+(k>0?'black':'green')+';':'color:'+(k>0?'orange':'red')+';'); GEBI(id).setAttribute('apto' ,date2>REG_date?1:k.toString()); } //EJECUTA EL CAMBIO CUANDO ESTÁ LISTO EL OBJETO AJAX AJAXobj.onreadystatechange=function() {if(AJAXobj.readyState==4 && (AJAXobj.status==200 || window.location.href.indexOf("http")==-1)) {if(url.indexOf('Listusers')>0) //Obtiene la fecha de registro, y grupos a los que pertenece el usuario [[Especial:Listusers]]. {if(AJAXobj.responseText.indexOf('registrado desde el ')<0) //algunos usuarios no indican su fecha de registro (ej:Eric), esto es porque son muy antíguos. {GEBI('res_'+container).innerHTML='''usuario veterano'''; GEBI('res_'+container).setAttribute('apto','1'); GEBI('res_'+container).setAttribute('style','color:green'); } else {fecha=AJAXobj.responseText.split('registrado desde el ')[1].split(')')[0]; verify('res_'+container, fecha,2, REQ_date,0); } } else //Obtiene la lista de contribuciones del usuario, y la guarda en un <div id="tmp"> {GEBI('tmp_'+container).firstChild.innerHTML=AJAXobj.responseText; EDITS=document.evaluate('//div[@id="bodyContent"]//td[@id="tmp_'+container+'"]//div[@id="bodyContent"]//ul/li',document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); //Obtiene la primera edición if(EDITS.snapshotLength>0) {fecha=EDITS.snapshotItem(EDITS.snapshotLength-1).firstChild.innerHTML verify('ed1_'+container, fecha,1, REQ_date,0.5); } //Obtiene la edición nº100 if(EDITS.snapshotLength==100) {fecha=EDITS.snapshotItem(0).firstChild.innerHTML verify('ed100_'+container, fecha,1, PUB_date,0); } else {GEBI('ed100_'+container).innerHTML=EDITS.snapshotLength>0?'El usuario tiene '+EDITS.snapshotLength+' ediciones':'no tiene ediciones'; GEBI('ed100_'+container).setAttribute('style','color:red'); } //Llegado al final, hace las comprobaciones ('apto'). Si todas están "apro=1", el usuario podrá votar. result=eval(GEBI('res_'+container).getAttribute('apto')+'*'+GEBI('ed1_'+container).getAttribute('apto')+'*'+GEBI('ed100_'+container).getAttribute('apto')); GEBI('tmp_'+container).innerHTML=(result>0?(result>0.5?'<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Yes_check.svg/16px-Yes_check.svg.png" width="16" /> Sí':'<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/Olive_green_check.svg/600px-Olive_green_check.svg.png" width="16" /> -'):'<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/X_mark.svg/16px-X_mark.svg.png" width="16" /> NO'); } func(); } } //Realiza la petición AJAXobj.open('GET',url,true); AJAXobj.send (null); } //Llama a las sucesivas verificaciones. function next(i) { if(i<OLm.length){llamarasincrono('http://es.wikipedia.org/w/index.php?title=Especial:Listusers&limit=1&username='+OLm[i],i, function() {llamarasincrono('http://es.wikipedia.org/w/index.php?title=Especial:Contribuciones&dir=prev&limit=100&target='+OLm[i],i,function(){next(i+1)})} ); } } var PUB_date; //Fecha de publicación de la votación. var REQ_date; //Fecha ante la cual se requiere ya estar registrado. var REQ_time=30*24*60*60*1000; //Milisegundos antes del inicio de la votación, que se requieren como requisito de antigüedad. //funcionPrincipal function funcionPrincipal() {OL='<table class="wikitable"><tr><td>#</td><td>user:</td><td>registrado el:</td><td>edición nº1 el:</td><td>edición nº100 el:</td><td></td></tr>'; OLm=new Array(); LI=find('//div[@id="bodyContent"]//div[@id="listado"]/ol/li/span',XPList,false); for(i=0;i<LI.snapshotLength;i++) {OLm[i]=LI.snapshotItem(i).firstChild.innerHTML; OL+='<tr><td>'+(i+1)+'</td><td>'+OLm[i]+'</td><td id="res_'+i+'"></td><td id="ed1_'+i+'"></td><td id="ed100_'+i+'"></td><td id="tmp_'+i+'"><div style="display:none;">'+i+'</div></td></tr>'; } OL+='</table>'; find('//div[@id="bodyContent"]//div[@id="listado"]/ol',XPFirst,false).innerHTML=OL; PUB_date=GEBI('publicado').innerHTML; PUB_date=new Date(PUB_date.split('/')[2].split(' ')[0],parseFloat(PUB_date.split('/')[1])-1,PUB_date.split('/')[0],PUB_date.split(' ')[1].split(':')[0],PUB_date.split(' ')[1].split(':')[1]); REQ_date=new Date().setTime(PUB_date.getTime()-REQ_time); next(0); } // Ordena ejecutar la funcion principal, cuando se ha cargado toda la pagina window.addEventListener('DOMContentLoaded', funcionPrincipal, false); if (document.body) funcionPrincipal();