1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-06-02 16:41:04 +03:00

try/except ModulesInfo.json load & fully document

This commit is contained in:
Athanasius 2021-03-10 13:49:34 +00:00
parent fd0ce63341
commit 3fddd2bdf9
2 changed files with 17 additions and 2 deletions

View File

@ -427,6 +427,7 @@ Content of `state` (updated to the current journal entry):
| `Rebuy` | `int` | Current ship's rebuy cost | | `Rebuy` | `int` | Current ship's rebuy cost |
| `Modules` | `dict` | Currently fitted modules | | `Modules` | `dict` | Currently fitted modules |
| `NavRoute` | `dict` | Last plotted multi-hop route | | `NavRoute` | `dict` | Last plotted multi-hop route |
| `ModuleInfo` | `dict` | Last loaded ModulesInfo.json data |
##### Synthetic Events ##### Synthetic Events
@ -479,6 +480,11 @@ Examples of this are:
} }
``` ```
1. Every `ModuleInfo` event contains the full data as loaded from the
`ModulesInfo.json` file. It's also available as `monitor.stat['ModuleInfo']`
(noting that we used the singular form there to stay consistent with the
Journal event name).
#### Player Dashboard #### Player Dashboard
```python ```python
@ -515,6 +521,9 @@ New in version 5.0.0:
`NavRoute` contains the `json.load()` of `NavRoute.json` as indicated by a journal `NavRoute` contains the `json.load()` of `NavRoute.json` as indicated by a journal
`NavRoute` event. `NavRoute` event.
`ModuleInfo` contains the `json.load()` of `ModulesInfo.json` as indicated by a
Journal `ModuleInfo` event.
#### Getting Commander Data #### Getting Commander Data
```python ```python

View File

@ -682,8 +682,14 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
elif event_type == 'ModuleInfo': elif event_type == 'ModuleInfo':
with open(join(self.currentdir, 'ModulesInfo.json'), 'rb') as mf: # type: ignore with open(join(self.currentdir, 'ModulesInfo.json'), 'rb') as mf: # type: ignore
entry = json.load(mf) try:
self.state['ModuleInfo'] = entry entry = json.load(mf)
except json.JSONDecodeError:
logger.exception('Failed decoding ModulesInfo.json', exc_info=True)
else:
self.state['ModuleInfo'] = entry
elif event_type in ('CollectCargo', 'MarketBuy', 'BuyDrones', 'MiningRefined'): elif event_type in ('CollectCargo', 'MarketBuy', 'BuyDrones', 'MiningRefined'):
commodity = self.canonicalise(entry['Type']) commodity = self.canonicalise(entry['Type'])