Usuari:PereBot/robot imatges per esborrar

De la Viquipèdia, l'enciclopèdia lliure

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()