Utente:Kroninbot/monitoraggiocomuni.py

#Espande il template monitoraggio nelle pagine dei comuni, può essere usato anche per altre categorie
#Devo ancora migliorare la gestione dell'input ma a mio avviso cambiando direttamente
#dal sorgente del programma viene più semplice se volete che metta i parametri in input, lasciatemi un messaggio in talk
import wikipedia
import catlib
import re
site = wikipedia.getSite()
cat = catlib.Category(site, 'Categoria:Comuni della Lombardia') #Sostituire "Categoria:Comuni della Lombardia" con la categoria desiderata
com = cat.articlesList()
strmon = '{{Monitoraggio\n|progetto= Lombardia\n|progetto2 = Comuni\n|accuratezza= nc\n|scrittura= nc\n|fonti= nc\n|immagini= nc\n|note= \n|utente= \n|data= ottobre 2007\n}}' 
#Sostituire "Lombardia" con il nome del progetto ed eventualmente "comuni"
for dis in com:
    if dis.title().namespace() != 0:
        continue
#Salta la pagina se questa non è nel namespace 0
    title = 'Discussione:' + dis.title()
#    if re.search('^Discussione:[A-Q]', title):
#        continue
#Cancellare i "#" dalle due righe sopra se si vuol fare partire il bot da una certa lettera da mettere al posto di Q
    wikipedia.output('Loading %s' % title) 
    page = wikipedia.Page(site, title)
    try:
        text = page.get()
#Espande il monitoraggio
        if re.search('\{\{[Mm]onitoraggio\|[Cc]omuni\}\}', text) != None:
            mon = re.sub ('\{\{[Mm]onitoraggio\|[Cc]omuni\}\}', strmon , text)
            page.put(mon, comment='Bot: corrego template monitoraggio')
        elif re.search('\{\{[Mm]onitoraggio\|[Ll]ombardia\}\}', text) != None:
            mon = re.sub ('\{\{[Mm]onitoraggio\|[Ll]ombardia\}\}', strmon , text)
            page.put(mon, comment='Bot: corrego template monitoraggio')
#Se non esiste la pagine di discussione la crea
    except wikipedia.NoPage:
        page.put(strmon, comment='Bot: inserisco template monitoraggio')
    except wikipedia.IsRedirectPage:
        continue
    except wikipedia.BadTitle:
        continue
wikipedia.stopme()
#Script by Kronin, made in 2007