1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-15 08:40:34 +03:00

plugins/eddn: Add paranoia about data in is_horizons()

A damaged station has `"modules": []`, so trips over modules.values().
This commit is contained in:
Athanasius 2021-03-15 17:03:39 +00:00
parent 09e93068ab
commit 98be182922

View File

@ -789,8 +789,18 @@ MAP_STR_ANY = Mapping[str, Any]
def is_horizons(economies: MAP_STR_ANY, modules: MAP_STR_ANY, ships: MAP_STR_ANY) -> bool:
return (
any(economy['name'] == 'Colony' for economy in economies.values()) or
any(module.get('sku') == HORIZ_SKU for module in modules.values()) or
any(ship.get('sku') == HORIZ_SKU for ship in (ships['shipyard_list'] or {}).values())
)
economies_colony = False
modules_horizons = False
ship_horizons = False
if isinstance(dict, economies):
economies_colony = any(economy['name'] == 'Colony' for economy in economies.values())
if isinstance(dict, modules):
modules_horizons = any(module.get('sku') == HORIZ_SKU for module in modules.values())
if isinstance(dict, ships):
if ships.get('shipyard_list') is not None:
ship_horizons = any(ship.get('sku') == HORIZ_SKU for ship in ships['shipyard_list'].values())
return economies_colony or modules_horizons or ship_horizons