Lankide:PereBot/robot testua aldatu

# -*- coding: utf-8 -*-
# Robot que canvia un text per un altre, dins dels articles d'una categoria

import sys
sys.path.append('C:\pywikipedia')
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.
def miracatfiltre(cat,catprevies=[],filtre=u""):
    articles=cat.articlesList(recurse=False)
    categories=cat.subcategoriesList(recurse=False)
    for scat in categories:
        print scat
#        print u"Títol",scat.title()
        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"Sí que 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"
    categories=catlib.unique(categories)
    articles=catlib.unique(articles)
    print u"Llegits",len(categories),u"categories i",len(articles),u"articles a",cat 
    return categories, articles

# El programa comença aquí.
site=wikipedia.getSite('eu') #Canviar aquí per canviar de Viquipèdia
catbuscar=u"Baix Llobregat" #Posar aquí la categoria que es revisarà
categoria = catlib.Category(site,catbuscar)
filtrecats=u"" # categories grans que ja estan fetes i no cal repetir
mirasubcategories=True #False per no mirar subcategories; True per mirar-les
if mirasubcategories:
    cats, asc  = miracatfiltre(categoria,filtre=filtrecats)
#    asc=cats+asc
else:
    asc=categoria.articlesList(recurse=False)
comptapotencial=len(asc)
print "Articles a la categoria",comptapotencial
#l=l[:2]
for page in asc:
    text=page.get()
    print page
    if u"{{commonskat|{{#property:P373}}}}" in text:
        text=text.replace(u"{{commonskat|{{#property:P373}}}}",u"{{commonskat}}")
#        text=text.replace(u"[[Kategoria:Public art in Sant Martí, Barcelona]]",u"")
        page.put(text,u"Robotak {{#property:P373}} ezabatu du")
wikipedia.stopme()