Utente:YuBot/insmonitoraggio-cat.py
Vai alla navigazione
Vai alla ricerca
Questo script è obsoleto. Non utilizzare (lo tengo qui solo come 'documento storico' :))
# -*- coding: utf-8 -*- #################################################### # insmonitoraggio-cat.py - scritto da Yuma # # Questo script inserisce il template monitoraggio # # a partire da una specifica categoria. Tutte le # # voci contenute nella categoria verranno dotate # # del template monitoraggio, complete di variabile # # progetto. Utilizzare con cautela, solo dove sia # # chiaro che tutte la voci nella categoria sono # # seguite da un solo progetto tematico. # #################################################### import wikipedia, sys, re, catlib, pagegenerators #Processo di inserimento template monitoraggio def workon(page): # Mostra il titolo della pagina su cui lavorare. # Sottolinea il titolo in rosso. colors = [None] * 5 + [13] * len(paginadiscussione.title()) + [None] * 4 wikipedia.output(u'\n>>> %s <<<' % paginadiscussione.title(), colors = colors) # Se esiste la sottopagina, te lo dice e va avanti if sottopaginadiscussione.exists(): wikipedia.output (u'Template presente.') #Altrimenti, prosegue nell'inserimento else: #Se esiste la pagina discussioni... if paginadiscussione.exists(): #...controlla che non sia un redirect if paginadiscussione.isRedirectPage() or paginadiscussione.isDisambig(): wikipedia.output (u'Redirect o disambigua.') #...se non lo è, memorizza il contenuto della pagina else: testoattuale=paginadiscussione.get() wikipedia.showDiff(testoattuale, testodainserire+testoattuale) wikipedia.output (u'Inserisco il template e creo la sottopagina.') #crea la sottopagina sottopaginadiscussione.put(testosubpage, comment=commento) #inserisce il template nella discussione paginadiscussione.put(testodainserire+'\n\n'+testoattuale, comment=commento) #Se non esiste discussione... else: testoattuale='' wikipedia.showDiff(testoattuale, testodainserire+testoattuale) wikipedia.output (u'Inserisco il template e creo la sottopagina.') #...crea la sottopagina sottopaginadiscussione.put(testosubpage, comment=commento) #...crea la discussione paginadiscussione.put(testodainserire+'\n\n'+testoattuale, comment=commento) #Qui sotto si prepara tutto quello che serve prima di procedere try: #Ti chiede il nome della categoria categoryname = wikipedia.input(u'Mi serve il nome della categoria:') cat = catlib.Category(wikipedia.getSite(), 'Category:%s' % categoryname) #Legge le pagine contenute nella categoria gen = pagegenerators.CategorizedPageGenerator(cat) #Ti chiede la variabile di progetto da inserire nel template varp=wikipedia.input(u'Mi serve la variabile \'progetto\' da inserire') #Template per le discussioni testodainserire=u"{{Monitoraggio|"+varp+"}}\n\n" #Template per le sottopagine testosubpage=u"{{Monitoraggio/voce\n |voce={{subst:BASEPAGENAME}}\n |progetto="+varp+"\n |livello=nc\n |importanza=disabilitato\n |fonti=nc \n |immagini=nc\n |note=\n}}\n" commento="Bot: inserisco template monitoraggio" #Crea una lista di voci lista=[page for page in gen] discussioni=[] #Crea una lista di discussioni for pagina in lista: if pagina.namespace()==0: discussioni.append('Discussione:'+pagina.title()) #Per ogni discussione, rimanda al processo di inserimento for discussione in discussioni: paginadiscussione=wikipedia.Page('it', discussione) sottopaginadiscussione=wikipedia.Page('it', discussione+'/monitoraggio') workon(page) #Alla fine, interrompe il processo finally: wikipedia.stopme()