Lankide:PereBot/robot testua aldatu

    Wikipedia, Entziklopedia askea
    # -*- 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()