Progetto:Bot/Programmi in Python per i bot/CategorieTesti.py

Da Wikisource.
#!/usr/bin/python
# -*- coding: utf-8 -*-

import pywikibot as wikipedia, re
from pywikibot import pagegenerators
import catlib, string, random

sito=wikipedia.getSite("it")

def crea(catname, catsopra, titolo):

        try:
                cat = catlib.Category(sito, title=catname)

                if not cat.isEmptyCategory() and not cat.exists():

                        cat.put(u"{{Vedi anche|"+titolo+"}}\n\n[[Categoria:"+catsopra+"|"+titolo+"]]", "Bot - CategorieTesti.py: creazione categoria")
        except:
                print "errore generico su: " + titolo

def main():

        #inizia da un punto casuale
        begin = random.choice(string.ascii_lowercase) + random.choice(string.ascii_lowercase);
        gen = pagegenerators.AllpagesPageGenerator(begin, namespace=0, includeredirects=False, site=sito)
        gen = pagegenerators.PreloadingGenerator(gen)

        for page in gen:
                titolo = page.title()

                crea(u"Testi in cui è citato il testo "+titolo, "Testi in cui sono citati altri testi", titolo)
                crea(u"Pagine in cui è citato il testo "+titolo, "Pagine in cui sono citati altri testi", titolo)

if __name__ == "__main__":
        try:
                main()
        finally:
                wikipedia.stopme()