updated analyze code to use chat.log

added system messages - albeit it does not determine sub-stuff
chat log still needs to eat following packets
This commit is contained in:
2015-04-10 20:52:17 +02:00
parent e43065cc00
commit 1016085bed
5 changed files with 38 additions and 5 deletions

View File

@@ -24,6 +24,7 @@ class ChatLog(Log):
def __init__(self, values=None):
self.values = values or {}
self.reviewed = False
def unpack(self, force=False):
if self.reviewed and not force:
@@ -48,6 +49,19 @@ class ChatLog(Log):
''' returns a String readable by humans explaining this Log '''
return self.values.get('log', 'Unknown Chat Log')
class SystemMessage(ChatLog):
matcher = re.compile(r"^<\s+SYSTEM>\s(?P<message>.*)")
@classmethod
def _is_handler(cls, log):
if log.get('log', '').lstrip().startswith('< SYSTEM>'):
return True
return False
def explain(self):
return '[SYSTEM]: %(message)s' % self.values
class PrivateMessageReceived(ChatLog):
matcher = re.compile(r"^<\s\s\s\sPRIVATE From>\[\s*(?P<nickname>[^\]]+)\]\s(?P<message>.*)")
@@ -146,6 +160,7 @@ class ChatServerDisconnect(ChatLog):
return '[disconnected]'
CHAT_LOGS = [
SystemMessage,
PrivateMessageReceived,
PrivateMessageSent,
ChatMessage, # private messages need to be before chatmessage.

View File

@@ -39,6 +39,7 @@ class CombatLog(Log):
def __init__(self, values=None):
self.values = values or {}
self.reviewed = False
def unpack(self, force=False):
if self.reviewed and not force:

View File

@@ -58,6 +58,7 @@ class GameLog(Log):
def __init__(self, values=None):
self.values = values
self.reviewed = False
def unpack(self, force=False):
if self.reviewed and not force:

View File

@@ -117,6 +117,11 @@ class LogFileSession(LogSession):
self.game_log.set_data(z.read(filename))
self.game_log.parse()
self.files_parsed.append('game.log')
elif fn == 'chat.log' and (not files or fn in files) and not 'chat.log' in self.files_parsed:
self.chat_log = ChatLogFile(fn)
self.chat_log.set_data(z.read(filename))
self.chat_log.parse()
self.files_parsed.append('chat.log')
except:
self._error = True
return