Outil de conversion de journal Empathy vers un journal IRC dans MoinMoin.
authorProgfou <jean-christophe.andre@auf.org>
Tue, 23 Aug 2011 17:16:01 +0000 (00:16 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Tue, 23 Aug 2011 17:16:01 +0000 (00:16 +0700)
empathy/empathy-log2moin.py [new file with mode: 0755]

diff --git a/empathy/empathy-log2moin.py b/empathy/empathy-log2moin.py
new file mode 100755 (executable)
index 0000000..0de70f1
--- /dev/null
@@ -0,0 +1,52 @@
+#! /usr/bin/env python
+# -*- coding: UTF-8 -*-
+# Auteur: Jean Christophe André
+# Licence: Public Domain
+# Created: 2008-05-30
+
+from sys import argv
+from xml.dom import minidom
+from time import *
+
+aliases = {
+    u'Jean Christophe André': u'progfou',
+}
+
+result = ''
+last_day = False
+
+xmldoc = minidom.parse(argv[1]).documentElement
+for message in xmldoc.getElementsByTagName('message'):
+    # récupérer l'heure
+    time = strptime(message.getAttribute('time'), '%Y%m%dT%H:%M:%S')
+    timestamp = mktime(time) + 7 * 3600
+    time = localtime(timestamp)
+
+    # récupérer l'autheur
+    name = message.getAttribute('name')
+    if aliases.has_key(name):
+        name = aliases[name]
+
+    # récupérer le texte
+    text = ''
+    for child in message.childNodes:
+        child_text = message.firstChild.wholeText
+        child_text = child_text.replace(u'\uFEFF','')
+        child_text = child_text.replace("\n","\n <> ")
+        text += child_text
+
+    # construire la ligne de log IRC
+    if message.getAttribute('type') == 'normal':
+        day = strftime("%d/%m", time)
+        if day != last_day:
+            if last_day:
+               result += "}}}\n"
+            result += "== " + day + " ==\n{{{#!irc\n"
+            last_day = day
+        result += strftime('%H:%M', time)
+        result += ' <' + name + '> ' + text + "\n"
+    elif message.getAttribute('type') == 'action':
+        result += '* <' + name + '> ' + text + "\n"
+
+result += "}}}\n"
+print result.encode('utf-8')