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

Made most event lookups case insensitive

Slightly more than `s/((el)?if event_type (in|==) \(?('(?:.*[A-Z].*).*')\)?:)$/\L$1`.

Closes #1087
This commit is contained in:
Athanasius 2021-06-18 10:42:13 +01:00
parent d823082a51
commit 6ad22541fe

View File

@ -489,8 +489,8 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
entry: MutableMapping[str, Any] = json.loads(line, object_pairs_hook=OrderedDict)
entry['timestamp'] # we expect this to exist # TODO: replace with assert? or an if key in check
event_type = entry['event']
if event_type == 'Fileheader':
event_type = entry['event'].lower()
if event_type == 'fileheader':
self.live = False
self.version = entry['gameversion']
self.is_beta = any(v in entry['gameversion'].lower() for v in ('alpha', 'beta'))
@ -513,10 +513,12 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['GameVersion'] = entry['gameversion']
self.state['GameBuild'] = entry['build']
elif event_type == 'Commander':
elif event_type == 'commander':
self.live = True # First event in 3.0
elif event_type == 'LoadGame':
elif event_type == 'loadgame':
# alpha4
# Odyssey: bool
self.cmdr = entry['Commander']
# 'Open', 'Solo', 'Group', or None for CQC (and Training - but no LoadGame event)
self.mode = entry.get('GameMode')
@ -551,11 +553,11 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if entry.get('Ship') is not None and self._RE_SHIP_ONFOOT.search(entry['Ship']):
self.state['OnFoot'] = True
elif event_type == 'NewCommander':
elif event_type == 'newcommander':
self.cmdr = entry['Name']
self.group = None
elif event_type == 'SetUserShipName':
elif event_type == 'setusershipname':
self.state['ShipID'] = entry['ShipID']
if 'UserShipId' in entry: # Only present when changing the ship's ident
self.state['ShipIdent'] = entry['UserShipId']
@ -563,7 +565,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['ShipName'] = entry.get('UserShipName')
self.state['ShipType'] = self.canonicalise(entry['Ship'])
elif event_type == 'ShipyardBuy':
elif event_type == 'shipyardbuy':
self.state['ShipID'] = None
self.state['ShipIdent'] = None
self.state['ShipName'] = None
@ -575,7 +577,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Credits'] -= entry.get('ShipPrice', 0)
elif event_type == 'ShipyardSwap':
elif event_type == 'shipyardswap':
self.state['ShipID'] = entry['ShipID']
self.state['ShipIdent'] = None
self.state['ShipName'] = None
@ -585,9 +587,11 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Rebuy'] = None
self.state['Modules'] = None
elif (event_type == 'Loadout' and
'fighter' not in self.canonicalise(entry['Ship']) and
'buggy' not in self.canonicalise(entry['Ship'])):
elif (
event_type == 'loadout' and
'fighter' not in self.canonicalise(entry['Ship']) and
'buggy' not in self.canonicalise(entry['Ship'])
):
self.state['ShipID'] = entry['ShipID']
self.state['ShipIdent'] = entry['ShipIdent']
@ -615,7 +619,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Modules'][module['Slot']] = module
elif event_type == 'ModuleBuy':
elif event_type == 'modulebuy':
self.state['Modules'][entry['Slot']] = {
'Slot': entry['Slot'],
'Item': self.canonicalise(entry['BuyItem']),
@ -627,21 +631,21 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Credits'] -= entry.get('BuyPrice', 0)
elif event_type == 'ModuleRetrieve':
elif event_type == 'moduleretrieve':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'ModuleSell':
elif event_type == 'modulesell':
self.state['Modules'].pop(entry['Slot'], None)
self.state['Credits'] += entry.get('SellPrice', 0)
elif event_type == 'ModuleSellRemote':
elif event_type == 'modulesellremote':
self.state['Credits'] += entry.get('SellPrice', 0)
elif event_type == 'ModuleStore':
elif event_type == 'modulestore':
self.state['Modules'].pop(entry['Slot'], None)
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'ModuleSwap':
elif event_type == 'moduleswap':
to_item = self.state['Modules'].get(entry['ToSlot'])
to_slot = entry['ToSlot']
from_slot = entry['FromSlot']
@ -653,13 +657,13 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
modules.pop(from_slot, None)
elif event_type == 'Undocked':
elif event_type == 'undocked':
self.station = None
self.station_marketid = None
self.stationtype = None
self.stationservices = None
elif event_type == 'Embark':
elif event_type == 'embark':
# This event is logged when a player (on foot) gets into a ship or SRV
# Parameters:
# • SRV: true if getting into SRV, false if getting into a ship
@ -686,7 +690,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# ShipLocker.
self.backpack_set_empty()
elif event_type == 'Disembark':
elif event_type == 'disembark':
# This event is logged when the player steps out of a ship or SRV
#
# Parameters:
@ -704,7 +708,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# • StationType
# • MarketID
if entry.get('OnStation', False):
if entry.get('onstation', False):
self.station = entry.get('StationName', '')
else:
@ -717,13 +721,13 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Taxi'] = False
self.state['Dropship'] = False
elif event_type == 'DropshipDeploy':
elif event_type == 'dropshipdeploy':
# We're definitely on-foot now
self.state['OnFoot'] = True
self.state['Taxi'] = False
self.state['Dropship'] = False
elif event_type == 'Docked':
elif event_type == 'docked':
self.station = entry.get('StationName') # May be None
self.station_marketid = entry.get('MarketID') # May be None
self.stationtype = entry.get('StationType') # May be None
@ -731,7 +735,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# No need to set self.state['Taxi'] or Dropship here, if its those, the next event is a Disembark anyway
elif event_type in ('Location', 'FSDJump', 'CarrierJump'):
elif event_type in ('location', 'fsdjump', 'carrierjump'):
# alpha4 - any changes ?
# Location:
# New in Odyssey:
@ -739,15 +743,15 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# • Multicrew: bool
# • InSRV: bool
# • OnFoot: bool
if event_type in ('Location', 'CarrierJump'):
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':
# if event_type == 'location':
# logger.trace('"Location" event')
elif event_type == 'FSDJump':
elif event_type == 'fsdjump':
self.planet = None
self.state['Body'] = None
self.state['BodyType'] = None
@ -776,37 +780,37 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if not self.state['Taxi']:
self.state['Dropship'] = None
elif event_type == 'ApproachBody':
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'):
elif event_type in ('leavebody', 'supercruiseentry'):
self.planet = None
self.state['Body'] = None
self.state['BodyType'] = None
elif event_type in ('Rank', 'Promotion'):
elif event_type in ('rank', 'promotion'):
payload = dict(entry)
payload.pop('event')
payload.pop('timestamp')
self.state['Rank'].update({k: (v, 0) for k, v in payload.items()})
elif event_type == 'Progress':
elif event_type == 'progress':
rank = self.state['Rank']
for k, v in entry.items():
if k in rank:
# perhaps not taken promotion mission yet
rank[k] = (rank[k][0], min(v, 100))
elif event_type in ('Reputation', 'Statistics'):
elif event_type in ('reputation', 'statistics'):
payload = OrderedDict(entry)
payload.pop('event')
payload.pop('timestamp')
self.state[event_type] = payload
elif event_type == 'EngineerProgress':
elif event_type == 'engineerprogress':
# Sanity check - at least once the 'Engineer' (name) was missing from this in early
# Odyssey 4.0.0.100. Might only have been a server issue causing incomplete data.
@ -826,7 +830,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
engineers[engineer] = entry['Progress']
elif event_type == 'Cargo' and entry.get('Vessel') == 'Ship':
elif event_type == 'cargo' and entry.get('Vessel') == 'Ship':
self.state['Cargo'] = defaultdict(int)
# From 3.3 full Cargo event (after the first one) is written to a separate file
if 'Inventory' not in entry:
@ -838,7 +842,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Cargo'].update({self.canonicalise(x['Name']): x['Count'] for x in clean})
elif event_type == 'CargoTransfer':
elif event_type == 'cargotransfer':
for c in entry['Transfers']:
name = self.canonicalise(c['Type'])
if c['Direction'] == 'toship':
@ -848,7 +852,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# So it's *from* the ship
self.state['Cargo'][name] -= c['Count']
elif event_type == 'ShipLocker':
elif event_type == 'shiplocker':
# As of 4.0.0.400 (2021-06-10)
# "ShipLocker" will be a full list written to the journal at startup/boarding/disembarking, and also
# written to a separate shiplocker.json file - other updates will just update that file and mention it
@ -904,12 +908,12 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
)
# Journal v31 implies this was removed before Odyssey launch
elif event_type == 'BackPackMaterials':
elif event_type == 'backpackmaterials':
# Last seen in a 4.0.0.102 journal file.
logger.warning(f'We have a BackPackMaterials event, defunct since > 4.0.0.102 ?:\n{entry}\n')
pass
elif event_type in ('BackPack', 'Backpack'): # WORKAROUND 4.0.0.200: BackPack becomes Backpack
elif event_type == 'backpack':
# TODO: v31 doc says this is`backpack.json` ... but Howard Chalkley
# said it's `Backpack.json`
backpack_file = pathlib.Path(str(self.currentdir)) / 'Backpack.json'
@ -964,7 +968,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
{self.canonicalise(x['Name']): x['Count'] for x in clean_data}
)
elif event_type == 'BackpackChange':
elif event_type == 'backpackchange':
# Changes to Odyssey Backpack contents *other* than from a Transfer
# See TransferMicroResources event for that.
@ -997,21 +1001,21 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if self.state['BackPack'][c][m] < 0:
self.state['BackPack'][c][m] = 0
elif event_type == 'BuyMicroResources':
elif event_type == 'buymicroresources':
# From 4.0.0.400 we get an empty (see file) `ShipLocker` event,
# so we can ignore this for inventory purposes.
# But do record the credits balance change.
self.state['Credits'] -= entry.get('Price', 0)
elif event_type == 'SellMicroResources':
elif event_type == 'sellmicroresources':
# As of 4.0.0.400 we can ignore this as an empty (see file)
# `ShipLocker` event is written for the full new inventory.
# But still record the credits balance change.
self.state['Credits'] += entry.get('Price', 0)
elif event_type in ('TradeMicroResources', 'CollectItems', 'DropItems', 'UseConsumable'):
elif event_type in ('tradeMicroResources', 'collectitems', 'dropitems', 'useconsumable'):
# As of 4.0.0.400 we can ignore these as an empty (see file)
# `ShipLocker` event and/or a `BackpackChange` is also written.
pass
@ -1021,7 +1025,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# also there's one additional journal event that was missed out from
# this version of the docs: "SuitLoadout": # when starting on foot, or
# when disembarking from a ship, with the same info as found in "CreateSuitLoadout"
elif event_type == 'SuitLoadout':
elif event_type == 'suitloadout':
suit_slotid, suitloadout_slotid = self.suitloadout_store_from_event(entry)
if not self.suit_and_loadout_setcurrent(suit_slotid, suitloadout_slotid):
logger.error(f"Event was: {entry}")
@ -1061,7 +1065,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# if not self.suit_and_loadout_setcurrent(suitid, suitloadout_slotid):
# logger.error(f"Event was: {entry}")
elif event_type == 'DeleteSuitLoadout':
elif event_type == 'deletesuitloadout':
# alpha4:
# { "timestamp":"2021-04-29T10:32:27Z", "event":"DeleteSuitLoadout", "SuitID":1698365752966423,
# "SuitName":"explorationsuit_class1", "SuitName_Localised":"Artemis Suit", "LoadoutID":4293000003,
@ -1076,7 +1080,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# 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':
elif event_type == 'renamesuitloadout':
# alpha4
# Parameters:
# • SuitID
@ -1095,7 +1099,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
except KeyError:
logger.debug(f"loadout slot id {loadout_id} doesn't exist, not in last CAPI pull ?")
elif event_type == 'BuySuit':
elif event_type == 'buysuit':
# alpha4 :
# { "timestamp":"2021-04-29T09:03:37Z", "event":"BuySuit", "Name":"UtilitySuit_Class1",
# "Name_Localised":"Maverick Suit", "Price":150000, "SuitID":1698364934364699 }
@ -1116,7 +1120,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
self.state['Credits'] -= price
elif event_type == 'SellSuit':
elif event_type == 'sellsuit':
# Remove from known suits
# As of Odyssey Alpha Phase 2, Hotfix 5 (4.0.0.13) this isn't possible as this event
# doesn't contain the specific suit ID as per CAPI `suits` dict.
@ -1144,7 +1148,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
self.state['Credits'] += price
elif event_type == 'UpgradeSuit':
elif event_type == 'upgradesuit':
# alpha4
# This event is logged when the player upgrades their flight suit
#
@ -1156,7 +1160,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# TODO: Update self.state['Suits'] when we have an example to work from
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'LoadoutEquipModule':
elif event_type == 'loadoutequipmodule':
# alpha4:
# { "timestamp":"2021-04-29T11:11:13Z", "event":"LoadoutEquipModule", "LoadoutName":"Dom L/K/K",
# "SuitID":1698364940285172, "SuitName":"tacticalsuit_class1", "SuitName_Localised":"Dominator Suit",
@ -1176,7 +1180,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
except KeyError:
logger.error(f"LoadoutEquipModule: {entry}")
elif event_type == 'LoadoutRemoveModule':
elif event_type == 'loadoutremovemodule':
# alpha4 - triggers if selecting an already-equipped weapon into a different slot
# { "timestamp":"2021-04-29T11:11:13Z", "event":"LoadoutRemoveModule", "LoadoutName":"Dom L/K/K",
# "SuitID":1698364940285172, "SuitName":"tacticalsuit_class1", "SuitName_Localised":"Dominator Suit",
@ -1190,7 +1194,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
except KeyError:
logger.error(f"LoadoutRemoveModule: {entry}")
elif event_type == 'BuyWeapon':
elif event_type == 'buyweapon':
# alpha4
# { "timestamp":"2021-04-29T11:10:51Z", "event":"BuyWeapon", "Name":"Wpn_M_AssaultRifle_Laser_FAuto",
# "Name_Localised":"TK Aphelion", "Price":125000, "SuitModuleID":1698372938719590 }
@ -1201,7 +1205,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
self.state['Credits'] -= price
elif event_type == 'SellWeapon':
elif event_type == 'sellweapon':
# We're not actually keeping track of all owned weapons, only those in
# Suit Loadouts.
# alpha4:
@ -1225,20 +1229,20 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
self.state['Credits'] += price
elif event_type == 'UpgradeWeapon':
elif event_type == 'upgradeweapon':
# We're not actually keeping track of all owned weapons, only those in
# Suit Loadouts.
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'ScanOrganic':
elif event_type == 'scanorganic':
# Nothing of interest to our state.
pass
elif event_type == 'SellOrganicData':
elif event_type == 'sellorganicdata':
for bd in entry['BioData']:
self.state['Credits'] += bd.get('Value', 0) + bd.get('Bonus', 0)
elif event_type == 'BookDropship':
elif event_type == 'bookdropship':
self.state['Credits'] -= entry.get('Cost', 0)
self.state['Dropship'] = True
# Technically we *might* now not be OnFoot.
@ -1252,20 +1256,20 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
# not still on-foot, BUT it doesn't really matter as the next significant
# event is going to be Disembark to on-foot anyway.
elif event_type == 'BookTaxi':
elif event_type == 'booktaxi':
self.state['Credits'] -= entry.get('Cost', 0)
# Dont set taxi state here, as we're not IN a taxi yet. Set it on Embark
elif event_type == 'CancelDropship':
elif event_type == 'canceldropship':
self.state['Credits'] += entry.get('Refund', 0)
self.state['Dropship'] = False
self.state['Taxi'] = False
elif event_type == 'CancelTaxi':
elif event_type == 'canceltaxi':
self.state['Credits'] += entry.get('Refund', 0)
self.state['Taxi'] = False
elif event_type == 'NavRoute':
elif event_type == 'navroute':
# Added in ED 3.7 - multi-hop route details in NavRoute.json
with open(join(self.currentdir, 'NavRoute.json'), 'rb') as rf: # type: ignore
try:
@ -1277,7 +1281,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
else:
self.state['NavRoute'] = entry
elif event_type == 'ModuleInfo':
elif event_type == 'moduleinfo':
with open(join(self.currentdir, 'ModulesInfo.json'), 'rb') as mf: # type: ignore
try:
entry = json.load(mf)
@ -1288,30 +1292,30 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
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'])
self.state['Cargo'][commodity] += entry.get('Count', 1)
if event_type == 'BuyDrones':
if event_type == 'buydrones':
self.state['Credits'] -= entry.get('TotalCost', 0)
elif event_type == 'MarketBuy':
elif event_type == 'marketbuy':
self.state['Credits'] -= entry.get('TotalCost', 0)
elif event_type in ('EjectCargo', 'MarketSell', 'SellDrones'):
elif event_type in ('ejectcargo', 'marketsell', 'selldrones'):
commodity = self.canonicalise(entry['Type'])
cargo = self.state['Cargo']
cargo[commodity] -= entry.get('Count', 1)
if cargo[commodity] <= 0:
cargo.pop(commodity)
if event_type == 'MarketSell':
if event_type == 'marketsell':
self.state['Credits'] += entry.get('TotalSale', 0)
elif event_type == 'SellDrones':
elif event_type == 'selldrones':
self.state['Credits'] += entry.get('TotalSale', 0)
elif event_type == 'SearchAndRescue':
elif event_type == 'searchandrescue':
for item in entry.get('Items', []):
commodity = self.canonicalise(item['Name'])
cargo = self.state['Cargo']
@ -1319,25 +1323,25 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if cargo[commodity] <= 0:
cargo.pop(commodity)
elif event_type == 'Materials':
elif event_type == 'materials':
for category in ('Raw', 'Manufactured', 'Encoded'):
self.state[category] = defaultdict(int)
self.state[category].update({
self.canonicalise(x['Name']): x['Count'] for x in entry.get(category, [])
})
elif event_type == 'MaterialCollected':
elif event_type == 'materialcollected':
material = self.canonicalise(entry['Name'])
self.state[entry['Category']][material] += entry['Count']
elif event_type in ('MaterialDiscarded', 'ScientificResearch'):
elif event_type in ('materialdiscarded', 'scientificresearch'):
material = self.canonicalise(entry['Name'])
state_category = self.state[entry['Category']]
state_category[material] -= entry['Count']
if state_category[material] <= 0:
state_category.pop(material)
elif event_type == 'Synthesis':
elif event_type == 'synthesis':
for category in ('Raw', 'Manufactured', 'Encoded'):
for x in entry['Materials']:
material = self.canonicalise(x['Name'])
@ -1346,7 +1350,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if self.state[category][material] <= 0:
self.state[category].pop(material)
elif event_type == 'MaterialTrade':
elif event_type == 'materialtrade':
category = self.category(entry['Paid']['Category'])
state_category = self.state[category]
paid = entry['Paid']
@ -1391,7 +1395,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
module['Engineering'].pop('ExperimentalEffect', None)
module['Engineering'].pop('ExperimentalEffect_Localised', None)
elif event_type == 'MissionCompleted':
elif event_type == 'missioncompleted':
self.state['Credits'] += entry.get('Reward', 0)
for reward in entry.get('CommodityReward', []):
@ -1404,7 +1408,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
material = self.canonicalise(reward['Name'])
self.state[category][material] += reward.get('Count', 1)
elif event_type == 'EngineerContribution':
elif event_type == 'engineercontribution':
commodity = self.canonicalise(entry.get('Commodity'))
if commodity:
self.state['Cargo'][commodity] -= entry['Quantity']
@ -1419,7 +1423,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if self.state[category][material] <= 0:
self.state[category].pop(material)
elif event_type == 'TechnologyBroker':
elif event_type == 'technologybroker':
for thing in entry.get('Ingredients', []): # 3.01
for category in ('Cargo', 'Raw', 'Manufactured', 'Encoded'):
item = self.canonicalise(thing['Name'])
@ -1441,7 +1445,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
if self.state[category][material] <= 0:
self.state[category].pop(material)
elif event_type == 'JoinACrew':
elif event_type == 'joinacrew':
self.state['Captain'] = entry['Captain']
self.state['Role'] = 'Idle'
self.planet = None
@ -1457,10 +1461,10 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Body'] = None
self.state['BodyType'] = None
elif event_type == 'ChangeCrewRole':
elif event_type == 'changecrewrole':
self.state['Role'] = entry['Role']
elif event_type == 'QuitACrew':
elif event_type == 'quitacrew':
self.state['Captain'] = None
self.state['Role'] = None
self.planet = None
@ -1476,7 +1480,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['BodyType'] = None
# TODO: on_foot: Will we get an event after this to know ?
elif event_type == 'Friends':
elif event_type == 'friends':
if entry['Status'] in ('Online', 'Added'):
self.state['Friends'].add(entry['Name'])
@ -1484,75 +1488,75 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below
self.state['Friends'].discard(entry['Name'])
# Try to keep Credits total updated
elif event_type in ('MultiSellExplorationData', 'SellExplorationData'):
elif event_type in ('multisellexplorationdata', 'sellexplorationdata'):
self.state['Credits'] += entry.get('TotalEarnings', 0)
elif event_type == 'BuyExplorationData':
elif event_type == 'buyexplorationdata':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'BuyTradeData':
elif event_type == 'buytradedata':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'BuyAmmo':
elif event_type == 'buyammo':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'CommunityGoalReward':
elif event_type == 'communitygoalreward':
self.state['Credits'] += entry.get('Reward', 0)
elif event_type == 'CrewHire':
elif event_type == 'crewhire':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'FetchRemoteModule':
elif event_type == 'fetchremotemodule':
self.state['Credits'] -= entry.get('TransferCost', 0)
elif event_type == 'MissionAbandoned':
elif event_type == 'missionabandoned':
# Is this paid at this point, or just a fine to pay later ?
# self.state['Credits'] -= entry.get('Fine', 0)
pass
elif event_type in ('PayBounties', 'PayFines', 'PayLegacyFines'):
elif event_type in ('paybounties', 'payfines', 'paylegacyfines'):
self.state['Credits'] -= entry.get('Amount', 0)
elif event_type == 'RedeemVoucher':
elif event_type == 'redeemvoucher':
self.state['Credits'] += entry.get('Amount', 0)
elif event_type in ('RefuelAll', 'RefuelPartial', 'Repair', 'RepairAll', 'RestockVehicle'):
elif event_type in ('refuelall', 'refuelpartial', 'repair', 'repairall', 'restockvehicle'):
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'SellShipOnRebuy':
elif event_type == 'sellshiponrebuy':
self.state['Credits'] += entry.get('ShipPrice', 0)
elif event_type == 'ShipyardSell':
elif event_type == 'shipyardsell':
self.state['Credits'] += entry.get('ShipPrice', 0)
elif event_type == 'ShipyardTransfer':
elif event_type == 'shipyardtransfer':
self.state['Credits'] -= entry.get('TransferPrice', 0)
elif event_type == 'PowerplayFastTrack':
elif event_type == 'powerplayfasttrack':
self.state['Credits'] -= entry.get('Cost', 0)
elif event_type == 'PowerplaySalary':
elif event_type == 'powerplaysalary':
self.state['Credits'] += entry.get('Amount', 0)
elif event_type == 'SquadronCreated':
elif event_type == 'squadroncreated':
# v30 docs don't actually say anything about credits cost
pass
elif event_type == 'CarrierBuy':
elif event_type == 'carrierbuy':
self.state['Credits'] -= entry.get('Price', 0)
elif event_type == 'CarrierBankTransfer':
elif event_type == 'carrierbanktransfer':
if (newbal := entry.get('PlayerBalance')):
self.state['Credits'] = newbal
elif event_type == 'CarrierDecommission':
elif event_type == 'carrierdecommission':
# v30 doc says nothing about citing the refund amount
pass
elif event_type == 'NpcCrewPaidWage':
elif event_type == 'npccrewpaidwage':
self.state['Credits'] -= entry.get('Amount', 0)
elif event_type == 'Resurrect':
elif event_type == 'resurrect':
self.state['Credits'] -= entry.get('Cost', 0)
# There should be a `Backpack` event as you 'come to' in the