Cette page présente un « sale script écrit vite fait » pour convertir les logs XML de Empathy vers le format de minutes IRC utilisé par l'analyseur de MoinMoin.

   1 #! /usr/bin/env python
   2 # -*- coding: UTF-8 -*-
   3 # Auteur: Jean Christophe André
   4 # Licence: Public Domain
   5 
   6 from sys import argv
   7 from xml.dom import minidom
   8 from time import *
   9 
  10 aliases = {
  11         u'Jean Christophe André': u'progfou',
  12 }
  13 
  14 result = ''
  15 last_day = False
  16 
  17 xmldoc = minidom.parse(argv[1]).documentElement
  18 for message in xmldoc.getElementsByTagName('message'):
  19         # récupérer l'heure
  20         time = strptime(message.getAttribute('time'), '%Y%m%dT%H:%M:%S')
  21         timestamp = mktime(time) + 7 * 3600
  22         time = localtime(timestamp)
  23 
  24         # récupérer l'autheur
  25         name = message.getAttribute('name')
  26         if aliases.has_key(name):
  27                 name = aliases[name]
  28 
  29         # récupérer le texte
  30         text = ''
  31         for child in message.childNodes:
  32                 child_text = message.firstChild.wholeText
  33                 child_text = child_text.replace(u'\uFEFF','')
  34                 child_text = child_text.replace("\n","\n <> ")
  35                 text += child_text
  36 
  37         # construire la ligne de log IRC
  38         if message.getAttribute('type') == 'normal':
  39                 day = strftime("%d/%m", time)
  40                 if day != last_day:
  41                         if last_day:
  42                                 result += "}}}\n"
  43                         result += "== " + day + " ==\n{{{#!irc\n"
  44                         last_day = day
  45                 result += strftime('%H:%M', time)
  46                 result += ' <' + name + '> ' + text + "\n"
  47         elif message.getAttribute('type') == 'action':
  48                 result += '* <' + name + '> ' + text + "\n"
  49 
  50 result += "}}}\n"
  51 print result.encode('utf-8')

JeanChristopheAndré/Notes/EmpathyVersMinutes (dernière édition le 2008-05-30 17:46:09 par JeanChristopheAndré)