# -*- coding: utf-8 -*-
# A partir d'una llista de consultes Autolist posa les
# plantilles Autoritat, Bases de dades taxonòmiques, Commonscat i Cal coor
# si a Wikidata hi ha dades per omplir-les.
# Si hi ha plantilla Commons la canvia per la Projectes germans i hi incorpora
# els enllaços a Viquiespècies i Viquidites (trets de les seves plantilles).
# Treu les plantilles i categories de manca de fotos si hi ha una imatge a
# Wikidata i a l'article una infotaula que la fa servir.
import sys
sys.path.append('C:\core')
import pywikibot
from pywikibot import pagegenerators
from pywikibot.compat import catlib
import re,urllib,urllib2
def plant(tit):
return pywikibot.Page(site,u"Plantilla:{}".format(tit))
# Actualitza informe
def putinforme(pag,text0,afegit,sumari,signa=False):
contingut=text0+afegit
if signa:
contingut=contingut+u"\n--~~~~\n"
try:
pag.put(contingut,sumari)
except articleexists:
res=pag.get()
pag.put(contingut,sumari)
return
# Mou la plantilla orfe al final
def mouorfe(text):
noutext=text
principi=text[0:100]
sumari=u""
if re.search(u"\{\{[Oo]rfe ?\}\}",principi):
text=re.sub(u"\{\{[Oo]rfe ?\}\}\n?","",text)
noutext=insertaorfe(text,u"{{Orfe}}")
if noutext!=text:
sumari=u"Robot mou {{Orfe}} al final"
trossos=re.split(u"\n",principi)
textplant=u""
for tros in trossos:
if re.search(u"\{\{[Oo]rfe ?\| ?data=.*\}\}",tros):
textplant=re.sub(u".*(\{\{[Oo]rfe ?\| ?data=.*\}\}).*\n?",r"\1",tros)
if textplant!=u"":
print textplant
if textplant!=u"":
text=text.replace(textplant+u"\n",u"")
text=text.replace(textplant,u"")
noutext=insertaorfe(text,textplant)
if noutext!=text:
sumari=u"Robot mou "+textplant+" al final"
else:
sumari=u""
return noutext,sumari
# Endreça una mica les plantilles.
# PER FER: FER QUE POSI BÉ LES PLANTILLES QUE HAGIN QUEDAT ABANS D'ENLLAÇOS EXTERNS
def poleix(text):
for i in range(1,10):
text=text.replace(u"\n\n{{Autoritat}}",u"\n{{Autoritat}}")
text=text.replace(u"\n\n\n{{Bases de dades taxonòmiques}}",u"\n\n{{Bases de dades taxonòmiques}}")
text=text.replace(u"\n\n{{Commonscat",u"\n{{Commonscat")
text=text.replace(u"\n\n{{Projectes germans",u"\n{{Projectes germans")
text=re.sub(u"(\{\{ORDENA\:.*\}\}|\{\{Enllaç A[BD]\|.*\}\})\n*(\{\{Bases de dades taxonòmiques\}\}|\{\{Autoritat\}\})",ur"\2\n\1",text)
text=re.sub(u"(\{\{[Cc]al coor\}\}|\{\{[Cc]al coor\|.*?\}\})\n*(\{\{Bases de dades taxonòmiques\}\}|\{\{Autoritat\}\})",ur"\2\n\1",text)
text=re.sub(u"(\[\[ ?[Cc]ategoria ?\:.*\|?.*?\]\])\n*(\{\{Bases de dades taxonòmiques\}\}|\{\{Autoritat\}\})",ur"\2\n\1",text)
text=text.replace(u"\n\n\n{{ORDENA",u"\n\n{{ORDENA")
text=text.replace(u"{{Autoritat}}\n{{ORDENA",u"{{Autoritat}}\n\n{{ORDENA")
text=text.replace(u"{{Autoritat}}\n[[Categoria:",u"{{Autoritat}}\n\n[[Categoria:")
text=text.replace(u"{{Bases de dades taxonòmiques}}\n{{ORDENA",u"{{Bases de dades taxonòmiques}}\n\n{{ORDENA")
text=text.replace(u"{{Bases de dades taxonòmiques}}\n[[Categoria:",u"{{Bases de dades taxonòmiques}}\n\n[[Categoria:")
text=re.sub(u"\{\{ ?citar web ?\|",u"{{ref-web|",text)
return text
# A partir d'un item de Wikidata retorna:
# el títol de l'article, la categoria de Commons (o u""
# si no n'hi ha), el nombre de registres d'autoritat i el
# nombre de bases de dades taxonòmiques.
def iwcaccataut(data):
try:
iw=u""
ccat=u""
aut=0
tax=0
coor=False
extraterrestre=False
cont= data.get()
#print cont
im=False
iws=cont[u'sitelinks']
#print u"INTERWIKIS:",iws
iw=iws[u'cawiki']#[u'name']
claims=cont[u'claims']
#print u"CLAIMS:",claims
for clau in claims.keys():
claim=claims[clau]
num=int(clau[1:])
#print u"CLAU:",num
if num==373:
#print claim
#print claim[0].getTarget()
ccat=claim[0].getTarget()
if ccat==None:
ccat=u""
if num in [1273, 214, 244, 213, 496, 227, 906, 269, 268, 950, 651, 1015, 245, 902, 886, 434, 549, 409, 349, 1048, 691, 640, 947, 396, 402, 1296, 345,]:
aut=aut+1
if num in [1348, 2036, 687, 838, 1939, 830, 1895, 938, 1747, 846, 1421, 1391, 815, 627, 959, 962, 685, 842, 1070, 2040, 1772, 1745, 850,]:
tax=tax+1
if num==625:
coor=True
if num==18:
im=True
if num==376:
if claim[0].getTarget()<>pywikibot.ItemPage(sitedata,"Q2"):
print "cos extraterrestre"
extraterrestre=True
if extraterrestre==True:
coor=False
except IndexError:
print u"Error: paràmetre sense contingut a wikidata"
ccat=u""
except pywikibot.NoPage:
print u"Error: no hi ha pàgina a wikidata"
#except pywikibot.MaxTriesExceededError:
# print u"Error: Temps excedit"
except NotImplementedError:
print u"Error: dada amb unitats a Wikidata"
except urllib2.HTTPError:
print u"Error HTTP (no deu funcionar el web)"
except TypeError:
print "TypeError: no hi deu haver interviquis"
print iw,ccat,aut,tax,coor,im
return iw,ccat,aut,tax,coor,im
# Funció que insereix 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(text,afegit):
principi=text[0:100]
if re.search(u"\{\{[Cc]al foto",text) and not re.search(u"Foto *= *\n* *\{\{[Cc]al foto",text) and not re.search(u"\{\{[Cc]al foto",principi):
text=re.sub(u"\{\{[Cc]al foto",afegit+u"\n{{Cal foto",text,count=1)
print afegit,u"davant de la plantilla cal foto"
elif re.search(u"\{\{[Ee]sborrany",text):
text=re.sub(u"\{\{[Ee]sborrany",afegit+u"\n{{Esborrany",text,count=1)
print afegit,u"afegit davant de la plantilla esborrany"
elif re.search(u"\{\{ORDENA",text):
text=re.sub(u"\{\{ORDENA",afegit+u"\n{{ORDENA",text)
print afegit,u"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 afegit,u"afegit davant de les categories"
else:
print u"No he trobat on afegir el text a [["+afegit
return text
# Funció que insereix la plantilla Orfe (o un altre text) en una pàgina.
# Els arguments són el text de 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 insertaorfe(text,afegit):
if re.search(u"\{\{[Ee]sborrany",text):
text=re.sub(u"\{\{[Ee]sborrany",afegit+u"\n{{Esborrany",text,count=1)
print u"Text afegit davant de la plantilla esborrany"
elif re.search(u"\{\{[Cc]al coor",text):
text=re.sub(u"\{\{[Cc]al coor",afegit+u"\n{{Cal coor",text,count=1)
print u"Text afegit davant de la plantilla cal coor"
elif re.search(u"\{\{[Cc]al foto",text) and not re.search(u"Foto *= *\n* *\{\{[Cc]al foto",text):
text=re.sub(u"\{\{[Cc]al foto",afegit+u"\n{{Cal foto",text,count=1)
print u"Text afegit davant de la plantilla cal foto"
elif re.search(u"\{\{(ORDENA|DEFAULTSORT)",text):
text=re.sub(u"\{\{(ORDENA|DEFAULTSORT)",afegit+u"\n{{ORDENA",text,count=1)
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 [["+afegit
return text
# Funció que insereix la plantilla Bases de dades taxonòmiques.
# Retorna el text amb la plantilla (o sense, si no ha trobat on posar-la).
# L'argument és el text i no l'objecte pàgina.
#
def insertatax(text,afegit):
if re.search(u"\{\{ ?[Aa]utoritat",text):
text=re.sub(u"\{\{ ?[Aa]utoritat",afegit+u"\n{{Autoritat",text)
print u"Text afegit davant de la plantilla Autoritat"
elif re.search(u"\{\{(ORDENA|DEFAULTSORT)",text):
text=re.sub(u"\{\{(ORDENA|DEFAULTSORT)",afegit+u"\n\n{{ORDENA",text,count=1)
print u"Text afegit davant de l'ORDENA"
elif re.search(u"\{\{[Ee]nllaç AD",text):
text=re.sub(u"\{\{[Ee]nllaç AD",afegit+u"\n{{Enllaç AD",text,count=1)
print u"Text afegit davant de la plantilla Enllaç AD"
elif re.search(u"\{\{[Ee]nllaç AB",text):
text=re.sub(u"\{\{[Ee]nllaç AB",afegit+u"\n{{Enllaç AB",text,count=1)
print u"Text afegit davant de la plantilla Enllaç AB"
elif re.search(u"\[\[ ?[Cc]ategor(ia|y) ?:",text):
text=re.sub(u"\[\[ ?[Cc]ategor(ia|y) ?:",afegit+u"\n\n[[Categoria:",text,count=1)
print u"Text afegit davant de les categories"
elif re.search(u"\{\{[Ee]sborrany",text):
text=re.sub(u"\{\{[Ee]sborrany",afegit+u"\n{{Esborrany",text,count=1)
print u"Text afegit davant de la plantilla esborrany"
else:
print u"No he trobat on afegir el text "+afegit
return text
# Funció que insereix la plantilla Commonscat (o un altre text) en una pàgina.
# Mira de posar-la davant de la plantilla Viquiespècies i si no hi és va buscant
# més llocs fins que al final la posa davant de les categories.
# Els arguments són el text de la pàgina i el text a afegir (habitualment la plantilla amb
# el seu paràmetre.
# Retorna el text amb la plantilla (o sense, si no ha trobat on posar-la).
# L'argument és el text i no l'objecte pàgina.
#
def insertaccattxt(text,afegit,espai=0):
if re.search(u"\{\{([Vv]iquiespècies|[Ww]ikispecies)",text):
text=re.sub(u"\{\{([Vv]iquiespècies|[Ww]ikispecies)",afegit+u"\n{{Viquiespècies",text)
print afegit,u"afegit davant de la plantilla Viquiespècies"
elif re.search(u"== ?Enllaços externs ?==",text): # PER FER: POSAR LA PLANTILLA ABANS DE VIQUIDITES, VIQUITEXTS, VIQUILLIBRES O VIQUINOTÍCIES, COM A PRIMERA OPCIÓ
text=re.sub(u"(===? ?Enllaços externs ?===?)",u"== Enllaços externs ==\n"+afegit,text,count=1)
print afegit,u"afegit a la secció Enllaços externs"
elif re.search(u"== ?Enllaços ?==",text):
text=re.sub(u"(== ?Enllaços ?==)",u"== Enllaços externs ==\n"+afegit,text,count=1)
print afegit,u"afegit a la secció Enllaços (externs)"
elif re.search(u"== ?Bibliograf[ií]a ?==",text):
text=re.sub(u"== ?Bibliograf[ií]a ?==",u"== Bibliografia ==\n"+afegit,text,count=1)
print afegit,u"afegit a la secció Bibliograf[ií]a"
elif re.search(u"== ?Refer[eè]ncies ?==",text):
text=re.sub(u"== ?Refer[eè]ncies ?==",u"== Referències ==\n"+afegit,text,count=1)
print afegit,u"afegit a la secció Referències"
elif re.search(u"\{\{[Ee]sborrany",text):
text=re.sub(u"\{\{[Ee]sborrany",afegit+u"\n{{Esborrany",text,count=1)
print afegit,u"afegit davant de la plantilla esborrany"
elif espai==14:
text=afegit+u"\n"+text
print afegit,u"afegit al principi (en categoria)"
elif re.search(u"\{\{(ORDENA|DEFAULTSORT)",text):
text=re.sub(u"\{\{(ORDENA|DEFAULTSORT)",afegit+u"\n\n{{ORDENA",text,count=1)
print afegit,u"afegit davant de l'ORDENA"
elif re.search(u"\[\[ ?[Cc]ategoria ?:",text):
text=re.sub(u"\[\[ ?[Cc]ategoria ?:",afegit+u"\n\n[[Categoria:",text,count=1)
print afegit,u"afegit davant de les categories"
elif re.search(u"\{\{[Dd]esambiguació\}\}",text):
text=re.sub(u"\{\{[Dd]esambiguació\}\}",u"{{Desambiguació}}\n"+afegit,text)
print afegit,u"afegit darrera plantilla de desambiguació"
elif re.search(u"\{\{[Bb]iografies\}\}",text):
text=re.sub(u"\{\{[Bb]iografies\}\}",u"{{Biografies}}\n"+afegit,text)
print afegit,u"afegit darrera plantilla de biografies"
elif re.search(u"\{\{([Bb]iografies|[Dd]esambig|[Aa]crònim|[Oo]nomàstica)",text):
if u"}}\n*" in text:
text=text.replace(u"}}\n*",u"}}\n"+afegit+u"\n*",1)
print afegit,u"afegit davant del primer asterisc"
elif u"}}\n\n*" in text:
text=text.replace(u"}}\n\n*",u"}}\n"+afegit+u"\n*",1)
print afegit,u"afegit davant del primer asterisc"
else:
text=text+u"\n"+afegit
print afegit,u"afegit al final en pàgina de desambiguació"
else:
print u"No he trobat on afegir el text "+afegit
return text
# Funció que insereix la plantilla Autoritat (o un altre text) en una pàgina.
# Mira de posar-la davant de la plantilla Esborrarny o 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).
# És una adaptació de la del programa ccat monuments (l'argument és l'objecte pàgina i no el text).
#
def insertaut(page,afegit):
if page.isRedirectPage():
page=page.getRedirectTarget()
text=page.get()
if re.search(u"\{\{ ?[Bb]ases de dades taxonòmiques",text):
text=re.sub(u"\{\{ ?[Bb]ases de dades taxonòmiques",afegit+u"\n{{Bases de dades taxonòmiques",text)
print afegit,u"afegit davant de la plantilla Bases de dades taxonòmiques"
elif re.search(u"\{\{[Ee]sborrany",text):
text=re.sub(u"\{\{[Ee]sborrany",afegit+u"\n{{Esborrany",text,count=1)
print afegit,u"afegit davant de la plantilla esborrany"
elif re.search(u"\{\{1000 Biografies",text):
text=re.sub(u"\{\{1000 Biografies",afegit+u"\n{{1000 Biografies",text,count=1)
print afegit,u"afegit davant de la plantilla 1000 Biografies"
elif re.search(u"\{\{[Ee]nllaç AD",text):
text=re.sub(u"\{\{[Ee]nllaç AD",afegit+u"\n{{Enllaç AD",text,count=1)
print afegit,u"afegit davant de la plantilla Enllaç AD"
elif re.search(u"\{\{[Ee]nllaç AB",text):
text=re.sub(u"\{\{[Ee]nllaç AB",afegit+u"\n{{Enllaç AB",text,count=1)
print afegit,u"afegit davant de la plantilla Enllaç AB"
elif re.search(u"\{\{(ORDENA|DEFAULTSORT)",text):
text=re.sub(u"\{\{(ORDENA|DEFAULTSORT)",afegit+u"\n\n{{ORDENA",text,count=1)
print afegit,u"afegit davant de l'ORDENA"
elif re.search(u"\[\[ ?[Cc]ategoria ?:",text):
text=re.sub(u"\[\[ ?[Cc]ategoria ?:",afegit+u"\n\n[[Categoria:",text,count=1)
print afegit,u"afegit davant de les categories"
else:
print u"No he trobat on afegir el text a [["+page.title()+u"]]"
return text
def posaplantilles(urlautolist):
paginforme=pywikibot.Page(site,u"Usuari:PereBot/ordena posat per bot")
pllista=urllib.urlopen(urlautolist)
print "obert"
informeordena=False # True per que el programa faci una llista dels articles amb ORDENA posats per bot
sumariaut=u"Robot insereix {{Autoritat}}"
if informeordena:
capinforme=u"\n==Pàgines amb ORDENA posat per bot==\n\n"
cosinforme=u""
if paginforme.exists():
textinforme0=paginforme.get()
else:
textinforme0=u""
cblocinforme=0
sumarinforme=u"Robot llistant pàgines amb <!--ORDENA generat per bot-->"
recalfoto=u"\{\{[Cc]al foto (cat|Alt Camp|muntanya Alt Camp|Alt Empordà|masia Alt Empordà|muntanya Alt Empordà|"
recalfoto=recalfoto+u"Alt Penedès|muntanya Alt Penedès|Alt Urgell|muntanya Alt Urgell|Alta Ribagorça|Amèrica|and|Anoia|Aragó|"
recalfoto=recalfoto+u"Bages|Baix Camp|Baix Ebre|Baix Empordà|Baix Llobregat|Baix Penedès|bal|bcn|Barcelonès|Berguedà|"
recalfoto=recalfoto+u"Baixa Cerdanya|collada solsonès|geo|roca de Montserrat|Solsonès|Castellar de la Ribera|"
recalfoto=recalfoto+u"muntanya Castellar de la Ribera||cat nord|Cerdanyola del Vallès|Clariana de Cardener|comaipedra|"
recalfoto=recalfoto+u"Conca de Barberà|Fenolleda|font Pallars Jussà|franja|Garraf|Garrigues|Garrotxa|Gironès|Guixers|Lladurs|"
recalfoto=recalfoto+u"Llobera|Maresme|metro bcn|Moianès|la Molsosa|Montsià|muntanya Alta Ribagorça|muntanya Anoia|muntanya Bages|"
recalfoto=recalfoto+u"muntanya Baix Camp|muntanya Baix Ebre|muntanya Baix Empordà|muntanya Baix Llobregat|muntanya Baix Penedès|"
recalfoto=recalfoto+u"muntanya Barcelonès|muntanya Berguedà|muntanya cat|muntanya Cerdanya|muntanya de la Coma i la Pedra|"
recalfoto=recalfoto+u"muntanya Conca de Barberà|muntanya Clariana de Cardener|"
recalfoto=recalfoto+u"muntanya Garraf|muntanya Garrigues|muntanya Garrotxa|muntanya Gironès|muntanya Guixers|muntanya lladurs|"
recalfoto=recalfoto+u"muntanya Llobera|muntanya Maresme|muntanya Montsià|muntanya Navès|muntanya Noguera|muntanya d'Odèn|"
recalfoto=recalfoto+u"muntanya Olius|muntanya Osona|muntanya Pallars Jussà|muntanya Pallars Sobirà|muntanya Pinell de Solsonès|"
recalfoto=recalfoto+u"muntanya Pinós|muntanya Pla de l'Estany|muntanya Pla d'Urgell|muntanya Priorat|muntanya Ribera d'Ebre|"
recalfoto=recalfoto+u"muntanya Riner|muntanya Segarra|muntanya Selva|muntanya solso|muntanya Terra Alta|muntanya Vallès Oriental|"
recalfoto=recalfoto+u"Navès|Noguera|Odèn|Olius|Osona|Pla de l'Estany|val|Pallars Jussà|Pallars Sobirà|pinellsolso|Pinós|Pla d'Urgell|"
recalfoto=recalfoto+u"Priorat|Ribera d'Ebre|riner|muntanya Ripollès|Ripollès|Sabadell|Sant Cugat del Vallès|Segarra|Segrià|"
recalfoto=recalfoto+u"muntanya Segrià|Selva|serra Castellar de la Ribera|serra Clariana de Cardener|serra la Coma i la Pedra|"
recalfoto=recalfoto+u"serra de Guixers|serra lladurs|serra llobera|serra de la Molsosa|serra navès|serra odèn|serra olius|"
recalfoto=recalfoto+u"serra Pinell de Solsonès|serra de Pinós|serra de Riner|Solsona|"
recalfoto=recalfoto+u"muntanya Tarragonès|Tarragonès|Terra Alta|Terrassa|muntanya Urgell|Urgell|València|muntanya Vall d'Aran|"
recalfoto=recalfoto+u"Vall d'Aran|Vallès Occidental|muntanya Vallès Occidental|Vallès Oriental)\}\}"
#print recalfoto
n=1
linia=u"alguna cosa"
#Bucle per saltar-se els primers
#Posar comptador<0 per evitar-lo
comptador=0
comptabloc=0
comptablanc=0
while linia!="" and comptador<0:#####
linia=pllista.readline()
comptador=comptador+1
comptabloc=comptabloc+1
if comptabloc>99:
print comptador,linia
comptabloc=0
if comptador>1:
print u"Saltats",comptador,u"elements"
n=comptador
while comptablanc<12:
try:
linia=pllista.readline()
if linia=="":
print comptablanc,u"línia en blanc"
comptablanc=comptablanc+1
continue
#linia="Q49855" #prova rave
except:
print u"Error en llegir la línia"
pllista=urllib.urlopen(urlautolist)
print u"Llista tornada a obrir i reiniciada"
comptador=0
comptabloc=0
while linia!="" and comptador<n+1:
linia=pllista.readline()
comptador=comptador+1
comptabloc=comptabloc+1
if comptabloc>99:
print comptador,linia
comptabloc=0
comptablanc=0
if len(linia)==0 or linia[0]<>"Q":
print linia,u"no és un element de Wikidata"
continue
linia=linia.replace(u"\n",u"")
n=n+1
print n,linia
try:
pagdata=pywikibot.ItemPage(sitedata,linia)
artca,ccat,aut,tax,coor,imatge=iwcaccataut(pagdata)
#print artca,u",",ccat
if re.match(u"Especial:",artca):
print u"Pàgina especial. Ho deixem córrer."
continue
if len(artca)==0:
print u"Article sense nom conegut. Ho deixem córrer."
continue
pag=pywikibot.Page(site,artca)
if pag.namespace()==10:
print u"Plantilla. No editar."
continue
textvell=pag.get()
plantilles=pag.templates()
sumari=u""
germans=False
# Endreçar plantilles abans de començar
text,sumari=mouorfe(textvell)
# Comença la part de posar plantilla Autoritat
if pag.namespace()!=14 and ((not plant(u'Autoritat') in plantilles) and (not plant(u"Registre d'autoritats") in plantilles) and (not plant(u"Authority control") in plantilles)) and aut>0:
textnou=insertaut(pag,u"{{Autoritat}}")
sumari=sumariaut
else:
#print u"O ja hi ha la plantilla Autoritat o no hi ha cap autoritat a Wikidata"
textnou=textvell
# Comença a posar plantilla Projectes germans en comptes de Commons
plantarticle=plantilles
posagermans=False
if ccat!="" and not (plant(u'Commonscat') in plantarticle or plant(u'Commons cat') in plantarticle or plant(u'Projectes germans') in plantarticle or plant(u'Commons category') in plantarticle or plant(u'Commonscat-inline') in plantarticle or plant(u'Commons cat') in plantarticle or plant(u'Wikimedia') in plantarticle or plant(u'Sisterlinks') in plantarticle) and plant(u'Commons') in plantarticle:
posagermans=True
elif plant(u'Commons') in plantarticle and (re.search(u"\{\{ ?([Vv]iquiespècies|[Ww]ikispecies) ?\| ?",textnou) or re.search(u"\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote)",textnou)):
posagermans=True
if re.search(u"\{\{ ?[Pp]rojectes germans",textnou):
posagermans=False
if posagermans==True:
textnou=re.sub(u"\{\{ ?[Cc]ommons ?\|",u"{{Projectes germans|commons=",textnou)
textnou=re.sub(u"\{\{ ?[Cc]ommons ?\}\}",u"{{Projectes germans|commons="+pag.title()+u"}}",textnou)
if sumari!=u"":
sumari=sumari+u" i "
else:
sumari=u"Robot insereix "
if ccat!="":
sumari=sumari+u"{{Projectes germans}} que enllaça amb [[commons:category:"+ccat+u"]]"
else:
sumari=sumari+u"{{Projectes germans}} que enllaça amb galeria de Commons"
# Comença a posar plantilla Commonscat
if re.search(u"\{\{Projectes germans\|commons\= ?[Cc]ategory\:",textnou):
textnou=re.sub(u"\{\{Projectes germans\|commons\= ?[Cc]ategory\:",u"{{Projectes germans|commonscat=",textnou)
print u"Eliminat commons=category:"
elif ccat!="" and not (plant(u'Commonscat') in plantarticle or plant(u'Commons cat') in plantarticle or plant(u'Projectes germans') in plantarticle or plant(u'Commons category') in plantarticle or plant(u'Commons') in plantarticle or plant(u'Commonscat-inline') in plantarticle or plant(u'Commons cat') in plantarticle or plant(u'Wikimedia') in plantarticle or plant(u'Sisterlinks') in plantarticle):
textnou=insertaccattxt(textnou,u"{{Commonscat}}",espai=pag.namespace())
if sumari!=u"":
sumari=sumari+u" i "
else:
sumari="Robot insereix "
sumari=sumari+u"{{Commonscat}} que enllaça amb [[commons:category:"+ccat+u"]]"
# Comença a posar plantilla Projectes Germans en comptes de Commonscat
plantarticle=plantilles
posagermans=False
hihaspecies=re.search(u"\{\{ ?([Vv]iquiespècies|[Ww]ikispecies) ?\| ?",textnou)
hihadites=re.search(u"\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote)",textnou)
hihacommonscat=re.search(u"\{\{ ?[Cc]ommons ?cat",textnou)
if hihacommonscat and hihadites:
if re.search(u"\{\{ ?[Qq]uote box",textnou):
textnou=re.sub(u"\{\{ ?[Qq]uote[_ ]box",u"{{Caixa de citació",textnou)
print u"Reanomenada plantilla Quote box"
hihadites=re.search(u"\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote)",textnou)
if hihacommonscat and (hihaspecies or hihadites):
posagermans=True
if re.search(u"\{\{ ?[Pp]rojectes germans",textnou):
posagermans=False
if posagermans==True:
textnou=re.sub(u"\{\{ ?[Cc]ommons ?category",u"{{Commonscat",textnou)
textnou=re.sub(u"\{\{ ?[Cc]ommons ?cat ?\|",u"{{Projectes germans|commonscat=",textnou)
textnou=re.sub(u"\{\{ ?[Cc]ommons ?cat ?\}\}",u"{{Projectes germans}}",textnou)
if sumari!=u"":
sumari=sumari+u" i "
else:
sumari=u"Robot insereix "
sumari=sumari+u"{{Projectes germans}} que enllaça amb categoria de Commons"
# Comença la part d'incorporar Viquiespècies a Projectes germans
if u"{{Projectes germans" in textnou:
if re.search(u"\{\{ ?([Vv]iquiespècies|[Ww]ikispecies)",textnou):
paramspecies=u""
tplantspecies=re.findall(u"(\{\{\ ?([Vv]iquiespècies|[Ww]ikispecies) ?\|.*\}\})",textnou)
if tplantspecies==[]:
tplantspecies=re.findall(u"(\{\{\ ?([Vv]iquiespècies|[Ww]ikispecies) ?\|?.*\}\})",textnou)
paramspecies=pag.title()
print u"Paràmetre per defecte"
try:
plantspecies=tplantspecies[0][0]
except IndexError:
print "Plantilla Viquiespècies no trobada; ho deixem córrer"
continue
print tplantspecies
print plantspecies
if paramspecies==u"":
paramspecies=re.sub(u"\{\{ ?([Vv]iquiespècies|[Ww]ikispecies) ?\| ?",u"",plantspecies)
paramspecies=re.sub(u"\|.*",u"",paramspecies)
paramspecies=re.sub(u" ?\}\}",u"",paramspecies)
print paramspecies
textnou=re.sub(u"\{\{ ?[Pp]rojectes germans",u"{{Projectes germans|Viquiespècies="+paramspecies,textnou)
textnou=textnou.replace(plantspecies,u"")
if sumari!=u"":
if "Projectes germans" in sumari:
sumari=sumari+u" i amb [[species:"+paramspecies+u"]]"
else:
sumari=sumari+u" i incorpora a {{Projectes germans}} enllaç a [[species:"+paramspecies+u"]]"
else:
sumari=u"Robot incorpora a {{Projectes germans}} enllaç a [[species:"+paramspecies+u"]]"
# Comença la part d'incorporar Viquidites a Projectes germans
if u"{{Projectes germans" in textnou:
if re.search(u"\{\{ ?[Qq]uote box",textnou):
textnou=re.sub(u"\{\{ ?[Qq]uote[_ ]box",u"{{Caixa de citació",textnou)
print u"Reanomenada plantilla Quote box"
if re.search(u"\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote)",textnou):
paramspecies=u""
tplantspecies=re.findall(u"(\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote) ?\|.*\}\})",textnou)
if tplantspecies==[]:
tplantspecies=re.findall(u"(\{\{\ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote) ?\|?.*\}\})",textnou)
paramspecies=pag.title()
print u"Paràmetre per defecte"
try:
plantspecies=tplantspecies[0][0]
except IndexError:
print "Plantilla Viquidites no trobada; ho deixem córrer"
continue
print tplantspecies
print plantspecies
if paramspecies==u"":
paramspecies=re.sub(u"\{\{ ?([Vv]iquidites|[Ww]ikiquote|[Qq]uote) ?\| ?",u"",plantspecies)
paramspecies=re.sub(u"\|.*",u"",paramspecies)
paramspecies=re.sub(u" ?\}\}",u"",paramspecies)
print paramspecies
textnou=re.sub(u"\{\{ ?[Pp]rojectes germans",u"{{Projectes germans|Viquidites="+paramspecies,textnou)
textnou=textnou.replace(plantspecies,u"")
if sumari!=u"":
if "Projectes germans" in sumari:
sumari=sumari+u" i amb [[q:"+paramspecies+u"]]"
else:
sumari=sumari+u" i incorpora a {{Projectes germans}} enllaç a [[q:"+paramspecies+u"]]"
else:
sumari=u"Robot incorpora a {{Projectes germans}} enllaç a [[q:"+paramspecies+u"]]"
# Comença la part de posar Bases de dades taxonòmiques
if tax>0:
print "Bases taxonòmiques a Wikidata"
if plant(u'Bases de dades taxonòmiques') in plantarticle or plant(u'BDT') in plantarticle:
print "Plantilles redundants" #Descomenteu les línies següents per no posar la plantilla si ja hi ha a l'article algun dels enllaços que té
#elif u'Biolib' in plantarticle or u'Eol' in plantarticle or u'FishBase family' in plantarticle or u'ITIS' in plantarticle or u'MSW' in plantarticle or u'NCBI' in plantarticle:
# print "Plantilles redundants"
#elif u"algaebase.org" in textnou or u"biodiversitylibrary.org" in textnou or u"biolib.cz" in textnou or u"eol.org" in textnou or u"fishbase.org" in textnou:
# print "enllaços redundants"
#elif u"indexfungorum.org" in textnou or u"departments.bucknell.edu" in textnou or u"mycobank.org" in textnou or u"ncbi.nlm.nih.gov" in textnou or u"paleobiodb.org" in textnou or u"theplantlist.org" in textnou or u"marinespecies.org" in textnou:
# print "enllaços redundants"
#elif u'Autoritat' in plantilles: #En previsió de la fusió d'Autoritat i Bases de dades taxonòmiques.
# print u"ja té Autoritat (evitem futur duplicat)"
elif pag.namespace()==14:
print u"Categoria. No cal BDT."
else:
print u"Posem plantilla bases taxonòmiques"
textnou=insertatax(textnou,u"{{Bases de dades taxonòmiques}}")
if sumari!=u"":
if u"{{Autoritat}}" in sumari:
sumari=sumari.replace(u"{{Autoritat}}",u"{{Autoritat}} i {{Bases de dades taxonòmiques}")
else:
sumari=sumari+u" i insereix {{Bases de dades taxonòmiques}"
else:
sumari=u"Robot insereix {{Bases de dades taxonòmiques}}"
# Comença la part de posar coordenades
if coor==True:
textnounet=re.sub(u"<!--.*?-->",u"",textnou)
if plant(u'Coord') in plantilles and re.search(u"display ?= ?(it|ti|(inline,) ?title)",textnounet):
print u"Detectada plantilla Coord i display=title"
elif plant(u'Cal coor') in plantilles or plant(u'Cal coor cat') in plantilles:
print u"Detectada plantilla Cal coor o Cal coor cat"
elif plant(u'Infotaula del municipi valencià') in plantilles or plant(u'Infotaula del municipi espanyol') in plantilles or plant(u'Infotaula de municipi de França') in plantilles:
print u"Detectada infotaula de municipi que posa coordenades de Wikidata per defecte"
elif plant(u'Coor Lluna') in plantilles or plant(u'Cel') in plantilles or plant(u'Mart') in plantilles:
print u"Detectades plantilles de coordenades astronòmiques"
elif re.search(u"\{\{ ?[Cc]al coor ?.*(\||\}\})",textnou):
print u"Detectat el text de cal coor"
else:
textexp=pag.expand_text()#compat expandtemplates=True
if u'<span title="Coordenades geogràfiques WGS84">Coord.:</span> <span class="plainlinks nourlexpansion">[//tools.wmflabs.org/geohack/geohack.php' in textexp:
print u"Coordenades detectades per l'enllaç geohack"
elif u"http://www.google.com/moon/#lat=" in textexp:
print u"Coordenades llunars detectades per l'enllaç Google"
else:
# Calen coordenades
if re.search(u"\[\[ ?[Cc]ategoria ?: ?Estats",text):
calcoortxt=u"{{cal coor|type=country}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Províncies|Districtes|Bisbats|Arquebisbats)",text):
calcoortxt=u"{{cal coor|type=adm2nd}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Ciutats|Municipis|Barris|Entitats de població)",text):
calcoortxt=u"{{cal coor|type=city}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Muntanyes|Volcans|Serres|Serralades)",text):
calcoortxt=u"{{cal coor|type=mountain}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Illes|Arxipèlags)",text):
calcoortxt=u"{{cal coor|type=isle}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Llacs|Embassaments|Badies|Golfs|Mars|Estrets)",text):
calcoortxt=u"{{cal coor|type=waterbody}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Rius|Canals|Torrents|Barrancs|(Cursos|Corrents) d'aigua|Pous|Preses|Rieres)",text):
calcoortxt=u"{{cal coor|type=river}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?Glaceres",text):
calcoortxt=u"{{cal coor|type=glacier}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Bosco?s|Parcs)",text):
calcoortxt=u"{{cal coor|type=forest}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Batalles|Guerres|Competicions|Accidents)",text):
calcoortxt=u"{{cal coor|type=event}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Escoles|Centres educatius|Facultats|Universitats|Instituts)",text):
calcoortxt=u"{{cal coor|type=edu}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Aeroports|Aeròdroms|Heliports)",text):
calcoortxt=u"{{cal coor|type=airport}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Colls|Ports de muntanya)",text):
calcoortxt=u"{{cal coor|type=pass}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Estacions|Parades)",text):
calcoortxt=u"{{cal coor|type=railwaystation}}"
elif re.search(u"\[\[ ?[Cc]ategoria ?: ?(Edificis|Estadis|Pavellons|Teatres|Museus|Restaurants|Hotels|Masies|Palaus|Castells|Esglésies|Catedrals|Capelles|Ermites|Santuaris|Monestirs|Convents|Mesquites|Temples|Fàbriques|Empreses|Agències|Associacions|Clubs|Mines|Centrals|Carrers|Avingudes|Places|Pintures|Escultures)",text):
calcoortxt=u"{{cal coor|type=landmark}}"
else:
calcoortxt=u"{{cal coor}}"
textnou=poleix(textnou)
textnou=insertacoor(textnou,calcoortxt)
if sumari==u"":
sumari=u"Robot posa {{cal coor}} que enllaça amb coordenades de Wikidata"
else:
sumari=sumari+" i posa {{cal coor}}"
# Si projectes germans només hi és per Commonscat, canvi a plantilla Commonscat (només si ha fet més canvis)
if textnou!=textvell:
text0=textnou
textnou=textnou.replace(u"{{Projectes germans}}",u"{{Commonscat}}")
if re.search(u"\{\{ ?[Pp]rojectes germans\|commonscat=.*\}\}",textnou):
if not re.search(u"\{\{ ?[Pp]rojectes germans\|commonscat=.*\|.*=.*\}\}",textnou):
textnou=re.sub(u"\{\{ ?[Pp]rojectes germans\|commonscat=",u"{{Commonscat|",textnou)
if textnou!=text0:
if u"{{Projectes germans}}" in sumari:
sumari=sumari.replace(u"{{Projectes germans}}",u"{{Commonscat}}")
elif sumari==u"":
sumari=u"Robot insereix {{Commonscat}}"
else:
sumari=sumari+u" i insereix {{Commonscat}}"
# Revisar plantilles de manca de foto
plantimatge=False
if imatge==True and re.search(u"\{\{[Ii]nfotaula del? municipi",textnou):
plantimatge=True
elif imatge==True and (plant(u"Platja") in plantarticle or plant(u"Infotaula platges") in plantarticle):
plantimatge=True
elif imatge==True and (plant(u"Església") in plantarticle or plant(u"Infotaula patrimoni cultural") in plantarticle):
plantimatge=True
elif imatge==True and (plant(u"Masia") in plantarticle or plant(u"Muntanya") in plantarticle):
plantimatge=True
elif imatge==True and (plant(u"Infotaula estació de ferrocarril de Catalunya") in plantarticle or plant(u"Infotaula estació de ferrocarril d'Espanya") in plantarticle):
plantimatge=True
elif imatge==True and (plant(u"Jaciment arqueològic") in plantarticle or plant(u"Riu") in plantarticle or plant(u"Castell") in plantarticle):
plantimatge=True
else:
plantimatge=False
if plantimatge==True:
if re.search(recalfoto,textnou):
print u"Traient plantilla cal foto"
textnou=re.sub(recalfoto+u"\n",u"",textnou)
textnou=re.sub(recalfoto,u"",textnou)
if sumari==u"":
sumari=u"Robot treu plantilla {{cal foto}} perquè ja hi ha foto de Wikidata"
else:
sumari=sumari+u" i treu plantilla {{cal foto}} perquè n'hi ha de Wikidata"
if re.search(u"\[\[[Cc]ategoria:(Articles d.*|Esglésies|Masies|Castells|Rius|Llacs) que necessiten una foto\]\]",textnou):
print u"Traient categoria cal foto"
textnou=re.sub(u"\[\[[Cc]ategoria:(Articles d.*|Esglésies|Masies|Castells|Rius|Llacs) que necessiten una foto\]\]",u"",textnou)
if sumari==u"":
sumari=u"Robot treu categoria de manca de foto perquè ja hi ha foto de Wikidata"
else:
sumari=sumari+u" i treu categoria de manca de foto perquè n'hi ha de Wikidata"
# Tot incorporat. Poleix i desa.
if textnou!=textvell:
textnou=poleix(textnou)
if sumari==u"":
sumari=u"Robot endreça plantilles"
try:
pag.put(textnou,sumari)
except urllib2.HTTPError:
print u"Error HTTP en desar (no deu funcionar el web)"
except pywikibot.LockedPage:
print u"Pàgina protegida"
# Informe ORDENA
if informeordena:
if u"<!--ORDENA generat per bot-->" in textvell:
ordena=re.findall(u"\{\{ORDENA:.*\}\}",textvell)[0]
print cblocinforme,ordena
liniainf=u"#[["+artca+u"]] <nowiki>"+ordena+u"</nowiki>\n"
cosinforme=cosinforme+liniainf
cblocinforme=cblocinforme+1
if cblocinforme>10:
putinforme(paginforme,textinforme0,capinforme+cosinforme,sumarinforme)
cblocinforme=0
except KeyError:
print u"No hi ha iw català"
except pywikibot.IsRedirectPage:
print pag,u"és una redirecció"
except pywikibot.InvalidTitle:
try:
print artca,u"és un títol no vàlid"
except NameError:
print linia,u"no acaba produint un títol vàlid"
except pywikibot.NoPage:
print pag,u"és una redirecció"
# break # Per proves amb un únic element
print "llegit"
if informeordena:
if cosinforme!=u"":
putinforme(paginforme,textinforme0,capinforme+cosinforme,sumarinforme,signa=True)
return
# El programa comença aquí
site=pywikibot.getSite('ca')
sitedata=site.data_repository()
urls=[]
#Descomenteu una consulta (o sigui, una de les línies que diuen autolist=):
#Articles amb foto a Wikidata i categoria de mancats de foto
urls.append(u"http://tools.wmflabs.org/autolist/index.php?language=ca&project=wikipedia&category=Articles%20de%20geografia%20que%20necessiten%20una%20foto&depth=12&wdq=CLAIM%5B18%5D%20and%20link%5Bcawiki%5D&pagepile=&statementlist=&run=Run&mode_manual=or&mode_cat=or&mode_wdq=and&mode_find=or&chunk_size=10000&download=1")
#Articles (no categories) amb commonscat a Wikidata sense {{Commonscat}}:
urls.append("http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Manteniment%20plantilla%20commonscat&depth=2&wdq=CLAIM%5B373%5D%20AND%20link%5Bcawiki%5D%20and%20NOCLAIM%5B31%3A4167836%2C31%3A15647814%2C31%3A20010800%5D&statementlist=&run=Run&mode_manual=or&mode_cat=not&mode_wdq=or&mode_find=or&chunk_size=10000&download=1")
#Categories amb commonscat a Wikidata sense {{Commonscat}}:
urls.append("http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Manteniment%20plantilla%20commonscat&depth=2&wdq=CLAIM%5B373%5D%20AND%20link%5Bcawiki%5D%20and%20CLAIM%5B31%3A4167836%5D&statementlist=&run=Run&mode_manual=or&mode_cat=not&mode_wdq=or&mode_find=or&chunk_size=10000&namespace=14&download=1")
#Elements amb algun registre d'autoritat sense {{Autoritat}}:
urls.append("http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Control%20d%27autoritats&depth=12&wdq=(CLAIM%5B1273%5D%20OR%20CLAIM%5B214%5D%20OR%20CLAIM%5B244%5D%20OR%20CLAIM%5B213%5D%20OR%20CLAIM%5B496%5D%20OR%20CLAIM%5B227%5D%20OR%20CLAIM%5B906%5D%20OR%20CLAIM%5B269%5D%20OR%20CLAIM%5B268%5D%20OR%20CLAIM%5B950%5D%20OR%20CLAIM%5B651%5D%20OR%20CLAIM%5B1015%5D%20OR%20CLAIM%5B245%5D%20OR%20CLAIM%5B902%5D%20OR%20CLAIM%5B886%5D%20OR%20CLAIM%5B434%5D%20OR%20CLAIM%5B549%5D%20OR%20CLAIM%5B409%5D%20OR%20CLAIM%5B349%5D%20OR%20CLAIM%5B1048%5D%20OR%20CLAIM%5B691%5D%20OR%20CLAIM%5B640%5D%20OR%20CLAIM%5B947%5D%20OR%20CLAIM%5B396%5D%20OR%20CLAIM%5B402%5D%20or%20CLAIM%5B345%5D%20or%20CLAIM%5B1296%5D)%20AND%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1")
#Elements amb alguna propietat de bases de dades taxonòmiques però sense la plantilla:
urls.append("http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Control%20de%20bases%20de%20dades%20taxon%C3%B2miques&depth=12&wdq=(CLAIM%5B1348%5D%20OR%20CLAIM%5B2036%5D%20OR%20CLAIM%5B687%5D%20OR%20CLAIM%5B838%5D%20OR%20CLAIM%5B1939%5D%20OR%20CLAIM%5B830%5D%20OR%20CLAIM%5B1895%5D%20OR%20CLAIM%5B938%5D%20OR%20CLAIM%5B1747%5D%20OR%20CLAIM%5B846%5D%20OR%20CLAIM%5B1421%5D%20OR%20CLAIM%5B1391%5D%20OR%20CLAIM%5B961%5D%20OR%20CLAIM%5B815%5D%20OR%20CLAIM%5B627%5D%20OR%20CLAIM%5B959%5D%20OR%20CLAIM%5B962%5D%20OR%20CLAIM%5B685%5D%20OR%20CLAIM%5B842%5D%20OR%20CLAIM%5B1070%5D%20OR%20CLAIM%5B2040%5D%20OR%20CLAIM%5B1772%5D%20OR%20CLAIM%5B1745%5D%20OR%20CLAIM%5B850%5D)%20AND%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=20000&download=1")
#Elements amb coordenades a Wikidata sense coordenades a la Viquipèdia:
urls.append("http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Manteniment%20de%20coordenades&depth=12&wdq=CLAIM%5B625%5D%20AND%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1")
#UTILITAT DUBTOSA:
#Elements amb enllaç a la Viquipèdia i a Viquidites (en català):
#autolist="http://tools.wmflabs.org/wikidata-todo/autolist2.php?language=ca&project=wikipedia&category=&depth=12&wdq=link%5Bcawikiquote%5D%20and%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1"
#Elements amb algun registre d'autoritat sense {{Autoritat}} i amb autoritats i coordenades a Wikidata:
#autolist="http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Control%20d%27autoritats&depth=12&wdq=(CLAIM%5B1273%5D%20OR%20CLAIM%5B214%5D%20OR%20CLAIM%5B244%5D%20OR%20CLAIM%5B213%5D%20OR%20CLAIM%5B496%5D%20OR%20CLAIM%5B227%5D%20OR%20CLAIM%5B906%5D%20OR%20CLAIM%5B269%5D%20OR%20CLAIM%5B268%5D%20OR%20CLAIM%5B950%5D%20OR%20CLAIM%5B651%5D%20OR%20CLAIM%5B1015%5D%20OR%20CLAIM%5B245%5D%20OR%20CLAIM%5B902%5D%20OR%20CLAIM%5B886%5D%20OR%20CLAIM%5B434%5D%20OR%20CLAIM%5B549%5D%20OR%20CLAIM%5B409%5D%20OR%20CLAIM%5B349%5D%20OR%20CLAIM%5B1048%5D%20OR%20CLAIM%5B691%5D%20OR%20CLAIM%5B640%5D%20OR%20CLAIM%5B947%5D%20OR%20CLAIM%5B396%5D%20OR%20CLAIM%5B402%5D%20or%20CLAIM%5B1296%5D)%20AND%20link%5Bcawiki%5D%20and%20claim%5B625%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1"
#OBSOLETS:
#Elements amb propietat relació OSM (NO IMPLEMENTAT EN POSAR LA RELACIÓ):
#autolist="http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=&depth=12&wdq=CLAIM%5B402%5D%20AND%20link%5Bcawiki%5D&mode=undefined&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=20000&download=1"
#Elements amb commonscat a Wikidata sense {{Commonscat}}:
#autolist="http://tools.wmflabs.org/autolist/?language=ca&project=wikipedia&category=Manteniment%20plantilla%20commonscat&depth=2&wdq=CLAIM%5B373%5D%20AND%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1"
#Elements amb CANTIC sense {{Autoritat}}: (OBSOLETA PER CANVI DE NOM DE LA CATEGORIA):
#autolist="http://tools.wmflabs.org/wikidata-todo/autolist2.php?language=ca&project=wikipedia&category=Authority%20control%20usage&depth=12&wdq=CLAIM%5B1273%5D%20AND%20link%5Bcawiki%5D&mode=wdq_no_cat&statementlist=&run=Run&label_contains=&label_contains_not=&chunk_size=10000&download=1"
for url in urls:
posaplantilles(url)
pywikibot.stopme()