Added message class

This commit is contained in:
Oliver Hartmann 2021-03-08 18:45:49 +01:00
parent ccebedce22
commit dd080fe3a1

View File

@ -1,4 +1,3 @@
import watchdog
import argparse import argparse
import time import time
from parse import parse from parse import parse
@ -22,6 +21,16 @@ channel_mapping = {'#': Channel.GLOBAL,
'$': Channel.TRADE, '$': Channel.TRADE,
'&': Channel.GUILD} '&': 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): def follow(thefile: str):
thefile.seek(0, 2) thefile.seek(0, 2)
while True: while True:
@ -32,12 +41,12 @@ def follow(thefile: str):
yield line 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) 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') if not result:
# print(f'{date.isoformat()}: {result["message"]}') return None
print(text) date = datetime.datetime.strptime(f'{result["date"]} {result["time"]}', '%Y/%m/%d %H:%M:%S')
print(result) return Message(result['message'], date, result['user'], channel_mapping[result['mess_type']])
def setup_args() -> argparse.Namespace: def setup_args() -> argparse.Namespace:
@ -55,5 +64,5 @@ if __name__ == "__main__":
logfile = open(args.logfile, 'r', encoding='utf8') logfile = open(args.logfile, 'r', encoding='utf8')
loglines = follow(logfile) loglines = follow(logfile)
for line in loglines: for line in loglines:
parse_string(line) message = parse_string(line)
# print(line) print(message)