Utilizador:Giro720/Scripts: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Giro720 (discussão | contribs)
Giro720 (discussão | contribs)
Sem resumo de edição
Linha 1:
==strip.py==
<source lang="python">
<pre>
# -*- coding: latin-1 -*-
 
Linha 8:
texto = entrada.read()
entrada.close()
texto = texto.replace("—", "&mdash;").replace("\n-", "\n&mdash;n— ")
 
while texto.find(" ")+1:
Linha 14:
texto = texto.replace(" ", " ")
 
while texto.find(" ")+1:
print "Removendo tabs."
texto = texto.replace(" ", "")
 
while texto.find("\n\n \n")+1:
Linha 33:
entrada.write(texto)
entrada.close()
</presource>
 
==strip_lei.py==
<source lang="python">
# -*- 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 = 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("\nArt. ([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)
 
entrada = open(arquivo_entrada, 'w')
entrada.write(texto)
entrada.close()
</source>
 
==num_romano.py==
<source lang="python">
<pre>
# -*- coding: utf-8 -*-
"""
Linha 104 ⟶ 167:
 
return cap_romano
</presource>
 
==poem_finder.py==
<source lang="python">
<pre>
# -*- coding: latin-1 -*-
 
Linha 146 ⟶ 209:
entrada.write(texto)
entrada.close()
</presource>
==capitalizador_simples.py==
<source lang="python">
<pre>
"""Procura por linhas que marcam incício do capitulo, para ser utilizado com o source_prosa.py.
Ex:
Linha 184 ⟶ 247:
 
entrada.close()
</presource>
 
==source_prosa.py==
<source lang="python">
<pre>
# -*- coding: latin-1 -*-
"""
Linha 421 ⟶ 484:
# Gera arquivo para impressão
 
saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s/Versão para impressão'''}}{{Versão para impressão|%s}}\n"
"{{navegar\n"
"|obra=[[%s]]\n"
Linha 438 ⟶ 501:
frase = texto[i]
if frase[0] == '*':
saida.write("<br{{quebra style=\"page-break-after:always;\">de página}}\n"
"{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'latin-1').encode('utf-8') )
 
saida.write("<br{{quebra style=\"page-break-after:always;\">de página}}\n"
"{{GFDL-print}}\n{{-stop-}}" )
lista.close()
saida.close()
</presource>
 
==source_poem.py==
<source lang="python">
<pre>
# -*- coding: latin-1 -*-
"""
Linha 535 ⟶ 598:
lista.close()
saida.close()
</presource>
 
==source_lei.py==
<source lang="python">
# -*- coding: latin-1 -*-
 
import urllib, urllib2
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("[[Categoria:]]\n"
"[[Categoria:Legislação de ]]\n"
"[[Categoria:%s| ]]\n" % (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, 'latin-1').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], 'latin-1').encode('utf-8') )
 
saida.write("{{quebra de página}}\n"
"{{GFDL-print}}\n{{-stop-}}" )
lista.close()
saida.close()
</source>