Usuari:ArnauBot/Codi

De la Viquipèdia, l'enciclopèdia lliure
# -*- coding: utf-8 -*-
import sys
sys.path.append('D:\Arnau\Viquipèdia\Bots')
import wikipedia,catlib
import re

# Retorna les categories i articles d'una categoria, subcategories incloses.
# No torna a mirar les categories que ja ha mirat.
# Filtra pels noms de les categories fent servir una expressió regular.
# funció escrita per Pere prlpz
def miracatfiltre(cat,catprevies=[],filtre=u""):
    articles=cat.articlesList(recurse=False)
    categories=cat.subcategoriesList(recurse=False)
    for scat in categories:
        print scat
        if scat not in catprevies:
            catprevies.append(scat)
            if filtre==u"":
                nopassa=False
                print u"Filtre desactivat"
            else:
                nopassa=re.search(filtre,scat.title())                
            if not nopassa:
                print u"Es llegeix", scat
                noucats,nouarts=miracatfiltre(scat,catprevies+categories,filtre)
                categories=categories+noucats
                articles=articles+nouarts
            else:
                print u"No es llegeix", scat
        else:
            print u"Aquesta ja la tinc vista"

    articles=catlib.unique(articles)         
    return categories, articles

## Programa
site=wikipedia.getSite('ca')

categoria = catlib.Category(site,u"Pel·lícules de Catalunya en català")
cats, asc  = miracatfiltre(categoria) #retorna: categories, articles

paginforme=wikipedia.Page(site,"Usuari:ArnauBot/Prova") #Pàgina on voleu l'informe. Ha d'existir.
informe=u"Hola\n\n"

for pag in asc:
    print pag
    text=pag.get()
    textmodif=text
    textmodif=re.sub(u"pel·l[íi]cula catalana", u"[[cinema català|pel·lícula catalana]]", textmodif)
    textmodif=re.sub(u"\[\[pel·lícula\]\] catalana", u"[[cinema català|pel·lícula catalana]]", textmodif)
    textmodif=re.sub(u"pel·lícula \[\[catalana\]\]", u"[[cinema català|pel·lícula catalana]]", textmodif)
    textmodif=re.sub(u"\[\[pel·lícula\]\] \[\[(Catalunya\|)?catalana\]\]", u"[[cinema català|pel·lícula catalana]]", textmodif)
    if textmodif != text:
        pag.put(textmodif,u"Posant enllaç a [[cinema català]] on pertoca")
        informe=informe+u"# [["+pag.title()+u"]]"+u"\n"


#print informe
paginforme.put(informe,u"Llista d'articles modificats")   
wikipedia.stopme()