Progetto:Bot/Programmi in Python per i bot/dt.py
Vai alla navigazione
Vai alla ricerca
Raccolta di script WIP per le pagine di Indice:Dizionario triestino (1890).djvu.
from scripts import *
import os, re
fileTxt="txt/dt - #np.txt" #np =str(numeroPagina).zfill(4)
sigle=[u' zl.', u' vnp.', u' vn.', u' vezz.', u' vet.', \
u' va.', u' v. pi.', u' v. ant.', u' v.', u' teol.', \
u' t.', u' sup.', u' spreg.', u' smp.', u' smf.', u' sm.',\
u' sfp.', u' sf.', u' scherz.', u' s. corti.', u' prov.', \
u' pron.', u' pr.', u' poet.', u' pl.', u' pir.', u' pes.', \
u' pegg.', u' part.', u' p. sim.', u' p. p.', u' p. e.', \
u' ost.', u' n. pl. sing.', u' mus.', u' mit.', u' min.', \
u' met.', u' med.', u' masch.', u' mar.', u' m. volg.', \
u' m. triv.', u' m. prov.', u' m. furb.', u' m. basso', \
u' m. avv.', u' loc. prov.', u' loc. avv.', u' leg.', \
u' inter.', u' intens.', u' idr.', u' gioc.', u' geol.', \
u' geogr. ', u' gen.', u' fr. met.', u' fig.', u' femm.', \
u' farm.', u' escl.', u' eccl.', u' ecc.', u' der.', u' chim.', \
u' cacc.', u' c. s.', u' bot.', u' avv.', u' astr.', \
u' art. e mest.', u' archit.', u' arald.', u' anat.', u' agr.', \
u' agg.']
def carica(pagina=1, carica=False):
fileLocale=fileTxt.replace("#np",str(pagina-1).zfill(4))
testo=unicode(open(fileLocale).read(),"utf-8")
testo=testo.replace(u'\ufeff',"",1)
txt=testo.split()
print txt[:8]
ri=[]
while len(txt[0])<4:
r=txt.pop(0)
testo=testo.replace(r,"",1)
ri.append(r)
if len(ri)==5:
break
testo=testo.strip(" \n\t")
if testo[0].isupper():
testo="\n"+testo
testo=testo.replace('"',u"\u201c").replace("-\n\n","").replace("-\n","").replace("\t"," ").replace(u"\u25a0"," ")
testo=testo.replace("| ","\n").replace("! ","\n")
testo=testo.replace(';\n\n',u"; ").replace(';\n1 ',u"\n")
lista=produci_lista(testo,"\n",",",1)
for i in lista:
if i.replace("\n","")[0:1].isupper():
lemma=i.replace("\n","").replace(" ","").replace(",","")
testo=testo.replace(i,"\n{{lemma|"+lemma+"}}"+",")
testo=testo.replace("\n"," ")
testo=testo.replace("{{lemma|","\n\n{{lemma|").strip("\n ")
for sigla in sigle:
if sigla in testo:
testo=testo.replace(sigla," {{dtAbbr|"+sigla.strip().replace(" ","_")+"}}")
testo=testo.replace("_"," ")
testo="{{Colonna}}\n"+testo+"\n{{FineColonna}}"
if len(ri)==5:
testo="{{RigaIntestazione|%s|%s|%s|riga=si}}" % (ri[0],ri[1]+" "+ri[2]+" "+ri[3],ri[4]) + testo
else:
testo="{{RigaIntestazione|||}}"+testo
l=len(testo)
half=testo.find("{{lemma|",len(testo)/2)
testo=testo[:half]+"{{AltraColonna}}\n"+testo[half:]
if carica:
wikipedia.Page("it","Pagina:Dizionario triestino (1890).djvu/"+str(pagina)).put(testo)
open(fileLocale,"w").write(testo.encode("utf-8"))
return
def aggiusta(pagina):
testo=leggi_pagina("Pagina:Dizionario triestino (1890).djvu/"+str(pagina))
for sigla in sigle:
if sigla in testo:
testo=testo.replace(sigla," {{dtAbbr|"+sigla.strip().replace(" ","_")+"}}")
testo=testo.replace("_"," ")
scrivi_pagina(testo,False,"Pagina:Dizionario triestino (1890).djvu/"+str(pagina))
return
def scarica(ini=1,fin=579):
for pagina in range(ini,fin):
print pagina,
testo=leggi_pagina("Pagina:Dizionario triestino (1890).djvu/"+str(pagina))
fileLocale=fileTxt.replace("#np",str(pagina-1).zfill(4))
open(fileLocale,"w").write(testo.encode("utf-8"))
return
def lemmi(ini=1, fin=578):
l=[]
for pagina in range(ini,fin):
fileLocale="txt/dt - #np.txt".replace("#np",str(pagina-1).zfill(4))
testo=unicode(open(fileLocale).read(),"utf-8")
lista=produci_lista(testo,"{{lemma|","}}",0)
print lista
for i in lista:
l.append([i.lower(),pagina])
#scrivi_pagina(testo,False,"Pagina:Dizionario triestino (1890).djvu/"+str(pagina))
return l
def dtLemma():
t=carica_pcl("dizLemmi","")
return t
kt=t.keys()
testo=u""
for i in kt:
kpag=t[i][0][1]
print kpag
for n in range(len(t[i])-1):
testo+="|"+t[i][n][0]
if t[i][n+1][1]!=kpag:
testo+="="+str(n)+"\n"
kpag=t[i][n+1][1]
return testo
def somma(lista):
testo=u""
k=lista[0][1]
for i in range(len(lista)-1):
testo+="|"+lista[i][0]
if lista[i][1]!=lista[i+1][1]:
testo+="="+str(lista[i][1])+"\n";
testo+=lista[i][0]+"="+str(lista[i+1][1])
testo="{{#switch:{{{1}}}\n"+testo+"}}"
return testo
def carica_abbr(iniz=u"lmnopqrstuv"):
t=carica_pcl("dizLemmi","")
for car in iniz:
lista=t[car]
lista=sorted(lista,key=lambda x: x[1])
testo=somma(lista)
pagina="Template:DtLemma/"+car.upper()
scrivi_pagina(testo,False,pagina,commento="Aggiornamento")
return
# t=carica_pcl("dizLemmi","");lista=t[u"h"]; lista=sorted(lista,key=lambda x: x[1]);print somma(lista)
def cleanup(pagina):
testo=leggi_pagina("Pagina:Dizionario triestino (1890).djvu/"+str(pagina))
noincl=produci_lista(testo,"<noinclude>","</noinclude>",1)
header=noincl[0]
footer=noincl[len(noincl)-1]
testo=testo[len(header):-len(footer)]
# codifico il testo
#testo,elProt=codifica(testo)
testo=testo.replace(" ;",";")\
.replace(" :",":")
testo,elProt=codifica(testo)
testo=testo.replace("'''","##bold##").replace("''","##ital##")
testo=re.sub(r"1([\'a-zA-Z])",r"l\1",testo)
testo=re.sub(r"([a-zA-Z])1",r"\1l",testo)
lista=re.findall("\w-\w",testo)
for i in lista:
testo=testo.replace(i,i.replace("-",""))
lista=re.findall(u"[bcdfglmnprstv][\'\u2019] \w",testo)
for i in lista:
testo=testo.replace(i,i.replace(" ",""))
testo=testo.replace("'",u"\u2019")
testo=testo.replace("##ital##","''").replace("###bold###","'''")
testo=decodifica(testo,elProt)
ri=find_stringa(testo,"{{RigaIntestazione|","}}",1)
if ri!="":
testo=testo.replace(ri,"")
header=header.replace('div class="pagetext">','div class="pagetext">'+ri)
ri=find_stringa(header,"{{RigaIntestazione|","}}",1)
if ri!="":
if not "|riga=si" in ri:
riNew=ri.replace("}}","|riga=si}}")
header=header.replace(ri,riNew)
#print testo
scrivi_pagina(header+testo+footer,False,"Pagina:Dizionario triestino (1890).djvu/"+str(pagina),commento="cleanup")
return #header,testo,footer
def codifica(testo):
l=[];
res=ss(testo,l,"<math","</math>","")
res=ss(res[0],res[1],"{","}","{")
#print res
res=ss(res[0],res[1],"[","]","[")
#print res
res=ss(res[0],res[1],"<",">","<")
#print res
res=ss(res[0],res[1],"http://"," ","")
#print res
return res
def ss(testo,l,tagi,tagf,x):
while find_stringa(testo,tagi,tagf,1,tagi)>"":
el=find_stringa(testo,tagi,tagf,1,tagi)
testo=testo.replace(el, "###el "+str(len(l))+" ###",1)
l.append(el)
return [testo,l]
def decodifica(testo,l):
for i in range(len(l)):
testo=testo.replace("###el "+str(i)+" ###",l[i],1)
return testo