diff --git a/FileReader.py b/FileReader.py index c48d6a2..331b23f 100644 --- a/FileReader.py +++ b/FileReader.py @@ -3,8 +3,6 @@ import time import threading import insurgencyParsing as iparse -from datetime import datetime - DATE_LENGTH = 15 def readfile(filename, start_at_end, exit_on_eof, parsingBackend, startAtTime, cacheFile, cpus=1): @@ -17,7 +15,7 @@ def readfile(filename, start_at_end, exit_on_eof, parsingBackend, startAtTime, c while True: line = f.readline() try: - dt = datetime.strptime(line[:DATE_LENGTH], "%b %d %H:%M:%S") + dt = parsingBackend.parseDate(line) if not dt: break if dt > startAtTime: diff --git a/insurgencyParsing.py b/insurgencyParsing.py index 9df8e22..6ff9bae 100644 --- a/insurgencyParsing.py +++ b/insurgencyParsing.py @@ -190,15 +190,20 @@ def create_event(etype,line,timestamp): else: raise Exception("Cannot create event from logline. (etype was: '{}')".format(etype)) +def parseDate(line): + if ": L " in l.split("0x42")[0]: + timestamp = datetime.strptime(l.split(": L ")[1].split(": [")[0],"%m/%d/%Y - %H:%M:%S") + else: + timestamp = datetime.strptime(l.split(": [ints_logging.smx]")[0],"L %m/%d/%Y - %H:%M:%S") + return timestamp + + def parse_line_to_event(l): tmp = l.split("0x42,")[1].strip("\n") etype = tmp.split(",")[0].split("|")[0] try: - if ": L " in l.split("0x42")[0]: - timestamp = datetime.strptime(l.split(": L ")[1].split(": [")[0],"%m/%d/%Y - %H:%M:%S") - else: - timestamp = datetime.strptime(l.split(": [ints_logging.smx]")[0],"L %m/%d/%Y - %H:%M:%S") event = create_event(etype,tmp,timestamp) + timestamp = parseDate(line) except ValueError: print(" ---- NO TIME ---- | WARNING: Failed to parse time for event, SKIP") return None