Use regex instead of parse
This commit is contained in:
parent
dd080fe3a1
commit
ee24f8a47b
@ -1,8 +1,8 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import time
|
import time
|
||||||
from parse import parse
|
|
||||||
import datetime
|
import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
class Channel(Enum):
|
class Channel(Enum):
|
||||||
@ -42,11 +42,12 @@ def follow(thefile: str):
|
|||||||
|
|
||||||
|
|
||||||
def parse_string(text: str) -> Message:
|
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:
|
if not result:
|
||||||
return None
|
return None
|
||||||
date = datetime.datetime.strptime(f'{result["date"]} {result["time"]}', '%Y/%m/%d %H:%M:%S')
|
date = datetime.datetime.strptime(result.group('date'), '%Y/%m/%d %H:%M:%S')
|
||||||
return Message(result['message'], date, result['user'], channel_mapping[result['mess_type']])
|
return Message(result.group('message'), date, result.group('user'), channel_mapping[result.group('channel')])
|
||||||
|
|
||||||
|
|
||||||
def setup_args() -> argparse.Namespace:
|
def setup_args() -> argparse.Namespace:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user