Use regex instead of parse
This commit is contained in:
parent
dd080fe3a1
commit
ee24f8a47b
@ -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<date>\d\d\d\d/\d\d/\d\d \d\d:\d\d:\d\d) (\d+) (\S+) \[(?P<level>\S+) (\S+) (\d+)\] (?P<channel>[#@%$&]*)(?P<user>[^:]+): (?P<message>.*)', 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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user