diff --git a/trader.py b/trader.py index 390711d..51b90c1 100644 --- a/trader.py +++ b/trader.py @@ -1,4 +1,3 @@ -import watchdog import argparse import time from parse import parse @@ -22,6 +21,16 @@ channel_mapping = {'#': Channel.GLOBAL, '$': Channel.TRADE, '&': Channel.GUILD} +class Message(): + def __init__(self, message: str, date: datetime.datetime, user: str, channel: Channel) -> None: + self.message = message + self.date = date + self.user = user + self.channel = channel + + def __str__(self) -> str: + return f'{self.date} - {self.channel.name}: {self.user}: {self.message}' + def follow(thefile: str): thefile.seek(0, 2) while True: @@ -32,12 +41,12 @@ def follow(thefile: str): yield line -def parse_string(text: str): +def parse_string(text: str) -> Message: result = parse('{date} {time} {timemicro} {noidea} [{level} {client} {id}]{mess_type:1}{user}: {message}', text) - # date = datetime.datetime.strptime(f'{result["date"]} {result["time"]}', '%Y/%m/%d %H:%M:%S') - # print(f'{date.isoformat()}: {result["message"]}') - print(text) - print(result) + if not result: + return None + date = datetime.datetime.strptime(f'{result["date"]} {result["time"]}', '%Y/%m/%d %H:%M:%S') + return Message(result['message'], date, result['user'], channel_mapping[result['mess_type']]) def setup_args() -> argparse.Namespace: @@ -55,5 +64,5 @@ if __name__ == "__main__": logfile = open(args.logfile, 'r', encoding='utf8') loglines = follow(logfile) for line in loglines: - parse_string(line) - # print(line) + message = parse_string(line) + print(message)