1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-17 17:42:20 +03:00

Suits: Guards for if we don't have CAPI data yet

We still need each try/except in case:

1. Journal has you buying a suit, or creating a SuitLoadout.
2. It then has you selling/deleting a different one.
3. But no CAPI data yet, so we don't know about that different one.
This commit is contained in:
Athanasius 2021-05-01 10:42:54 +01:00
parent 81104ca973
commit 751002bf1a

View File

@ -929,18 +929,6 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['BackPack']['Consumable'][c] = 0
elif event_type == 'SwitchSuitLoadout':
# alpha4
# This event is logged when a player selects a different flight suit from the ships locker
#
# Parameters:
# • SuitID
# • SuitName
# • LoadoutID
# • LoadoutName
# • Modules: array of objects
# ◦ SlotName
# ◦ SuitModuleID
# ◦ ModuleName
loadoutid = entry['LoadoutID']
new_slot = self.suit_loadout_id_from_loadoutid(loadoutid)
# If this application is run with the latest Journal showing such an event then we won't
@ -1008,13 +996,14 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# "SuitName":"explorationsuit_class1", "SuitName_Localised":"Artemis Suit", "LoadoutID":4293000003,
# "LoadoutName":"Loadout 1" }
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'].pop(f'{loadout_id}')
if self.state['SuitLoadouts']:
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'].pop(f'{loadout_id}')
except KeyError:
# This should no longer happen, as we're now handling CreateSuitLoadout properly
logger.debug(f"loadout slot id {loadout_id} doesn't exist, not in last CAPI pull ?")
except KeyError:
# This should no longer happen, as we're now handling CreateSuitLoadout properly
logger.debug(f"loadout slot id {loadout_id} doesn't exist, not in last CAPI pull ?")
elif event_type == 'RenameSuitLoadout':
# alpha4
@ -1027,12 +1016,13 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# { "timestamp":"2021-04-29T10:35:55Z", "event":"RenameSuitLoadout", "SuitID":1698365752966423,
# "SuitName":"explorationsuit_class1", "SuitName_Localised":"Artemis Suit", "LoadoutID":4293000003,
# "LoadoutName":"Art L/K" }
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'][loadout_id]['name'] = entry['LoadoutName']
if self.state['SuitLoadouts']:
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'][loadout_id]['name'] = entry['LoadoutName']
except KeyError:
logger.exception(f"loadout slot id {loadout_id} doesn't exist, not in last CAPI pull ?")
except KeyError:
logger.debug(f"loadout slot id {loadout_id} doesn't exist, not in last CAPI pull ?")
elif event_type == 'BuySuit':
# alpha4 :
@ -1067,18 +1057,19 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# alpha4:
# { "timestamp":"2021-04-29T09:15:51Z", "event":"SellSuit", "SuitID":1698364937435505,
# "Name":"explorationsuit_class1", "Name_Localised":"Artemis Suit", "Price":90000 }
try:
self.state['Suits'].pop(entry['SuitID'])
if self.state['Suits']:
try:
self.state['Suits'].pop(entry['SuitID'])
except KeyError:
logger.exception(f"SellSuit for a suit we didn't know about? {entry['SuitID']}")
except KeyError:
logger.debug(f"SellSuit for a suit we didn't know about? {entry['SuitID']}")
# update credits total
if price := entry.get('Price') is None:
logger.error(f"SellSuit didn't contain Price: {entry}")
# update credits total
if price := entry.get('Price') is None:
logger.error(f"SellSuit didn't contain Price: {entry}")
else:
self.state['Credits'] += price
else:
self.state['Credits'] += price
elif event_type == 'UpgradeSuit':
# alpha4
@ -1091,6 +1082,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# • Cost
# Update credits total ? It shouldn't even involve credits!
# Actual alpha4 - need to grind mats
# if self.state['Suits']:
pass
elif event_type == 'LoadoutEquipModule':
@ -1099,14 +1091,19 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# "SuitID":1698364940285172, "SuitName":"tacticalsuit_class1", "SuitName_Localised":"Dominator Suit",
# "LoadoutID":4293000001, "SlotName":"PrimaryWeapon2", "ModuleName":"wpn_m_assaultrifle_laser_fauto",
# "ModuleName_Localised":"TK Aphelion", "SuitModuleID":1698372938719590 }
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
self.state['SuitLoadouts'][loadout_id]['slots'][entry['SlotName']] = {
'name': entry['ModuleName'],
'locName': entry.get('ModuleName_Localised', entry['ModuleName']),
'id': None,
'weaponrackId': entry['SuitModuleID'],
'locDescription': '',
}
if self.state['SuitLoadouts']:
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'][loadout_id]['slots'][entry['SlotName']] = {
'name': entry['ModuleName'],
'locName': entry.get('ModuleName_Localised', entry['ModuleName']),
'id': None,
'weaponrackId': entry['SuitModuleID'],
'locDescription': '',
}
except KeyError:
logger.error(f"LoadoutEquipModule: {entry}")
elif event_type == 'LoadoutRemoveModule':
# alpha4 - triggers if selecting an already-equipped weapon into a different slot
@ -1114,8 +1111,13 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# "SuitID":1698364940285172, "SuitName":"tacticalsuit_class1", "SuitName_Localised":"Dominator Suit",
# "LoadoutID":4293000001, "SlotName":"PrimaryWeapon1", "ModuleName":"wpn_m_assaultrifle_laser_fauto",
# "ModuleName_Localised":"TK Aphelion", "SuitModuleID":1698372938719590 }
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
self.state['SuitLoadouts'][loadout_id]['slots'].pop(entry['SlotName'])
if self.state['SuitLoadouts']:
loadout_id = self.suit_loadout_id_from_loadoutid(entry['LoadoutID'])
try:
self.state['SuitLoadouts'][loadout_id]['slots'].pop(entry['SlotName'])
except KeyError:
logger.error(f"LoadoutRemoveModule: {entry}")
elif event_type == 'BuyWeapon':
# alpha4