From ee24f8a47bf6dc3c4a7e83f087bcf0d0170818d1 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Mon, 8 Mar 2021 22:08:07 +0100 Subject: [PATCH] Use regex instead of parse --- trader.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/trader.py b/trader.py index 51b90c1..79a6e83 100644 --- a/trader.py +++ b/trader.py @@ -1,8 +1,8 @@ import argparse import time -from parse import parse import datetime from enum import Enum +import re class Channel(Enum): @@ -42,11 +42,12 @@ def follow(thefile: 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) + result = re.search('(?P\d\d\d\d/\d\d/\d\d \d\d:\d\d:\d\d) (\d+) (\S+) \[(?P\S+) (\S+) (\d+)\] (?P[#@%$&]*)(?P[^:]+): (?P.*)', text) 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']]) + date = datetime.datetime.strptime(result.group('date'), '%Y/%m/%d %H:%M:%S') + return Message(result.group('message'), date, result.group('user'), channel_mapping[result.group('channel')]) def setup_args() -> argparse.Namespace: