From 2f684a91e3777e08ea25c451e8256af964687178 Mon Sep 17 00:00:00 2001 From: A_D Date: Wed, 2 Jun 2021 11:57:28 +0200 Subject: [PATCH] removed monitor.planet use --- monitor.py | 24 ++++++++++++++++++++++++ plugins/inara.py | 7 +++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/monitor.py b/monitor.py index 5138cba2..56144c03 100644 --- a/monitor.py +++ b/monitor.py @@ -162,6 +162,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below 'SuitLoadouts': {}, 'Taxi': None, # True whenever we are _in_ a taxi. ie, this is reset on Disembark etc. 'Dropship': None, # Best effort as to whether or not the above taxi is a dropship. + 'Body': None, } def start(self, root: 'tkinter.Tk') -> bool: # noqa: CCR001 @@ -263,6 +264,8 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below self.systemaddress = None self.is_beta = False self.state['OnFoot'] = False + self.state['Body'] = None + self.state['BodyType'] = None if self.observed: logger.debug('self.observed: Calling unschedule_all()') @@ -539,6 +542,8 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below 'Role': None, 'Taxi': None, 'Dropship': None, + 'Body': None, + 'BodyType': None, }) if entry.get('Ship') is not None and self._RE_SHIP_ONFOOT.search(entry['Ship']): self.state['OnFoot'] = True @@ -729,12 +734,16 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below # • OnFoot: bool if event_type in ('Location', 'CarrierJump'): self.planet = entry.get('Body') if entry.get('BodyType') == 'Planet' else None + self.state['Body'] = entry.get('Body') + self.state['BodyType'] = entry.get('BodyType') # if event_type == 'Location': # logger.trace('"Location" event') elif event_type == 'FSDJump': self.planet = None + self.state['Body'] = None + self.state['BodyType'] = None if 'StarPos' in entry: self.coordinates = tuple(entry['StarPos']) # type: ignore @@ -762,9 +771,13 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below elif event_type == 'ApproachBody': self.planet = entry['Body'] + self.state['Body'] = entry['Body'] + self.state['BodyType'] = 'Planet' # Best guess. Journal says always planet. elif event_type in ('LeaveBody', 'SupercruiseEntry'): self.planet = None + self.state['Body'] = None + self.state['BodyType'] = None elif event_type in ('Rank', 'Promotion'): payload = dict(entry) @@ -1516,6 +1529,9 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below self.systemaddress = None self.state['OnFoot'] = False + self.state['Body'] = None + self.state['BodyType'] = None + elif event_type == 'ChangeCrewRole': self.state['Role'] = entry['Role'] @@ -1530,6 +1546,9 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below self.stationservices = None self.coordinates = None self.systemaddress = None + + self.state['Body'] = None + self.state['BodyType'] = None # TODO: on_foot: Will we get an event after this to know ? elif event_type == 'Friends': @@ -1611,6 +1630,11 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below elif event_type == 'Resurrect': self.state['Credits'] -= entry.get('Cost', 0) + # HACK (not game related / 2021-06-2): self.planet is moved into a more general self.state['Body']. + # This exists to help plugins doing what they SHOULDN'T BE cope. It will be removed at some point. + if self.state['Body'] is None or self.state['BodyType'] == 'Planet': + self.planet = self.state['Body'] + return entry except Exception as ex: diff --git a/plugins/inara.py b/plugins/inara.py index e5b4f53f..2893de8c 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -20,8 +20,6 @@ import timeout_session from companion import CAPIData from config import applongname, appversion, config from EDMCLogging import get_main_logger -# Yes I know. Im using it for `monitor.planet` Which probably should be rolled into state as a body and bodyType pair -from monitor import monitor from ttkHyperlinkLabel import HyperlinkLabel logger = get_main_logger() @@ -1046,7 +1044,7 @@ def journal_entry( # noqa: C901, CCR001 to_send_data: Optional[Dict[str, Any]] = {} # This is a glorified sentinel until lower down. # On Horizons, neither of these exist on TouchDown star_system_name = entry.get('StarSystem', this.system) - body_name = entry.get('Body', monitor.planet) + body_name = entry.get('Body', state['Body'] if state['BodyType'] == 'Planet' else None) if star_system_name is None: logger.warning('Refusing to update addCommanderTravelLand as we dont have a StarSystem!') @@ -1150,7 +1148,8 @@ def journal_entry( # noqa: C901, CCR001 'slotName': entry['SlotName'], 'itemName': entry['ModuleName'], 'itemGameID': entry['SuitModuleID'], - # TODO: As of 4.0.0.200, this event does *NOT* include the class + 'itemClass': entry['Class'], + 'engineering': [], # TODO: Check casing of names for this } ], }