My software never has bugs.(i have not software)

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".

Permalink: http://www.mononeurona.org/users/entry/cibat/993


Comments Comentblogs:
1.- asarch 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
2.- cibat 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

New Comentblog

Captcha



Login



Remember me:
cibat
Mi nombre es Angel Resendiz, pues soy una persona común; dos ojos, dos piernas, dos manos... común.
cars education environment hacking music arts
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
karina wrote:
discos de acetato
on 9/2/08

¿Qué estuve haciendo?
¿Cómo estuvo anoche?
3 weeks, 3 days ago
Como no, yo creo que hubiera sido lo mejor en el caso de bush-hijo
3 weeks, 5 days ago
Jaja, der_teufel no había agredido a nadie y ya le toco chupar doble xD
on 31/10/08
A mi se me hace que tiene algo que ver la pinche manguera esa de los hidrones xD xD
on 17/10/08
Y yo ando con tos :( , como que ya esta raro
on 17/10/08
Sip, es flash, y se hace con ActionScript :P
on 14/10/08
pues si, no infinitum :(
on 3/10/08
eso estaría mejor para la encuesta, también en cuanto andamos de peso :P
on 22/9/08
ya se pasan recetas de cocina? o quisiste decir "update" y no "pudete" ? :P
on 4/9/08
@asarch, no me referia a ese tipo de hoyo xD, ese misterio ya lo descubrí :P
on 30/8/08
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.