Usuari:PereBot/robot copia coordenades
Aparença
Aquest programa és obsolet perquè és d'abans que les coordenades estiguessin a Wikidata |
# -*- coding: utf-8 -*-
# Programa per posar coordenades a partir dels interviquis.
# Intenta descartar primer els articles que no necessiten coordenades (biografies, llistes, etc)
# El programa agafa la plantilla coord dels interviquis.
# Només agafa plantilles coord que tinguin "title" i sempre treu "inline"
# Si hi és, l'agafa d'enwiki.
# Si no hi ha plantilla coord a enwiki, agafa la més llarga (comptant paràmetres).
# Si no ha trobat la plantilla coord en cap interviqui, aleshores expandeix totes
# les plantilles i busca els enllaços geohack al toolserver.
# Aleshores prefereix l'alemanya abans que l'anglesa.
import sys
sys.path.append('C:\pywikipedia')
import wikipedia,catlib
import re
#Torna un conjunt de plantilles que es troben en articles que no necessiten coordenades (principalment biografies)
def plantillesnocoord():
llista = [u'Infotaula de persones', u'Infocaixa persona', u'Infobox Person', ]
llista = llista+[u'Infotaula Personalitat', u'Infotaula Persona', u'Infobox person', u'Infotaula escriptor', u"Director d'orquestra", ]
llista = llista+[u'Fitxa de persona', u'Infotaula de persona', u'Persona', u'Falta foto persona', u'Infotaula personatge', ]
llista = llista+[u'Infobox Football biography 2', u'Futbolista', u'Futbolistes', ]
llista = llista+[u'Infotaula persona', u'Infobox Biografia (pàgina redirigida)', u'Biografia Info (pàgina redirigida)', u'Infobox Biography ', ]
llista = llista+[u'Taula tennista', u'Infotaula escriptor', u'Infotaula artista musical', u'Infobox biografia',]
llista = llista+[u'Compositor cinema', u'Actor', u"Infotaula d'artista", u"Infotaula artista", u"Infobox artista",]
llista = llista+[u'Persona viva', u'Data naixement i edat', u'Data naixement', u'Birth date', u'Data defunció i edat', u'Death date and age', ]
llista = llista+[u'1000 Biografies', ]
llista = llista+[u'Taulaciclista', u'Esportistes', u'Infotaula jugador NBA', ]
llista = llista+[u'Polític', u'Infotaula President', u"Infotaula Monarca", u"Monarca", ]
llista = llista+[u'Infotaula Sants', u'Sant', u'Sants', u'Plantilla:Sant', ]
llista = llista+[u'Infotaula pel·lícula', u'Fitxa de pel·lícula', u'Infobox film', ]
llista = llista+[u'Wikispecies', u'Viquiespècies', u'Clade', ]
llista = llista+[u'Taxocaixa ocell', u'Taxocaixa mamífer', u'Taxocaixa equinoderm', ]
llista = llista+[u'Taxocaixa peix', u'Taxocaixa planta', ]
llista = llista+[u'Llengua', u'Nobots', ]
return set(llista)
#Paraules amb les que comencen categories que tenen les pàgines que no necessiten coordenades (principalment biografies)
#PER FER: SEPARAR LES CATEGORIES ON NO BUSCAR ARTICLES DE LES CATEGORIES ON NO POSAR COORDENADES
def catsnocoord():
cadena = u"Persones|Polítics|Escriptors|Pintors|Dibuixants"
cadena = cadena+u"|Poetes|Dramaturgs|Novel·listes|Autors|Traductors"
cadena = cadena+u"|Escultors|Arquitectes|Músics|Cantants|Ballarins|Actors|Compositors"
cadena = cadena+u"|Artistes|Cuiners|Bandolers"
cadena = cadena+u"|Esportistes|Jugadors|Entrenadors"
cadena = cadena+u"|Futbolistes|Ciclistes|Nedadors|Tennistes|Golfistes|Pilotaires"
cadena = cadena+u"|Medallistes|Campions|Guanyadors"
cadena = cadena+u"|Emperadors|Reis|Ducs|Grans ducs|Comtes|Vescomtes|Virreis|Nobles"
cadena = cadena+u"|Tsars|Electors|Prínceps|Infants|Barons|Diàdocs|Khans|Califes"
cadena = cadena+u"|Reines|Consorts|Emperadrius|Primeres dames"
cadena = cadena+u"|Cònsols|Tribuns|Pretors|Sàtrapes|Faraons|Tirans"
cadena = cadena+u"|Governadors|Senyors|Marcgravis|Majordoms|Sobirans"
cadena = cadena+u"|Exiliats|Militars|Comandants|Militars|Pilots"
cadena = cadena+u"|Socialistes|Comunistes|Feministes|Militants|Feixistes|Nazis"
cadena = cadena+u"|Activistes|Caps d'estat|Presidents|Ministres|Primers ministres"
cadena = cadena+u"|Alcaldes|Consellers|Regidors|Diputats|Senadors"
cadena = cadena+u"|Governants|Diplomàtics|Empresaris|Dirigents"
cadena = cadena+u"|Periodistes|Directors|Advocats|Juristes"
cadena = cadena+u"|Científics|Economistes|Físics|Químics|Matemàtics|Biòlegs"
cadena = cadena+u"|Filòsofs|Filòlegs|Historiadors|Arqueòlegs|Geògrafs|Cartògrafs|Exploradors"
cadena = cadena+u"|Alumnes|Professors|Pedagogs|Mestres"
cadena = cadena+u"|Papes|Religiosos|Bisbes|Monjos|Frares|Abats|Canonges|Sacerdots"
cadena = cadena+u"|Sants|Heretges|Beats|Déus|Herois"
cadena = cadena+u"|Jesuïtes|Benedictins|Dominics"
cadena = cadena+u"|Catalans|Barcelonins|Barcelonesos"
cadena = cadena+u"|Vallesans|Sabadellencs|Terrassencs"
cadena = cadena+u"|Gironins|Selvatans"
cadena = cadena+u"|Valencians|Anglesos|Escocesos|Gal·lesos"
cadena = cadena+u"|Víkings|Alemanys|Bavaresos|Prussians|Suïssos|Novaiorquesos"
cadena = cadena+u"|Andalusins|Àrabs|Algerians|Egipcis"
cadena = cadena+u"|Atenencs|Alexandrins"
cadena = cadena+u"|Imams|Musulmans|Emirs|Sultans|Soldans|Companys"
cadena = cadena+u"|Plats|Quadres|Discs|Cançons|Grups de música"
cadena = cadena+u"|Pel·lícules|Canals de televisió|Programes"
cadena = cadena+u"|Obres literàries|Obres de literatura|Obres teatrals"
cadena = cadena+u"|Llibres|Novel·les|Contes|Personatges|Programari|Videojocs|Consoles"
cadena = cadena+u"|Dominis de primer|Monedes|Himnes|Banderes|Escuts|Tractats"
cadena = cadena+u"|Seleccions|Clubs|Partits|Jocs|Campionat|Condecoracions|Open"
cadena = cadena+u"|Plantilles|Llistes|Articles destacats|Articles bons"
cadena = cadena+u"|Esport|Empreses|Economia|Música|Literatura" #Provisional. Treure quan no calgui.
cadena = cadena+u"|Corona d'Aragó|Sacre Imperi" #Provisional. Treure quan no calgui.
cadena = cadena+u"|Primera Guerra Mundial" #Provisional. Treure quan no calgui.
cadena = cadena+u"|Cerdanya" #Molt provisional. Treure quan no calgui.
return cadena
#Paraules amb les que comencen categories que tenen les pàgines que sí que necessiten coordenades
def catssicoord():
cadena = u"Ciutats|Pobles|Entitats de població|Capitals|Barris"
cadena = cadena+u"|Estats|Províncies|Departaments|Districtes|Cantons|Municipis"
cadena = cadena+u"|Voivodats|Comtats|Comarques|Regions|Perifèries|Prefectures|Parròquies"
cadena = cadena+u"|Bisbats|Arquebisbats"
cadena = cadena+u"|Principats|Baronies|Ducats|Regnes|Marquesats|Taifes|Emirats"
cadena = cadena+u"|Bantustans|Repúbliques|Sultanats"
cadena = cadena+u"|Altiplans|Penínsules|Coves|Planes|Parcs|Reserves"
cadena = cadena+u"|Muntanyes|Volcans|Serralades|Serres|Colls|Valls"
cadena = cadena+u"|Caps|Badies|Golfs|Mars|Illes|Arxipèlags|Platges"
cadena = cadena+u"|Llacs|Glaceres|Estanys|Rius|Corrents d'aigua|Torrents|Rieres"
cadena = cadena+u"|Edificis|Estadis|Pavellons|Teatres|Museus|Restaurants|Hotels"
cadena = cadena+u"|Centres|Universitats|Pous|Preses|Masies|Palaus|Castells"
cadena = cadena+u"|Esglésies|Catedrals|Capelles|Ermites|Santuaris"
cadena = cadena+u"|Mesquites|Temples"
cadena = cadena+u"|Fàbriques|Mines|Centrals"
cadena = cadena+u"|Ports|Aeroports|Carreteres|Estacions|Camins|Canals|Autopistes|Línies"
cadena = cadena+u"|Carrers|Avingudes|Places"
cadena = cadena+u"|Batalles|Setges|Ràtzies|Accidents"
return cadena
# Retorna les categories i articles d'una categoria, subcategories incloses.
# No torna a mirar les categories que ja ha mirat.
# Filtra pels noms de les categories fent servir una expressió regular.
def miracatfiltre(cat,catprevies=[],filtre=u""):
articles=cat.articlesList(recurse=False)
categories=cat.subcategoriesList(recurse=False)
for scat in categories:
print scat
# print u"Títol",scat.title()
if scat not in catprevies:
catprevies.append(scat)
if filtre==u"":
nopassa=False
print u"Filtre desactivat"
else:
nopassa=re.search(filtre,scat.title())
if not nopassa:
print u"Sí que es llegeix", scat
noucats,nouarts=miracatfiltre(scat,catprevies+categories,filtre)
categories=categories+noucats
articles=articles+nouarts
else:
print u"No es llegeix", scat
else:
print u"Aquesta ja la tinc vista"
articles=catlib.unique(articles)
return categories, articles
#Torna els elements d'una llista separats per |
#Útil per convertir una llista en els paràmetres d'una plantilla
def ratlles(llista):
cadena=u""
for el in llista:
cadena=cadena+u"|"+el
return cadena
#Converteix els paràmetres recuperats de l'enllaç geohack
#en els paràmetres de la plantilla coord
def paramaratlles(hack):
hack=hack.replace(u"|Mapa",u"") #Per eliminar aquest fragment que sol sortir a plwiki
if u"_E_" in hack:
dostrossos=re.split(u"_E_",hack)
dostrossos[0]=re.sub(u"_",u"|",dostrossos[0])
params=dostrossos[0]+u"|E|"+dostrossos[1]
elif u"_W_" in hack:
dostrossos=re.split(u"_W_",hack)
dostrossos[0]=re.sub(u"_",u"|",dostrossos[0])
params=dostrossos[0]+u"|W|"+dostrossos[1]
else:
print hack, u"no sembla unes coordenades normals"
return u""
params=params.replace(u"||",u"|")
if params[-1]==u"_" or params[-1]==u"|":
params=params[0:-1]
return params
#Dona l'enllaç a una pàgina en forma d'interviqui
#L'argument és un objecte pàgina
def enllac(pag):
site=pag.site()
llengua=site.lang
titol=pag.title()
return "[[:"+llengua+":"+titol+"]]"
def lawiki(pag):
site=pag.site()
llengua=site.lang
return llengua+"wiki"
# Funció que inserta la plantilla Coord (o un altre text) en una pàgina.
# Mira de posar-la davant de l'ORDENA i si no davant les categories.
# Els arguments són la pàgina i el text a afegir (habitualment la plantilla amb
# el seus paràmetres).
# Retorna el text amb la plantilla (o sense, si no ha trobat on posar-la).
#
def insertacoor(page,afegit):
if page.isRedirectPage():
page=page.getRedirectTarget()
text=page.get()
if re.search(u"\{\{ORDENA",text):
text=re.sub(u"\{\{ORDENA",afegit+u"\n{{ORDENA",text)
print u"Text afegit davant de l'ORDENA"
elif re.search(u"\[\[ ?[Cc]ategoria:",text):
text=re.sub(u"\[\[ ?[Cc]ategoria:",afegit+u"\n[[Categoria:",text,count=1)
print u"Text afegit davant de les categories"
else:
print u"No he trobat on afegir el text a [["+page.title()+u"]]"
return text
#El programa comença aquí
site=wikipedia.getSite('ca')
catbuscar=u"Geografia de Tuvalu" #Posar aquí la categoria que es revisarà
missatge=u"" #u" en el marc del [[Viquiprojecte:Unió Europea]]" #Missatge promocional. Canviar per "" la resta de l'any.
missatgeno=missatge # Missatge promocional per quan posa {{cal coor}}
calcoortxt=u"{{cal coor}}" # canviar quan calgui
categoria = catlib.Category(site,catbuscar)
filtrecats=u"Categoria:("+catsnocoord()+u")"
mirasubcategories=True #False per no mirar subcategories; True per no mirar-les
if mirasubcategories:
cats, asc = miracatfiltre(categoria,filtre=filtrecats)
else:
asc=categoria.articlesList(recurse=False)
comptapotencial=len(asc)
print "Articles a la categoria:",comptapotencial
#asc=asc[100:] #Per fer només un grapat d'articles a la vegada
comptarevisar=len(asc)
enwiki=wikipedia.getSite('en')
dewiki=wikipedia.getSite('de')
plantno=plantillesnocoord()
informeno=""
marcagh=u"//toolserver.org/~geohack/geohack.php"
comptaarticles=0
comptajaentenen=0
comptaposoplant=0
comptaposohack=0
comptanocalenllista=0
comptanocalenplant=0
comptanocalencat=0
comptanoiw=0
comptacalcoor=0
comptacalcoor0=0
for pag in asc:
comptaarticles=comptaarticles+1
print comptaarticles,"/",comptarevisar,":",pag
try:
if pag.isRedirectPage(): #Precaució contra que hi hagi alguna redirecció categoritzada
print u"És una redirecció"
else:
tottemp=pag.templates()
# print tottemp
if u'Coord' in tottemp:
print u"Ja té la plantilla coord"
comptajaentenen=comptajaentenen+1
elif len(plantno&set(tottemp))>0:
print u"No li calen coordenades (biografies, pel·lícules, etc detectades per les plantilles)."
comptanocalenplant=comptanocalenplant+1
elif pag.title().startswith(u"Llista d") or pag.title().startswith(u"Economia d") or pag.title().startswith(u"Toponímia d"):
print u"No li calen coordenades generals. Detectat pel títol (llista, economia...)"
comptanocalenllista=comptanocalenllista+1
# elif len(pag.interwiki())==0: # Anul·lat aquest tros perquè cal posar cal coor als articles sense iw, també.
# print u"No té interviquis"
# comptanoiw=comptanoiw+1
elif marcagh in pag.get(expandtemplates=True):
print u"Ja té coordenades però sense la plantilla coord"
comptajaentenen=comptajaentenen+1
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?("+catsnocoord()+")",pag.get()):
print u"Biografia o similar detectada per les categories"
comptanocalencat=comptanocalencat+1
else:
resumno=enllac(pag)+u"\n"
coordexistent=False
iw=pag.interwiki()
print len(iw), u" interviquis"
# Aquí comença a buscar la plantilla coord als interviquis
coortxt=""
coortxten=""
coortxtde=""
for pagiw in iw:
if pagiw.isRedirectPage():
pagiw=pagiw.getRedirectTarget()
if pagiw.exists():
if not pagiw.isRedirectPage():
if "#" not in pagiw.title():
tottempiw=pagiw.templates()
if u'Coord' in tottempiw:
coordllegible=False
coordexistent=True
print pagiw,u" té la plantilla coord (QUE ES VEGI)"
tottempiwpar=pagiw.templatesWithParams()
for plant in tottempiwpar:
if plant[0]==u'Coord':
parcoord= plant
# print parcoord
plantxt=ratlles(parcoord [1])
plantxt=u"{{coord"+plantxt+u"}}"
plantxt=re.sub(u"\,?inline\,?","",plantxt)
# print plantxt
if "title" in plantxt and re.search(u"[0-9].*\|.*[0-9]",plantxt): #La condició que hi hagi un número és per evitar les plantilles coord amb números àrabs de la viqui en farsi
coordllegible=True
if len(plantxt)>len(coortxt):
coortxt=plantxt
origen=pagiw
if pagiw.site()==enwiki:
coortxten=plantxt
origenen=pagiw
if coordllegible==False:
resumno=resumno+"*"+enllac(pagiw)+u"\n"
else:
print pagiw,u" no té la plantilla coord"
else:
print pagiw,u" és una doble redirecció"
else:
print pagiw,u" no existeix"
if coortxt!="":
print "Més llarga:",coortxt,origen
if coortxten!="":
print "Anglesa:",coortxten,origenen
if coortxt!="":
if coortxten!="":
coortxt=coortxten
origen=origenen
if not "source" in coortxt:
if "type" in coortxt: # PER FER: CONVERTIR AIXÒ EN UNA FUNCIÓ (es repeteix més avall)
coortxt=coortxt.replace("type:","source:"+lawiki(origen)+"_type:")
elif "region" in coortxt:
coortxt=coortxt.replace("region:","source:"+lawiki(origen)+"_region:")
elif "scale" in coortxt:
coortxt=coortxt.replace("scale:","source:"+lawiki(origen)+"_scale:")
elif "dim" in coortxt:
coortxt=coortxt.replace("dim:","source:"+lawiki(origen)+"_dim:")
else:
coortxt=coortxt.replace("}}","|source:"+lawiki(origen)+"}}")
coortxt=re.sub(u"\{\{[Cc]oord\|(\d+)\.(\d+)\|N\|-(\d+)\.(\d+)\|E", r"{{coord|\1.\2|-\3.\4", coortxt)
noutext=insertacoor(pag,coortxt)
noutext=re.sub(u"{{[Cc]al coor.*}}\n?",u"",noutext)
noutext=re.sub(u"\n\n+{{coord",u"\n\n{{coord",noutext)
pag.put(noutext,u"Bot copia coordenades de la plantilla coord de "+enllac(origen)+missatge)
comptaposoplant=comptaposoplant+1
resumno=u""
# Aquí acaba de buscar la plantilla coord als interviquis
# i comença a buscar les coordenades a les plantilles expandides
else:
if coordexistent==True and coordllegible==False: #Mantingut per compatibilitat de versió anterior
## informeno=informeno+resumno+u"\n\n"
print u"Plantilla coord no llegida. Probablement no té display=title"
## resumno=enllac(pag)+u"\n\n"
for pagiw in iw:
if pagiw.isRedirectPage():
pagiw=pagiw.getRedirectTarget()
# print u"Provant",pagiw
if pagiw.exists():
if not pagiw.isRedirectPage():
if "#" not in pagiw.title():
textiw=pagiw.get(expandtemplates=True)
#print textiw
numgh=textiw.count(marcagh)
# print numgh," vegades",marcagh
# print textiw.count(u"toolserver")," vegades",u"toolserver"
# print textiw.count(u"params")," vegades",u"params"
if numgh>0:
print pagiw,u" podria tenir coordenades"
fragments=re.split(u"toolserver",textiw)
fragnet=[]
for el in fragments:
if u"params=" in el:
el=el[0:250]
el=re.sub(u".*geohack\.php.*params\=",u"",el)
el=re.sub(u"<span.*",u"",el)
el=re.sub(u"(\n+.*)+",u"",el)
el=re.sub(u" +.*",u"",el)
el=re.sub(u"&title.*","",el)
el=re.sub(u"&pagename.*","",el)
el=re.sub(u"&lang.*","",el)
el=re.sub(u"\{\{\{.*","",el)
print u"Paràmetres:",el
fragnet.append(el)
if fragnet.count(fragnet[0])==2:
print fragnet[0]," hi surt dos cops"
hihacoord=False
if len(fragnet)==1 or fragnet.count(fragnet[0])==2:
hihacoord=True
plantxt=fragnet[0]
elif fragnet.count(fragnet[1])==2:
hihacoord=True
plantxt=fragnet[1]
else:
print pagiw," té diferents coordenades enllaçades i el programa no sap triar"
resumno=resumno+u"* "+enllac(pagiw)+u" té diferents coordenades enllaçades i el programa no sap triar\n"
if hihacoord:
plantxt=paramaratlles(plantxt)
if len(plantxt)>6:
plantxt=u"{{coord|"+plantxt+u"}}"
print plantxt
if len(plantxt)>len(coortxt):
coortxt=plantxt
origen=pagiw
if pagiw.site()==enwiki:
coortxten=plantxt
origenen=pagiw
if pagiw.site()==dewiki:
coortxtde=plantxt
origende=pagiw
else:
print pagiw,u" no té coordenades enllaçades"
else:
print pagiw,u" és una secció"
else:
print pagiw,u" no existeix"
if coortxt!="":
print "Més llarga:",coortxt,origen
if coortxten!="":
print "Anglesa:",coortxten,origenen
if coortxtde!="":
print "Alemanya:",coortxtde,origende
if coortxt!="":
if coortxten!="":
coortxt=coortxten
origen=origenen
if coortxtde!="":
coortxt=coortxtde
origen=origende
coortxt=coortxt.replace("}}","|display=title}}")
if not "source" in coortxt:
if "type" in coortxt:
coortxt=coortxt.replace("type:","source:"+lawiki(origen)+"_type:")
elif "region" in coortxt:
coortxt=coortxt.replace("region:","source:"+lawiki(origen)+"_region:")
elif "scale" in coortxt:
coortxt=coortxt.replace("scale:","source:"+lawiki(origen)+"_scale:")
elif "dim" in coortxt:
coortxt=coortxt.replace("dim:","source:"+lawiki(origen)+"_dim:")
elif "globe" in coortxt:
coortxt=coortxt.replace("globe:","source:"+lawiki(origen)+"_globe:")
else:
coortxt=coortxt.replace("}}","|source:"+lawiki(origen)+"}}")
coortxt=re.sub(u"\{\{[Cc]oord\|(\d+)\.(\d+)\|N\|-(\d+)\.(\d+)\|E", r"{{coord|\1.\2|-\3.\4", coortxt)
noutext=insertacoor(pag,coortxt)
noutext=re.sub(u"{{[Cc]al coor.*}}\n?",u"",noutext)
noutext=re.sub(u"\n\n+{{coord",u"\n\n{{coord",noutext)
# pagprova=wikipedia.Page(site,u"Usuari:PereBot/taller")
#canviar pagprova per pag a la línia següent per tenir versió funcional
pag.put(noutext,u"Bot copia coordenades de l'enllaç geohack de "+enllac(origen)+missatge)
comptaposohack=comptaposohack+1
resumno=u""
else: # Si no ha pogut posar coordenades
if u"*" in resumno:
informeno=informeno+resumno+u"\n\n"
# Aquí acaba de buscar coordenades a les plantilles expandides.
if re.search(u"{{[Cc]al coor.*}}\n?",pag.get()):
print pag,u"Ja té {{cal coor}}"
comptacalcoor0=comptacalcoor0+1
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?("+catssicoord()+")",pag.get(expandtemplates=True)):
if not re.search(u"("+catssicoord()+")",pag.title()):
print u"Li cal {{cal coor}} a",pag
comptacalcoor=comptacalcoor+1
noutext=insertacoor(pag,calcoortxt)
pag.put(noutext,u"Bot posa "+calcoortxt+missatgeno)
else:
print u"Nom plural. No és clar que li calgui {{cal coor}} a",pag,u"però segurament no"
else:
print u"No és clar que li calgui {{cal coor}} a",pag
except MaxTriesExceededError: #PER FER: QUE AQUESTA EXCEPCIÓ FUNCIONI
print u"MaxTriesExceededError tot tractant",pag
resumestadistic=u"La [[:categoria:"+catbuscar+u"]] (un cop filtrada) té "+'{:}'.format(comptapotencial)+u" articles\n\n"
resumestadistic=resumestadistic+u"Revisats "+'{:}'.format(comptaarticles)+u" articles\n\n"
resumestadistic=resumestadistic+u"Ja tenien coordenades "+'{:}'.format(comptajaentenen)+u" articles\n\n"
#resumestadistic=resumestadistic+u"No tenen interviquis "+'{:}'.format(comptanoiw)+u" articles (que potser els calen les coordenades o potser no)\n\n"
resumestadistic=resumestadistic+u"No els calen coordenades a "+'{:}'.format(comptanocalenllista+comptanocalenplant+comptanocalencat)+u" articles (llistes, persones, films, etc.)\n\n"
resumestadistic=resumestadistic+u"*Detectats pel nom (llistes, etc.): "+'{:}'.format(comptanocalenllista)+u" articles\n\n"
resumestadistic=resumestadistic+u"*Detectats per les plantilles: "+'{:}'.format(comptanocalenplant)+u" articles\n\n"
resumestadistic=resumestadistic+u"*Detectats per les categories: "+'{:}'.format(comptanocalencat)+u" articles\n\n"
resumestadistic=resumestadistic+u"Copiada la plantilla coord a "+'{:}'.format(comptaposoplant)+" articles\n\n"
resumestadistic=resumestadistic+u"Posades coordenades de l'enllaç geohack a "+'{:}'.format(comptaposohack)+u" articles\n\n"
resumestadistic=resumestadistic+u"Total posades coordenades a "+'{:}'.format(comptaposoplant+comptaposohack)+u" articles\n\n"
resumestadistic=resumestadistic+u"Ja tenien cal coor "+'{:}'.format(comptacalcoor0)+u" articles\n\n"
resumestadistic=resumestadistic+u"Posat cal coor a "+'{:}'.format(comptacalcoor)+u" articles\n\n"
queden=comptaarticles-comptajaentenen-comptaposoplant-comptaposohack-(comptanocalenllista+comptanocalenplant+comptanocalencat)
resumestadistic=resumestadistic+u"Queden "+'{:}'.format(queden)+u" articles sense coordenades\n\n" # (comptant els que no tenen iw)\n\n"
resumestadistic=resumestadistic+u"Des quals "+'{:}'.format(comptacalcoor+comptacalcoor0)+u" estan marcats amb cal coor\n\n"
resumestadistic=resumestadistic+u"Hi ha "+'{:}'.format(queden-comptacalcoor-comptacalcoor0)+u" casos dubtosos\n\n"
print resumestadistic
informeno=informeno+u"\n"+resumestadistic
if informeno!=u"":
paginforme=wikipedia.Page(site,u"Usuari:PereBot/coordenades") # Pàgina on deixarà l'informe del que ha fet
informeno=u"\n=="+catbuscar+u"==\n"+informeno+u"\n--~~~~\n\n"
paginforme.put(paginforme.get()+informeno,catbuscar)
wikipedia.stopme()