mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-15 00:30:33 +03:00
Merge pull request #1112 from EDCD/fix/1111/engineerprogress-with-one-engineer
EngineerProgress: Progress can be for a single engineer, no array
This commit is contained in:
commit
d982fc44af
23
monitor.py
23
monitor.py
@ -1713,7 +1713,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
|
||||
:param entry: Journal event dict
|
||||
:return: True if passes validation, else False.
|
||||
"""
|
||||
# The event should have at least one of thes
|
||||
# The event should have at least one of these
|
||||
if 'Engineers' not in entry and 'Progress' not in entry:
|
||||
logger.warning(f"EngineerProgress has neither 'Engineers' nor 'Progress': {entry=}")
|
||||
return False
|
||||
@ -1749,11 +1749,22 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
|
||||
return False
|
||||
|
||||
if 'Progress' in entry:
|
||||
for e in entry['Engineers']:
|
||||
for f in ('Engineer', 'EngineerID', 'Rank', 'Progress', 'RankProgress'):
|
||||
if f not in e:
|
||||
logger.warning(f"Engineer entry without '{f}' key: {e=} in {entry=}")
|
||||
return False
|
||||
# Progress is only a single Engineer, so it's not an array
|
||||
# { "timestamp":"2021-05-24T17:57:52Z",
|
||||
# "event":"EngineerProgress",
|
||||
# "Engineer":"Felicity Farseer",
|
||||
# "EngineerID":300100,
|
||||
# "Progress":"Invited" }
|
||||
for f in ('Engineer', 'EngineerID', 'Rank', 'Progress', 'RankProgress'):
|
||||
if f not in entry:
|
||||
# For some Progress there's no Rank/RankProgress yet
|
||||
if f in ('Rank', 'RankProgress'):
|
||||
if (progress := entry.get('Progress', None)) is not None:
|
||||
if progress in ('Invited', 'Known'):
|
||||
continue
|
||||
|
||||
logger.warning(f"Progress event without '{f}' key: {entry=}")
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user