Utente:Alex brollo/baretti.py

Da Wikisource.
Jump to navigation Jump to search
  1. #!/usr/bin/python
    # -*- coding: utf-8  -*-
    import pywikibot as bot
    
    
    from BrolloBot import find_stringa, produci_lista
    from parseTemplate import parseTemplate
    it=bot.Site("it","wikisource")
    
    
    def leggi():
        l=[]
        b=bot.Page(it, "Il Baretti").get().replace("_"," ")
        fascicoli=produci_lista(b,"{{testo|","}}",1)
        for f in fascicoli:
            fascicolo=parseTemplate(f)["1"]
            if bot.Page(it,fascicolo).exists():
                testoFascicolo=bot.Page(it,fascicolo).get().replace("_"," ").replace("{{Testo|","{{testo|")
    
                articoli=produci_lista(testoFascicolo, "{{testo|","}}",1)
                for a in articoli:
                    articolo=parseTemplate(a)["1"][1:]
                    if bot.Page(it,fascicolo + "/"+articolo).exists():
                        testoArticolo=bot.Page(it,fascicolo +"/"+ articolo).get()
    
                        
                        ii=parseTemplate(find_stringa(testoArticolo,"{{IncludiIntestazione|","}}",1))
                        if "autore" in ii:
                            autore=ii["autore"]
                        else:
                            autore="non specificato"
                    else: # articolo non trascritto
                        articolo=articolo + " (non ancora creato)"
                        autore="non specificato"
                    l.append([fascicolo,articolo,autore,"[[%s]]" % (fascicolo+"/"+articolo)])
                    print articolo,autore
        testo1="<pre>\n"
        lista=[]
        for i in l:
            lista.append("\t".join(i))
        testo1+="\n".join(lista)+"\n</pre>\n"
        testo2=""
        for i in l:
            testo2+="* "+i[3].replace(" (non ancora creato)","")+"\n"
        return (testo1,testo2)
    
    #