Usuari:PereBot/robot imatges per esborrar
Aparença
Aquest bot produeix l'informe que hi ha a Usuari:PereBot/imatges per esborrar.
# -*- coding: utf-8 -*-
#Fa una llista de propostes d'esborrat d'arxius de Commons emprats a la Viquipèdia
import sys
sys.path.append('C:\core')
import pywikibot
from pywikibot import pagegenerators
from pywikibot.compat import catlib
import urllib,urllib2,re,json,urlparse
def urlEncodeNonAscii(b):
return re.sub('[\x80-\xFF]', lambda c: '%%%02x' % ord(c.group(0)), b)
def iriToUri(iri):
parts= urlparse.urlparse(iri)
return urlparse.urlunparse(
part.encode('idna') if parti==1 else urlEncodeNonAscii(part.encode('utf-8'))
for parti, part in enumerate(parts)
)
#El programa comença aquí
cawiki=pywikibot.getSite('ca')
cawikt=pywikibot.getSite('ca',fam='wiktionary')
canot=pywikibot.getSite('ca',fam='wikinews')
cadites=pywikibot.getSite('ca',fam='wikiquote')
catxt=pywikibot.getSite('ca',fam='wikisource')
sitecommons=pywikibot.getSite('commons','commons')
titplantbuscar=u"template:delete"
plantbuscar=pywikibot.Page(sitecommons,titplantbuscar)
diccprefix={u"wikipedia":u"",u"wiktionary":u"wikt",u"wikibooks":u"b",
u"wikiquote":u"q",u"wikisource":u"s",u"wikinews":u"n",}
paginforme=pywikibot.Page(cawiki,u"Usuari:PereBot/imatges per esborrar")
informe=u"{{Usuari:PereBot/imatges per esborrar/encapçalament}}\n\nImatges amb la plantilla [[:commons:template:delete]]\n\n"
comptador=0
comptabloc=10
for pag in pagegenerators.ReferringPageGenerator(plantbuscar,withTemplateInclusion=True,onlyTemplateInclusion=True):
comptador=comptador+1
print comptador,pag
if pag.namespace()==6:
print u"és imatge"
pagdescr=pywikibot.FilePage(sitecommons,pag.title())
titfoto=pagdescr.title()
urlus=u"https://commons.wikimedia.org/w/api.php?action=query&prop=globalusage&format=json&guprop=url&titles={}".format(titfoto)
#print urlus
urlus=iriToUri(urlus)
#print urlus
pweb=urllib.urlopen(urlus)
pbrut=pweb.read()
print "obert"
jpag=json.loads(pbrut)
dpags=jpag["query"]["pages"]
#print dpags
clau=dpags.keys()[0]
usos=dpags[clau][u'globalusage']
try:
for us in usos:
lloc=us[u'wiki']
print lloc[:3]
if lloc[:3]==u"ca.":
proj=lloc[3:-4]
print proj
#codi=diccprefix(proj)
if u"wikipedia" in lloc:
codi=u""
else:
codi=proj+u":"
tit=us[u'title']
comptabloc=comptabloc+1
print u"USADA A CA",proj,codi,tit
linia=u"#[[:commons:"+titfoto+u"]] usada a [["+codi+tit+u"]]\n"
informe=informe+linia
print linia
if comptabloc>60:
paginforme.put(informe,u"Propostes d'esborrat d'arxius de Commons emprats a la Viquipèdia")
comptabloc=0
except pywikibot.NoSuchSite:
continue
liniafinal=u"\n\nTasca acabada.--~~~~"
paginforme.put(informe+liniafinal,u"Propostes d'esborrat d'arxius de Commons emprats a la Viquipèdia")
pywikibot.stopme()