strip.py
# -*- coding: latin-1 -*-
arquivo_entrada = "_entrada.txt"
entrada = open(arquivo_entrada, 'r')
texto = entrada.read()
entrada.close()
texto = texto.replace("\n-", "\n— ")
while texto.find(" ")+1:
print "Removendo espaços em branco."
texto = texto.replace(" ", " ")
while texto.find(" ")+1:
print "Removendo tabs."
texto = texto.replace(" ", "")
while texto.find("\n\n \n")+1:
print "Removendo linhas em branco."
texto = texto.replace("\n\n \n", "\n\n")
while texto.find("\n\n\n")+1:
print "Removendo linhas vazias"
texto = texto.replace("\n\n\n", "\n\n")
while texto.find("\n ")+1:
print "Removendo espaços em branco."
texto = texto.replace("\n ", "\n")
entrada = open(arquivo_entrada, 'w')
entrada.write(texto)
entrada.close()
strip_lei.py
# -*- coding: latin-1 -*-
import re
arquivo_entrada = "_entrada.txt"
entrada = open(arquivo_entrada, 'r')
texto = entrada.read()
entrada.close()
texto = texto.replace(" – ", " — ").replace("\n-", "\n—").replace("°", "º")
texto = texto.replace(" º", "º").replace(" )", ")")
texto = texto.replace(".º", "º").replace("º.", "º")
while texto.find("\n\n\n")+1:
print "Removendo linhas vazias"
texto = texto.replace("\n\n\n", "\n\n")
texto = re.sub("\nT(ÍTULO|ítulo) (.*)\n\n", "\n*Título \\2: ", texto)
texto = re.sub("\nT(ÍTULO|ítulo) (.*)\n", "\n*Título \\2: ", texto)
texto = re.sub("\nC(APÍTULO|apítulo) (.*)\n", "\n\n=Capítulo \\2=\n;", texto)
texto = re.sub("\nS(EÇÃO|eção) (.*)\n", "\n\n==Seção \\2==\n;", texto)
texto = re.sub("\nS(ECÇÃO|ecção) (.*)\n", "\n\n==Secção \\2==\n;", texto)
texto = re.sub("\nS(UBSEÇÃO|ubseção) (.*)\n", "\n\n===Subseção \\2===\n;", texto)
texto = re.sub("\nS(UBSECÇÃO|ubsecção) (.*)\n", "\n\n===Subsecção \\2===\n;", texto)
texto = re.sub("\nArtigo ([0-9]*)(º|)", "\n\n====Art. \\1\\2====\n", texto)
texto = re.sub("\nArt. ([0-9]*)(º|)", "\n\n====Art. \\1\\2====\n", texto)
texto = re.sub("\n§( |)([0-9]*)(º|)", "\n\n'''§ \\2\\3'''", texto)
texto = re.sub("\nParágrafo (Ú|ú)nico( |)(-|.)", "\n\n'''Parágrafo único'''. ", texto)
texto = re.sub("\n([IVXL]*)( |)(-|—)", "\n:'''\\1''' -", texto)
texto = re.sub("\n([a-z])\)", "\n::\\1) ", texto)
texto = texto.replace(":'''''' -", "")
while texto.find(" ")+1:
print "Removendo tabs."
texto = texto.replace(" ", "")
while texto.find(" ")+1:
print "Removendo espaços em branco."
texto = texto.replace(" ", " ")
while texto.find("\n\n \n")+1:
print "Removendo linhas em branco."
texto = texto.replace("\n\n \n", "\n\n")
while texto.find("\n\n\n")+1:
print "Removendo linhas vazias"
texto = texto.replace("\n\n\n", "\n\n")
while texto.find("\n ")+1:
print "Removendo espaços em branco."
texto = texto.replace("\n ", "\n")
while texto.find(" \n")+1:
print "Removendo espaços em branco."
texto = texto.replace(" \n", "\n")
texto = re.sub("\n;\n", "\n;", texto)
texto = re.sub("\n:(.*)\n\n:", "\n:\\1\n:", texto)
entrada = open(arquivo_entrada, 'w')
entrada.write(texto)
entrada.close()
num_romano.py
# -*- coding: utf-8 -*-
"""
num_romano(int), retorna int convertido em numerais romanos
Limitado até 999.
"""
def num_romano(num_inteiro):
centena = ((num_inteiro/100)%10)*100
dezena = ((num_inteiro/10)%10)*10
unidade = ((num_inteiro/1)%10)
cap_romano=""
if centena == 100:
cap_romano+='C'
elif centena == 200:
cap_romano+='CC'
elif centena == 300:
cap_romano+='CCC'
elif centena == 400:
cap_romano+='CD'
elif centena == 500:
cap_romano+='D'
elif centena == 600:
cap_romano+='DC'
elif centena == 700:
cap_romano+='DCC'
elif centena == 800:
cap_romano+='DCCC'
elif centena == 900:
cap_romano+='CM'
if dezena == 10:
cap_romano+='X'
elif dezena == 20:
cap_romano+='XX'
elif dezena == 30:
cap_romano+='XXX'
elif dezena == 40:
cap_romano+='XL'
elif dezena == 50:
cap_romano+='L'
elif dezena == 60:
cap_romano+='LX'
elif dezena == 70:
cap_romano+='LXX'
elif dezena == 80:
cap_romano+='LXXX'
elif dezena == 90:
cap_romano+='XC'
if unidade == 1:
cap_romano+='I'
elif unidade == 2:
cap_romano+='II'
elif unidade == 3:
cap_romano+='III'
elif unidade == 4:
cap_romano+='IV'
elif unidade == 5:
cap_romano+='V'
elif unidade == 6:
cap_romano+='VI'
elif unidade == 7:
cap_romano+='VII'
elif unidade == 8:
cap_romano+='VIII'
elif unidade == 9:
cap_romano+='IX'
return cap_romano
poem_finder.py
# -*- coding: latin-1 -*-
arquivo_entrada = "_entrada.txt"
entrada = open(arquivo_entrada, 'r')
texto = entrada.readlines()
entrada.close()
entrada = open(arquivo_entrada, 'w')
control = 0
for i in range(len(texto)):
if i > 0 and i < len(texto) - 1 :
if texto[i-1].strip() == "" and texto[i].strip() != "" and texto[i+1].strip() != "" and not control:
entrada.write("<poem>\n")
entrada.write(texto[i])
control = 1
elif control and texto[i].strip() == "":
entrada.write("</poem>\n")
entrada.write("\n")
control = 0
else:
entrada.write(texto[i])
else:
entrada.write(texto[i])
if control:
entrada.write("</poem>\n")
entrada.close()
entrada = open(arquivo_entrada, 'r')
texto = entrada.read()
entrada.close()
texto = texto.replace("</poem>\n\n<poem>", "")
entrada = open(arquivo_entrada, 'w')
entrada.write(texto)
entrada.close()
capitalizador_simples.py
"""Procura por linhas que marcam incício do capitulo, para ser utilizado com o source_prosa.py.
Ex:
1
->Fica:
*I
"""
# -*- coding: latin-1 -*-
from num_romano import num_romano
arquivo_entrada = '_entrada.txt'
entrada = open(arquivo_entrada, 'r')
texto = entrada.readlines()
entrada.close()
entrada = open(arquivo_entrada, 'w')
cap = 1
i = 0
while i < len(texto):
frase = texto[i]
if frase[0] == "@":
cap = 1
entrada.write(frase)
i += 1
elif frase.strip() == num_romano(cap) or frase.strip() == str(cap):
entrada.write("*"+num_romano(cap)+"\n")
cap += 1
i += 1
else:
entrada.write(frase)
i += 1
entrada.close()
source_prosa.py
# -*- coding: utf-8 -*-
"""
Programa gera cabeçalhos para os textos em um arquivo em codificação utf-8, para ser exportado
com auxilio do pagefromfile.py; cria ainda uma lista de índice correspondente ao artigo principal
da obra que deve ser exportada manualmente.
Arquivo de entrada: '_entrada.txt'
Arquivos de saída: 'lista.txt', 'dic.txt'
Marcação de início de capítulo: '*'
Marcação de início de divisão: '@'
Ex:
Autor
Obra
@Primeira Parte
*I: A noite
texto...
"""
from num_romano import num_romano
def gera_cabecalho(inicio, fim, div):
cap = 0
for j in range(inicio, fim):
frase = unicode(texto[j], 'utf-8').encode('utf-8')
if frase[0] == '@':
titulo_div_utf = frase[1:len(frase)-1]
titulo_div = unicode(titulo_div_utf, 'utf-8').encode('utf-8')
titulo_div_secao_utf = titulo_div_utf + ":"
div += 1
lista.write("==%s==\n" % titulo_div )
cap = 0
continue
elif frase[0] == '*':
cap += 1
capitulo_utf = frase[1:len(frase)-1]
capitulo = unicode(capitulo_utf, 'utf-8').encode('utf-8')
if div:
lista.write("* [[%s/%s/%s|Capítulo %s]]\n" % (obra, num_romano(div), num_romano(cap), capitulo ) )
if cap == 1 and div > 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s Capítulo %s\n"
"|anterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|posterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div-1), num_romano(cap_anterior), div_lista[div-1]+":", num_romano(cap_anterior),
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
elif cap == 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s Capítulo %s\n"
"|anterior=\n"
"|posterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
else:
saida.write("[[Categoria:%s|%s, Capítulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_utf, cap-1) )
if cap == cap_atual and div != div_lista[0]:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s Capítulo %s\n"
"|anterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|posterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
obra_utf, num_romano(div+1), num_romano(1), div_lista[div+1]+":", num_romano(1),
notas_utf) )
elif cap == cap_atual:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s Capítulo %s\n"
"|anterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|posterior=\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
notas_utf) )
else:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s Capítulo %s\n"
"|anterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|posterior=[[%s/%s/%s|%s Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
else:
lista.write("* [[%s/%s|Capítulo %s]]\n" % (obra, num_romano(cap), capitulo) )
if cap == 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=Capítulo %s\n"
"|anterior=\n"
"|posterior=[[%s/%s|Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap+1), num_romano(cap+1),
notas_utf) )
else:
saida.write("[[Categoria:%s|Capítulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap-1) )
if cap == cap_atual:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=Capítulo %s\n"
"|anterior=[[%s/%s|Capítulo %s]]\n"
"|posterior=\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap-1), num_romano(cap-1),
notas_utf) )
else:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=Capítulo %s\n"
"|anterior=[[%s/%s|Capítulo %s]]\n"
"|posterior=[[%s/%s|Capítulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap-1), num_romano(cap-1),
obra_utf, num_romano(cap+1), num_romano(cap+1),
notas_utf) )
else:
saida.write(frase)
if div:
saida.write("[[Categoria:%s|%s Capítulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_secao_utf, cap))
elif cap:
saida.write("[[Categoria:%s|Capítulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap))
entrada = open('_entrada.txt', 'r')
lista = open('lista.txt', 'w')
saida = open('dict.txt', 'w')
texto = entrada.readlines()
autor = texto[0].strip()
obra = texto[1].strip()
notas = texto[2].strip()
autor_utf = unicode(autor, 'utf-8').encode('utf-8')
obra_utf = unicode(obra, 'utf-8').encode('utf-8')
notas_utf = unicode(notas, 'utf-8').encode('utf-8')
titulo_div_secao_utf = ""
lista.write("{{navegar\n"
"|obra=%s\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"{{wikipédia|%s}}\n"
"{{versão para impressão disponível}}\n" % (obra, autor, notas, obra) )
#Gera arquivo com cabeçalho
div_lista = [0]
cap_anterior = 0 # Número do último capítulo do tomo anterior
cap_atual = 0 # Número do último capítulo do tomo atual
inicio = 3
for i in range(3, len(texto)):
frase = unicode(texto[i], 'utf-8').encode('utf-8')
if frase[0] == '@':
div_lista[0] += 1
div_lista += [frase[1:len(frase)].strip()]
if div_lista[0] > 1:
fim = i
gera_cabecalho(inicio, fim, div_lista[0]-2)
inicio = fim
cap_anterior = cap_atual
cap_atual = 0
elif frase[0] == '*':
cap_atual += 1
if div_lista[0]:
gera_cabecalho(inicio, len(texto), div_lista[0]-1)
else:
gera_cabecalho(inicio, len(texto), div_lista[0])
lista.write("\n[[Categoria: ]]\n"
"[[Categoria:%s]]\n"
"[[Categoria:%s| ]]\n"
"[[Categoria:Romances brasileiros]]\n"
"[[Categoria: ]]\n" % (
autor, obra) )
entrada.close()
lista.close()
lista = open('lista.txt', 'r')
texto=lista.readlines()
# Gera arquivo para impressão
saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"==Índice==\n" % (
obra_utf,
obra_utf, obra_utf, autor_utf, notas_utf) )
for i in range(7, len(texto)):
frase = texto[i]
if frase[0] == '*' or frase[0] == '=':
saida.write("%s" % unicode(frase, 'utf-8').encode('utf-8') )
for i in range(7, len(texto)):
frase = texto[i]
if frase[0] == '*':
saida.write("{{quebra de página}}\n"
"{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'utf-8').encode('utf-8') )
saida.write("{{-stop-}}" )
lista.close()
saida.close()
source_poem.py
# -*- coding: utf-8 -*-
"""
Arquivo de entrada: '_entrada.txt'
Arquivos de saída: 'lista.txt', 'dic.txt'
Marcação do título da poesia: '*'
Arquivo dict.txt precisará de inserção manual (find-replace externo) de categorias complementares (data, autor etc)
"""
entrada = open('_entrada.txt', 'r')
lista = open('lista.txt', 'w')
saida = open('dict.txt', 'w')
texto = entrada.readlines()
autor = texto[0].strip()
obra = texto[1].strip()
notas = texto[2].strip()
autor_utf = unicode(autor, 'utf-8').encode('utf-8')
obra_utf = unicode(obra, 'utf-8').encode('utf-8')
notas_utf = unicode(notas, 'utf-8').encode('utf-8')
titulo_div_secao_utf = ""
lista.write("{{navegar\n"
"|obra=%s\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"{{wikipédia|%s}}\n"
"{{versão para impressão disponível}}\n" % (obra, autor, notas, obra) )
#Gera arquivo com cabeçalho
poem_control = 0
for i in range(3, len(texto)):
frase = unicode(texto[i], 'utf-8').encode('utf-8')
if frase[0] == '*':
if poem_control:
saida.write("[[Categoria:%s]]\n{{-stop-}}\n\n" % obra_utf)
poem_control = 1
poema_utf = frase[1:].strip()
poema = unicode(poema_utf, 'utf-8').encode('utf-8')
saida.write("{{-start-}}\n{{subst:void|'''%s'''}}"
"{{navegar\n"
"|obra=%s\n"
"|autor=%s\n"
"|notas={{integra|poema=[[%s]].}}\n}}\n" % (
poema_utf, poema_utf, autor_utf, obra_utf) )
lista.write("* [[%s]]\n" % poema )
else:
saida.write(frase)
saida.write("[[Categoria:%s]]\n{{-stop-}}\n\n" % poema_utf )
lista.write("\n[[Categoria:%s| ]]\n"
"[[Categoria:Poesia brasileira]]" % obra )
entrada.close()
lista.close()
lista = open('lista.txt', 'r')
texto=lista.readlines()
# Gera arquivo para impressão
saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"==Índice==\n" % (
obra_utf,
obra_utf, obra_utf, autor_utf, notas_utf) )
for i in range(7, len(texto)):
frase = texto[i]
if frase[0] == '*' or frase[0] == '=':
saida.write("%s" % unicode(frase, 'utf-8').encode('utf-8') )
for i in range(7, len(texto)):
frase = texto[i]
if frase[0] == '*':
saida.write("{{quebra de página}}\n"
"{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'utf-8').encode('utf-8') )
lista.close()
saida.close()
source_lei.py
# -*- coding: latin-1 -*-
import urllib
from num_romano import num_romano
def gera_cabecalho(inicio, fim, div):
cap = 0
for j in range(inicio, fim):
frase = unicode(texto[j], 'latin-1').encode('utf-8')
if j+1 in range(inicio, fim):
frase_proxima = texto[j+1].strip()
if frase[0] == '@':
titulo_div_utf = frase[1:len(frase)-1]
titulo_div = unicode(titulo_div_utf, 'utf-8').encode('latin-1')
titulo_div_secao_utf = titulo_div_utf + ":"
div += 1
lista.write("==%s==\n" % titulo_div )
cap = 0
continue
elif frase[0:2] == '*T':
cap += 1
capitulo_utf = frase[1:len(frase)-1]
capitulo = unicode(capitulo_utf, 'utf-8').encode('latin-1')
lista.write("* [[%s/%s|%s]]\n" % (obra, num_romano(cap), capitulo) )
if div:
lista.write("* [[%s/%s/%s|Capítulo %s]]\n" % (obra, num_romano(div), num_romano(cap), capitulo ) )
if cap == 1 and div > 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s TÃtulo %s\n"
"|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div-1), num_romano(cap_anterior), div_lista[div-1]+":", num_romano(cap_anterior),
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
elif cap == 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s TÃtulo %s\n"
"|anterior=\n"
"|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
else:
saida.write("[[Categoria:%s|%s, TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_utf, cap-1) )
if cap == cap_atual and div != div_lista[0]:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s TÃtulo %s\n"
"|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
obra_utf, num_romano(div+1), num_romano(1), div_lista[div+1]+":", num_romano(1),
notas_utf) )
elif cap == cap_atual:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s TÃtulo %s\n"
"|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|posterior=\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
notas_utf) )
else:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s TÃtulo %s\n"
"|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(div), num_romano(cap),
obra_utf, autor_utf,
titulo_div_utf + ",", capitulo_utf,
obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1),
obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1),
notas_utf) )
else:
if cap == 1:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s\n"
"|anterior=\n"
"|posterior=[[%s/%s|TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap+1), num_romano(cap+1),
notas_utf) )
else:
saida.write("[[Categoria:%s|TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap-1) )
if cap == cap_atual:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s\n"
"|anterior=[[%s/%s|TÃtulo %s]]\n"
"|posterior=\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap-1), num_romano(cap-1),
notas_utf) )
else:
saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|seção=%s\n"
"|anterior=[[%s/%s|TÃtulo %s]]\n"
"|posterior=[[%s/%s|TÃtulo %s]]\n"
"|notas=%s\n}}\n" % (
obra_utf, num_romano(cap),
obra_utf, autor_utf,
capitulo_utf,
obra_utf, num_romano(cap-1), num_romano(cap-1),
obra_utf, num_romano(cap+1), num_romano(cap+1),
notas_utf) )
else:
saida.write(frase)
if frase[0:4] != '====':
if frase[0:3] == '===':
lista.write(":::[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[3:len(frase)-4].replace(" ", "_")).replace("%", "."), unicode(frase[3:len(frase)-4], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) )
elif frase[0:2] == '==':
lista.write("::[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[2:len(frase)-3].replace(" ", "_")).replace("%", "."), unicode(frase[2:len(frase)-3], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) )
elif frase[0:1] == '=':
lista.write(":[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[1:len(frase)-2].replace(" ", "_")).replace("%", "."), unicode(frase[1:len(frase)-2], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) )
if cap:
saida.write("[[Categoria:%s|TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap))
entrada = open('_entrada.txt', 'r')
lista = open('lista.txt', 'w')
saida = open('dict.txt', 'w')
texto = entrada.readlines()
autor = texto[0].strip()
obra = texto[1].strip()
notas = texto[2].strip()
autor_utf = unicode(autor, 'latin-1').encode('utf-8')
obra_utf = unicode(obra, 'latin-1').encode('utf-8')
notas_utf = unicode(notas, 'latin-1').encode('utf-8')
titulo_div_secao_utf = ""
lista.write("{{navegar\n"
"|obra=%s\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"{{versão para impressão disponível}}\n" % (obra, autor, notas) )
#Gera arquivo com cabeçalho
div_lista = [0]
cap_anterior = 0 # Número do último Título do tomo anterior
cap_atual = 0 # Número do último Título do tomo atual
inicio = 3
for i in range(3, len(texto)):
frase = unicode(texto[i], 'latin-1').encode('utf-8')
if frase[0] == '@':
div_lista[0] += 1
div_lista += [frase[1:len(frase)].strip()]
if div_lista[0] > 1:
fim = i
gera_cabecalho(inicio, fim, div_lista[0]-2)
inicio = fim
cap_anterior = cap_atual
cap_atual = 0
elif frase[0] == '*':
cap_atual += 1
if div_lista[0]:
gera_cabecalho(inicio, len(texto), div_lista[0]-1)
else:
gera_cabecalho(inicio, len(texto), div_lista[0])
lista.write("\n[[Categoria:]]\n"
"[[Categoria:Legislação de ]]\n"
"[[Categoria:%s| ]]\n" % (obra) )
entrada.close()
lista.close()
# Gera arquivo para impressão
lista = open('lista.txt', 'r')
texto=lista.readlines()
lista.close()
lista = open('lista.txt', 'w')
saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n"
"{{navegar\n"
"|obra=[[%s]]\n"
"|autor=%s\n"
"|notas=%s\n}}\n"
"==Ãndice==\n" % (
obra_utf,
obra_utf, obra_utf, autor_utf, notas_utf) )
for i in range(7, len(texto)):
frase = texto[i]
if frase[0] == '*' or frase[0] == '=':
saida.write("%s" % unicode(frase, 'latin-1').encode('utf-8') )
for i in range(0, len(texto)):
frase = texto[i]
if frase[0] == '*':
saida.write("{{quebra de página}}\n"
"{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'latin-1').encode('utf-8') )
if texto[i-1][0] ==':':
lista.write("}}\n")
if i+1 in range(0, len(texto)):
if texto[i+1][0] ==':':
lista.write("{{oculto\n|"+frase+"|")
else:
lista.write(frase)
else:
lista.write(frase)
else:
lista.write(frase)
saida.write("{{quebra de página}}\n"
"{{GFDL-print}}\n{{-stop-}}" )
lista.close()
lista = open('lista.txt', 'r')
texto = lista.read()
#texto = re.sub("\n (.*)\n:", "\n{{oculto|* \\1\n|: ", texto)
#texto = re.sub("\n\:(.*)\n*", "\n:(.*)\n}}\n*", texto)
lista.close()
image2djvu.py
# -*- coding: latin-1 -*-
'''
inicio: número da primeira imagem
fim: número da última imagem
nome_imagem: prefixo do nome da imagem
Os arquivos são importados sob o nome de 'livro.djvu'
'''
import os
inicio = 3
fim = 151
i=inicio
arquivos_djvu=""
os.popen( "djvm -c livro.djvu" )
while i <= fim:
arquivos_djvu=arquivos_djvu+" %s.djvu" % (i)
nome_imagem="%d.jpg" % (i)
cmd = "c44.exe \"%s\" \"%s.djvu\"" % (nome_imagem, i)
os.popen( cmd )
print "Transformando %s em djvu." % nome_imagem
os.popen( "djvm -i livro.djvu %d.djvu" %(i) )
cmd = "del \"%s.djvu\"" % (i)
os.popen( cmd )
i=i+1
print "Pronto!"