xchat2html.py
2007-12-07 17:13:49-06
python
La semana pasada, tuve mi xchat abierto durante toda la plática de sql, pero desafortunadamente, por cuestiones de chamba, no pude ir siguiéndola en "tiempo real", así que al final del día guardé el log. Al siguiente día abrí dicho archivo con la intención de ir siguiendo la plática, pero me dí cuenta que era bastante difícil de leer. Entre "quien dijo esto??", "no me importa si fulanito entró o salio, perengano se cambió de nick", etc. Bueno, pues es todo un desastre seguir una lectura en esas condiciones, así que me dí a la tarea de escribir un script que pasara ese horrible log a algo más legible por un humano.
Lo acabo de terminar, y ya es usable, pero solo lo he probado con un par de logs, así que espero comentarios y bugs para irlo componiendo. de momento estaría bien irlo probando con los logs de las anteriores pláticas.
Por cierto, según se hay dos maneras de guardar el log: 1- el que se guarda automáticamente, y 2- el que se guarda dando click derecho en la platica y darle "Ventana-->Guardar texto" ambos son diferentes, pero el script detecta de cuál se trata y genera el archivo adecuado.
Ah, y algo muuy importante. los colores actuales creo que solo a mi me gustan :P, así que espero alguien que tenga buen ojo para eso de combinar aporte el código rgb de 3 colorsítos para cambiarlos, ^,^!
Su uso es muy sencillo:
Al script hay que pasarle como parametro la ruta del archivo que contiene el log, y se creara un archivo en la misma carpeta del script que contendrá el archivo .html resultante. aquí un ejemplo de su uso:
cibat@amatli:~/xchat2html$ ls -l
-rw------- 1 cibat cibat 45432 2007-12-07 18:15 aarkerio_sql.txt
-rw-r--r-- 1 cibat cibat 1905 2007-12-07 18:15 xchat2html.py
cibat@amatli:~/xchat2html$ python xchat2html.py aarkerio_sql.txt
El archivo aarkerio_sql.txt.html se creó satisfactoriamente
cibat@amatli:~/xchat2html$ ls -l
-rw------- 1 cibat cibat 45432 2007-12-07 18:15 aarkerio_sql.txt
-rw-r--r-- 1 cibat cibat 77484 2007-12-07 18:17 aarkerio_sql.txt.html
-rw-r--r-- 1 cibat cibat 1905 2007-12-07 18:15 xchat2html.py
Pues estuve intentando subir el script, pero simpre me mandaba un error ("This does not look like one allowed file txt") al darle upload, así que voy a pegar el chorizo de script aquí mismo :P
#!/usr/bin/python
# _*_ coding: utf-8 _*_
#xchat2html.py
#VERSION: 0.1
#AUTOR: ciBAt
#CORREO: sonajadiabolicaarrobagmailpuntocom
#FECHA: 07/12/2006
#LICENCIA: BSD
"""Uso: ./xchat2html.py file.txt"""
import sys
def main():
'''Main'''
if len(sys.argv)!=2:
print __doc__
sys.exit("Error en cantidad de argumentos ")
try:
src_file = open(sys.argv[1], 'r')
except IOError:
sys.exit("Error: No se puede abrir el archivo origen")
html_buffer = '''<html>
<head><title>%s</title>
<style type="text/css">
tr.s1{
background: #d9e3d2;
}
tr.s2 {
background: #c7cfc0;
}
tr.s3 {
font-size:xx-small;
background: #cbd0c8;
color:gray;
}
body{
background:#cbd0c8;
}
table,td{
padding:2px;
border: 1px solid silver;
}
h1{
color: #d9e3d2;
}
</style>
</head>
<body>
<h1>%s</h1>
<table >
'''% (sys.argv[1], sys.argv[1])
styles = ('s1','s2')
linenumber = 0
firstline = src_file.readline()
if firstline[:4] == '****': start=16
else: start=0
for line in src_file:
if len(line)>16: line=line[start:]
if line[0] == '*':
html_buffer += '<tr class="s3"><td colspan=2>%s</td></tr>' % line
elif line[0] == '<':
html_buffer += '<tr class="%s">' % styles[linenumber % 2]
html_buffer += '<td>%s</td>' % line[1:line.find('>')]
html_buffer += '<td>%s</td></tr>' % line[int(line.find('>')+1):]
linenumber += 1
html_buffer += '''
</table>
</body>
</html> '''
src_file.close()
try:
output_file = open('%s.html'%sys.argv[1],'w')
except IOError:
sys.exit("Error: No se puede abrir el archivo destino")
output_file.write(html_buffer)
output_file.close()
print 'El archivo %s.html se creó satisfactoriamente' % sys.argv[1]
if __name__ == '__main__':
main()
Es importante NO modificar los espacios, ya que python toma en cuenta esas tabulaciones como si fueran llaves en c o java.
Solo es copiar y pegar ese código en un archivo llamado "xchat2html.py".
Lo acabo de terminar, y ya es usable, pero solo lo he probado con un par de logs, así que espero comentarios y bugs para irlo componiendo. de momento estaría bien irlo probando con los logs de las anteriores pláticas.
Por cierto, según se hay dos maneras de guardar el log: 1- el que se guarda automáticamente, y 2- el que se guarda dando click derecho en la platica y darle "Ventana-->Guardar texto" ambos son diferentes, pero el script detecta de cuál se trata y genera el archivo adecuado.
Ah, y algo muuy importante. los colores actuales creo que solo a mi me gustan :P, así que espero alguien que tenga buen ojo para eso de combinar aporte el código rgb de 3 colorsítos para cambiarlos, ^,^!
Su uso es muy sencillo:
Al script hay que pasarle como parametro la ruta del archivo que contiene el log, y se creara un archivo en la misma carpeta del script que contendrá el archivo .html resultante. aquí un ejemplo de su uso:
cibat@amatli:~/xchat2html$ ls -l
-rw------- 1 cibat cibat 45432 2007-12-07 18:15 aarkerio_sql.txt
-rw-r--r-- 1 cibat cibat 1905 2007-12-07 18:15 xchat2html.py
cibat@amatli:~/xchat2html$ python xchat2html.py aarkerio_sql.txt
El archivo aarkerio_sql.txt.html se creó satisfactoriamente
cibat@amatli:~/xchat2html$ ls -l
-rw------- 1 cibat cibat 45432 2007-12-07 18:15 aarkerio_sql.txt
-rw-r--r-- 1 cibat cibat 77484 2007-12-07 18:17 aarkerio_sql.txt.html
-rw-r--r-- 1 cibat cibat 1905 2007-12-07 18:15 xchat2html.py
Pues estuve intentando subir el script, pero simpre me mandaba un error ("This does not look like one allowed file txt") al darle upload, así que voy a pegar el chorizo de script aquí mismo :P
#!/usr/bin/python
# _*_ coding: utf-8 _*_
#xchat2html.py
#VERSION: 0.1
#AUTOR: ciBAt
#CORREO: sonajadiabolicaarrobagmailpuntocom
#FECHA: 07/12/2006
#LICENCIA: BSD
"""Uso: ./xchat2html.py file.txt"""
import sys
def main():
'''Main'''
if len(sys.argv)!=2:
print __doc__
sys.exit("Error en cantidad de argumentos ")
try:
src_file = open(sys.argv[1], 'r')
except IOError:
sys.exit("Error: No se puede abrir el archivo origen")
html_buffer = '''<html>
<head><title>%s</title>
<style type="text/css">
tr.s1{
background: #d9e3d2;
}
tr.s2 {
background: #c7cfc0;
}
tr.s3 {
font-size:xx-small;
background: #cbd0c8;
color:gray;
}
body{
background:#cbd0c8;
}
table,td{
padding:2px;
border: 1px solid silver;
}
h1{
color: #d9e3d2;
}
</style>
</head>
<body>
<h1>%s</h1>
<table >
'''% (sys.argv[1], sys.argv[1])
styles = ('s1','s2')
linenumber = 0
firstline = src_file.readline()
if firstline[:4] == '****': start=16
else: start=0
for line in src_file:
if len(line)>16: line=line[start:]
if line[0] == '*':
html_buffer += '<tr class="s3"><td colspan=2>%s</td></tr>' % line
elif line[0] == '<':
html_buffer += '<tr class="%s">' % styles[linenumber % 2]
html_buffer += '<td>%s</td>' % line[1:line.find('>')]
html_buffer += '<td>%s</td></tr>' % line[int(line.find('>')+1):]
linenumber += 1
html_buffer += '''
</table>
</body>
</html> '''
src_file.close()
try:
output_file = open('%s.html'%sys.argv[1],'w')
except IOError:
sys.exit("Error: No se puede abrir el archivo destino")
output_file.write(html_buffer)
output_file.close()
print 'El archivo %s.html se creó satisfactoriamente' % sys.argv[1]
if __name__ == '__main__':
main()
Es importante NO modificar los espacios, ya que python toma en cuenta esas tabulaciones como si fueran llaves en c o java.
Solo es copiar y pegar ese código en un archivo llamado "xchat2html.py".
Permalink: http://www.mononeurona.org/users/entry/cibat/993
Comentblogs:1.-
asarch wrote:
Es muy facil postear codigo:
Utiliza el editor de HTML del Seamonkey para editar el contenido de tu post.
Cuando escribas codigo nada mas aplicale la fuente "Courier" al texto y dale un nivel de identacion para que se vea "perron".
Ahora nada mas copia y pega el texto en el editor integrado de los blogs.
Suerte
2007-12-08 09:33:23-06
Es muy facil postear codigo:
Utiliza el editor de HTML del Seamonkey para editar el contenido de tu post.
Cuando escribas codigo nada mas aplicale la fuente "Courier" al texto y dale un nivel de identacion para que se vea "perron".
Ahora nada mas copia y pega el texto en el editor integrado de los blogs.
Suerte
2007-12-08 09:33:23-06
2.-
cibat wrote:
Pues le estuve moviendo con el puro editor del blog y parece que ya quedó, ahora si, ya se puede utilizar ;)
2007-12-08 09:48:33-06
Pues le estuve moviendo con el puro editor del blog y parece que ya quedó, ahora si, ya se puede utilizar ;)
2007-12-08 09:48:33-06









