Usuari:TronaBot/Python/Taxobox.py

# -*- coding: utf8 -*-
# 12-10-07 by w:ca:User:Pasqual

import wikipedia, category, re, codecs
from pagetext import pageText
site=wikipedia.getSite()

def whatLinksTo(element):
        quehienllaca=wikipedia.Page(site, element)
        quehienllaca=pageText('http://ca.wikipedia.org/w/index.php?title=Special:Whatlinkshere/'+
                              quehienllaca.urlname()+'&limit=5000&from=0').decode('utf-8')
        elements=quehienllaca.split('<ul>')[1]
        pags=re.findall(ur'<li><a href=".*">(.*?)<\/a> \(',elements)
        print u"S'ha trobat %d pàgines."% len(pags)
        return pags

pags = whatLinksTo("Template:Taxobox")
pagsSnsBinom=[]
pagsSnsWikispAmbBinom=[]

for pag in pags:
        pagina=wikipedia.Page(site, pag)
        text=pagina.get()
        if "{{wikispecies|" not in text:
                envia = u"%s no conté {{wikispecies}}" % pag
                binomial=re.search("\|\s*binomial\s*=\s*('')?([a-zA-Z ]*)('')?\s*",text)
                if binomial:
                        binomial=binomial.group(2)
                        pagsSnsWikispAmbBinom.append("# [[%s]] binomial: %s"%(pag,binomial) )
                        #pagina.put(
                        envia += u"\nbinomial trobat: %s"%binomial
                else:
                        envia += u"\nno s'ha especificat el nom binomial"
                        pagsSnsBinom.append("# [[%s]]"%pag)
        else:
                envia = u"%s, conté la plantilla"%pag
        print "%d/%d %s\n"%(pags.index(pag)+1,len(pags),envia)
print "==articles sense {{tl|wikispecies}} ni binomial=="
pagsSnsBinom.sort()
for pag in pagsSnsBinom:
        print pag
pagsSnsWikispAmbBinom.sort()
print "\n==articles sense {{tl|wikispecies}} amb binomial=="
for pag in pagsSnsWikispAmbBinom:
        print pag