1
0
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:
Athanasius 2021-05-27 11:26:19 +01:00 committed by GitHub
commit d982fc44af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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