Python:APC.py
From Botwiki
Chiede all'utente il log odierno e quindi il titolo della pagina da aiutare per cui aprire una proposta di cancellazione semplificata. A fine routine chiede un'altra pagina. Se viene data una stringa nulla la routine termina.
# -*- coding: utf8 -*- import re, string, sys, getpass import httplib import wikipedia, config import urllib def apri_canc(pagina, log): crlf = chr(13) + chr(10) site = wikipedia.getSite('it', 'wikipedia') pl = wikipedia.Page(site, pagina) testo_originale = pl.get() k = string.find(testo_originale, "{{A|") + string.find(testo_originale,"{{a|") + 1 if k > -1: k1 = string.find(testo_originale,"|", k + 4) k4 = string.find(testo_originale,"}}", k + 4) motivo = testo_originale[k+4:k1] wikipedia.output("motivo:" + motivo) if motivo=="": motivo = "senza motivazione" else: motivo = "con motivazione "+ chr(34) + motivo + chr(34) k2 = string.find(testo_originale,"|", k1 + 1, k4) k3 = string.find(testo_originale,"|", k2 + 1, k4) if k3 == -1: k3 = string.find(testo_originale,"}}", k2 + 1) mese = testo_originale[k2+1:k3] wikipedia.output("mese:" + mese) testo_nuovo = testo_originale[:k] + "{{cancellazione}}" + testo_originale[k4+2:] pl.put(testo_nuovo, "Bot: procedura semiautomatica: proposta di cancellazione") pd = wikipedia.Page(site, "Wikipedia:Pagine da cancellare/" + pagina) try: testo_cancellazione = pd.get() wikipedia.output(u"la pagina e' stata gia' proposta per la cancellazione in passato") except: testo_cancellazione = "" wikipedia.output(u"apro la procedura di cancellazione") testo_cancellazione = "{{Cancellazione/richiesta|" + pagina +"}}" + crlf + crlf testo_cancellazione = testo_cancellazione + "Voce segnalata da aiutare " + motivo testo_cancellazione = testo_cancellazione + " da " + mese + ". --~~~~" pd.put(testo_cancellazione, "procedura semiautomatica: nuova proposta di cancellazione") wikipedia.output(u"concludo la procedura di cancellazione") pg = wikipedia.Page(site, "Wikipedia:Pagine da cancellare/Log/"+log) wikipedia.output(pg) testo_log = pg.get() l = string.find(testo_log, "!--inizio procedure interrotte-->")-1 testo_nuovo_log = testo_log[:l]+"{{Wikipedia:Pagine da cancellare/"+pagina+"}}"+crlf testo_nuovo_log = testo_nuovo_log + testo_log[l:] pg.put(testo_nuovo_log, "procedura semiautomatica: aggiunta proposta di cancellazione") else: wikipedia.output(u"la pagina non e' segnalata da aiutare") def urlname(title): """The name of the page this Page refers to, in a form suitable for the URL of the page.""" title = title.replace(' ', '_') site = wikipedia.getSite() encodedTitle = title.encode(site.encoding()) return urllib.quote(encodedTitle) def main(): pagina = "!" log = wikipedia.input('anno mese giorno - log odierno') while pagina != str(): pagina = urlname(wikipedia.input('titolo della pagina da elaborare')) apri_canc(pagina, log) if __name__ == "__main__": try: main() finally: wikipedia.stopme()
BlogMarks
del.icio.us
digg
Fark
Furl
Newsvine
reddit
Segnalo
Simpy
Slashdot
smarking
Spurl
Wists
