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')