From 2bbda30097604f670ace98f42b37879176e4c020 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Thu, 1 Dec 2022 13:33:26 +0000 Subject: [PATCH 1/3] Inara: Drop addCommanderCombatInterdicted if empty opponentName Addresses #1732 specifically. At some point #1433 needs fully addressing (review all Inara API code for compliance with docs). --- plugins/inara.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/inara.py b/plugins/inara.py index 1a7cf1f6..5783b692 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -1069,7 +1069,11 @@ def journal_entry( # noqa: C901, CCR001 elif 'Power' in entry: data['opponentName'] = entry['Power'] - new_add_event('addCommanderCombatInterdicted', entry['timestamp'], data) + if data['opponentName'] == "": + logger.warning('Dropping addCommanderCombatInterdicted message because opponentName came out as ""') + + else: + new_add_event('addCommanderCombatInterdicted', entry['timestamp'], data) elif event_name == 'Interdiction': data = OrderedDict([ From aac660fb05d2cd4f483b1dc60e28ead9bd793b6a Mon Sep 17 00:00:00 2001 From: Athanasius Date: Thu, 1 Dec 2022 13:37:56 +0000 Subject: [PATCH 2/3] Inara: Also catch empty opponentName for Interdict*ion* --- plugins/inara.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/inara.py b/plugins/inara.py index 5783b692..bb9147ff 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -1091,7 +1091,11 @@ def journal_entry( # noqa: C901, CCR001 elif 'Power' in entry: data['opponentName'] = entry['Power'] - new_add_event('addCommanderCombatInterdiction', entry['timestamp'], data) + if data['opponentName'] == "": + logger.warning('Dropping addCommanderCombatInterdiction message because opponentName came out as ""') + + else: + new_add_event('addCommanderCombatInterdiction', entry['timestamp'], data) elif event_name == 'EscapeInterdiction': new_add_event( From 26413177a62299013e2d0152e946d5eacac14054 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Thu, 1 Dec 2022 13:45:10 +0000 Subject: [PATCH 3/3] Inara: Also check opponentName on EscapeInterdiction And sprinkly comments around giving a reason for the checks. --- plugins/inara.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/plugins/inara.py b/plugins/inara.py index bb9147ff..5ad5df07 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -1069,6 +1069,7 @@ def journal_entry( # noqa: C901, CCR001 elif 'Power' in entry: data['opponentName'] = entry['Power'] + # Paranoia in case of e.g. Thargoid activity not having complete data if data['opponentName'] == "": logger.warning('Dropping addCommanderCombatInterdicted message because opponentName came out as ""') @@ -1091,6 +1092,7 @@ def journal_entry( # noqa: C901, CCR001 elif 'Power' in entry: data['opponentName'] = entry['Power'] + # Paranoia in case of e.g. Thargoid activity not having complete data if data['opponentName'] == "": logger.warning('Dropping addCommanderCombatInterdiction message because opponentName came out as ""') @@ -1098,15 +1100,23 @@ def journal_entry( # noqa: C901, CCR001 new_add_event('addCommanderCombatInterdiction', entry['timestamp'], data) elif event_name == 'EscapeInterdiction': - new_add_event( - 'addCommanderCombatInterdictionEscape', - entry['timestamp'], - { - 'starsystemName': system, - 'opponentName': entry['Interdictor'], - 'isPlayer': entry['IsPlayer'], - } - ) + # Paranoia in case of e.g. Thargoid activity not having complete data + if entry.get('Interdictor') is None or entry['Interdictor'] == "": + logger.warning( + 'Dropping addCommanderCombatInterdictionEscape message' + 'because opponentName came out as ""' + ) + + else: + new_add_event( + 'addCommanderCombatInterdictionEscape', + entry['timestamp'], + { + 'starsystemName': system, + 'opponentName': entry['Interdictor'], + 'isPlayer': entry['IsPlayer'], + } + ) elif event_name == 'PVPKill': new_add_event(