log_parser.py
changeset 92 74f6a0b01ddf
parent 86 645cf9c4441e
child 97 6165f1ba458d
--- a/log_parser.py	Wed Feb 11 01:00:18 2009 +0200
+++ b/log_parser.py	Wed Feb 11 01:21:22 2009 +0200
@@ -51,7 +51,9 @@
     _TS = r'(?P<timestamp>\S+)'
     _NICK = r'(?P<nickname>.+?)'
     _NICK2 = r'(?P<nickname2>.+?)'
+    _TARGET = r'(?P<target>.+?)'
     _CHAN = r'(?P<channel>.+?)'
+    _CHAN2 = r'(?P<channel2>.+?)'
     _USERHOST = r'(?P<username>.*?)@(?P<hostname>.*?)'
     _MSG = r'(?P<message>.*)'
 
@@ -64,14 +66,14 @@
         (   LogTypes.ACTION,        _TS + r'  \* ' + _NICK + ' ' + _MSG                             ),
         (   LogTypes.JOIN,          _TS + r' -!- ' + _NICK + ' \[' + _USERHOST + '\] has joined ' + _CHAN                               ), 
         (   LogTypes.PART,          _TS + r' -!- ' + _NICK + ' \[' + _USERHOST + '\] has left ' + _CHAN + ' \[(?P<message>.*?)\]'       ),
-        (   LogTypes.KICK,          _TS + r' -!- ' + _NICK2 + ' was kicked from ' + _CHAN + ' by ' + _NICK + ' \[(?P<message>.*?)\]'    ),
+        (   LogTypes.KICK,          _TS + r' -!- ' + _TARGET + ' was kicked from ' + _CHAN + ' by ' + _NICK + ' \[(?P<message>.*?)\]'   ),
         (   LogTypes.MODE,          _TS + r' -!- mode/' + _CHAN + ' \[(?P<mode>.+?)\] by (?P<nickname>\S+)'                             ),
-        (   LogTypes.NICK,          _TS + r' -!- ' + _NICK + ' is now known as (?P<nickname2>\S+)'                                      ),
+        (   LogTypes.NICK,          _TS + r' -!- ' + _NICK + ' is now known as (?P<target>\S+)'                                         ),
         (   LogTypes.QUIT,          _TS + r' -!- ' + _NICK + ' \[' + _USERHOST + '\] has quit \[(?P<message>.*?)\]'                     ),
-        (   LogTypes.TOPIC,         _TS + r' -!- ' + _NICK + ' changed the topic of ' + _CHAN + ' to: (?P<topic>.*)'                    ),
+        (   LogTypes.TOPIC,         _TS + r' -!- (' + _NICK + ' changed the topic of ' + _CHAN + ' to: (?P<topic>.*)|Topic unset by ' + _NICK2 + ' on ' + _CHAN2 + ')'    ),
 
         (   LogTypes.SELF_NOTICE,   _TS + r' \[notice\(' + _CHAN + '\)\] ' + _MSG                   ),
-        (   LogTypes.SELF_NICK,     _TS + r' -!- You\'re now known as (?P<nickname2>\S+)'           ),
+        (   LogTypes.SELF_NICK,     _TS + r' -!- You\'re now known as (?P<target>\S+)'           ),
     )
 
     # precompile
@@ -127,11 +129,14 @@
         # now localize with timezone
         dtz = self.tz.localize(dt)
 
+        # channel, currently unused
+        channel_name = (groups.get('channel') or groups.get('channel2'))
+
         # source
-        source = (groups.get('nickname'), groups.get('username'), groups.get('hostname'), groups.get('flags'))
+        source = (groups.get('nickname') or groups.get('nickname2'), groups.get('username'), groups.get('hostname'), groups.get('flags'))
 
         # target
-        target = groups.get('nickname2')
+        target = groups.get('target')
 
         # data
         if 'message' in groups :