commit ccebedce22dc9209b9a73bf9ddf2cd0d94ee7677 Author: Oliver Hartmann Date: Mon Mar 8 00:08:11 2021 +0100 Continous read of the log file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b694934 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.venv \ No newline at end of file diff --git a/trader.py b/trader.py new file mode 100644 index 0000000..390711d --- /dev/null +++ b/trader.py @@ -0,0 +1,59 @@ +import watchdog +import argparse +import time +from parse import parse +import datetime +from enum import Enum + + +class Channel(Enum): + WHISPER = 0 + GLOBAL = 1 + PARTY = 2 + LOCAL = 3 + TRADE = 4 + GUILD = 5 + + +channel_mapping = {'#': Channel.GLOBAL, + '@': Channel.WHISPER, + '%': Channel.PARTY, + '': Channel.LOCAL, + '$': Channel.TRADE, + '&': Channel.GUILD} + +def follow(thefile: str): + thefile.seek(0, 2) + while True: + line = thefile.readline() + if not line: + time.sleep(0.1) + continue + yield line + + +def parse_string(text: str): + 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) + + +def setup_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description='Poe Trader', epilog="And that's how you trade") + + parser.add_argument( + '-l', '--logfile', help='Path of the logfile that should be used', default=r'D:\Poe\logs\Client.txt') + + return parser.parse_args() + + +if __name__ == "__main__": + args = setup_args() + logfile = open(args.logfile, 'r', encoding='utf8') + loglines = follow(logfile) + for line in loglines: + parse_string(line) + # print(line)