Usuari:PereBot/robot llista manteniment commonscat
Aparença
# -*- coding: utf-8 -*-
# Programa per crear una llista amb els conflictes entre la plantilla
# Commonscat i el que diu Wikidata.
import re, sys, urllib2
sys.path.append('C:\pywikipedia')
import wikipedia, catlib
# Recupera la propetat "categoria de Commons" a Wikidata
# L'argument és una pàgina de wikidata (objecte pàgina)
# Retorna una cadena.
# Si no hi ha la propietat, retorna una cadena buida.
def dataccat(data):
ccat = ""
try:
dict = data.get()
claims = dict[u'claims']
for el in claims:
m = el[u'm']
num = m[1]
if num == 373:
ccat = m[3]
except wikipedia.NoPage:
print u"Error: no hi ha pàgina a wikidata"
except wikipedia.MaxTriesExceededError:
print u"Error: Temps excedit"
except urllib2.HTTPError:
print u"Error HTTP (no deu funcionar el web)"
return ccat
#El programa comença aquí
def principal():
categoria = catlib.Category(site,u"Manteniment plantilla commonscat")
asc = categoria.articlesList(recurse=False)
comptapotencial = numarticles = len(asc)
#asc=asc[50:70]
paginforme = wikipedia.Page(site, u"Usuari:PereBot/Commonscat i Wikidata") # Canvieu això pel lloc on vulgueu la informació
noutext = paginforme.get()
comptarticles = compta = 0
noutext += "\n\n==Resum==\n\n"
for pag in asc:
comptarticles += 1
compta += 1
print comptarticles,u"/",numarticles,pag
tottemppar = pag.templatesWithParams()
nhiha = paramdefecte = False
param = ""
for plant in tottemppar:
if plant[0] in (u'Commonscat', u'Commons cat' u'Commons category'):
nhiha = True
if plant[1] == []:
param = pag.title()
paramdefecte = True
else:
param = plant[1][0]
try:
data = wikipedia.DataPage(pag)
except wikipedia.NoPage:
print u"Error: no hi ha pàgina a wikidata"
except wikipedia.MaxTriesExceededError:
print u"Error: Temps excedit"
except urllib2.HTTPError:
print u"Error HTTP (no deu funcionar el web)"
paramdata = dataccat(data)
qdata = data.title()
if qdata == None:
qdata = u""
print u"Qdata: %s" % qdata
print u"Article: {} Plantilla: {} Wikidata: {}".format(pag, param, paramdata)
tarticle = u'[[%(p)s]] <small class="editlink noprint plainlinks">[{{fullurl:%(p)s|action=edit}} edita]</small>' % {"p": pag.title()}
if paramdefecte:
tdef = " ''(per defecte)'' "
else:
tdef = ""
if param != "":
tplant = u"[[:commons:Category:{p}|{p}]]{}".format(tdef, p=param)
else:
tplant = u" ''plantilla Commonscat no trobada.''"
tdata = u"[[:commons:Category:{p}|]] <span style=\"font-size:80%;\">[[:d:{}]]</span>".format(qdata, p=paramdata)
linia = u"#{} '''''P:''''' {} '''''D:''''' {}\n".format(tarticle, tplant, tdata)
noutext += linia
if compta > 400:
paginforme.put(u"%s--~~~~\n\n" % noutext, u"Comprovant diferències Commonscat-Wikidata")
compta=0
paginforme.put(u"%s--~~~~\n\n" % noutext, u"Comprovant diferències Commonscat-Wikidata")
if __name__ == '__main__':
site=wikipedia.getSite('ca')
wikipedia.stopme()