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

Track Engineer progress

This commit is contained in:
Jonathan Harris 2018-10-31 19:10:55 +00:00
parent 2f7ffc6c31
commit fc44003161
2 changed files with 23 additions and 1 deletions

@ -119,6 +119,7 @@ class EDLogs(FileSystemEventHandler):
'Raw' : defaultdict(int),
'Manufactured' : defaultdict(int),
'Encoded' : defaultdict(int),
'Engineers' : {},
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
@ -338,6 +339,7 @@ class EDLogs(FileSystemEventHandler):
'Raw' : defaultdict(int),
'Manufactured' : defaultdict(int),
'Encoded' : defaultdict(int),
'Engineers' : {},
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
@ -370,6 +372,7 @@ class EDLogs(FileSystemEventHandler):
'Captain' : None,
'Credits' : entry['Credits'],
'Loan' : entry['Loan'],
'Engineers' : {},
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
@ -480,6 +483,12 @@ class EDLogs(FileSystemEventHandler):
payload.pop('timestamp')
self.state[entry['event']] = payload
elif entry['event'] == 'EngineerProgress':
if 'Engineers' in entry: # Startup summary
self.state['Engineers'] = { e['Engineer']: (e['Rank'], e.get('RankProgress', 0)) if 'Rank' in e else e['Progress'] for e in entry['Engineers'] }
else: # Promotion
self.state['Engineers'][entry['Engineer']] = (entry['Rank'], entry.get('RankProgress', 0)) if 'Rank' in entry else entry['Progress']
elif entry['event'] == 'Cargo':
self.state['Cargo'] = defaultdict(int)
self.state['Cargo'].update({ self.canonicalise(x['Name']): x['Count'] for x in entry['Inventory'] })

@ -229,6 +229,19 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
('majorfactionName', k.lower()),
('majorfactionReputation', v / 100.0),
]))
for k,v in state['Engineers'].iteritems():
if type(v) is tuple:
add_event('setCommanderRankEngineer', entry['timestamp'],
OrderedDict([
('engineerName', k),
('rankValue', v[0]),
]))
else:
add_event('setCommanderRankEngineer', entry['timestamp'],
OrderedDict([
('engineerName', k),
('rankStage', v),
]))
# Update location
add_event('setCommanderTravelLocation', entry['timestamp'],
@ -267,7 +280,7 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
('rankValue', v[0]),
('rankProgress', 0),
]))
elif entry['event'] == 'EngineerProgress':
elif entry['event'] == 'EngineerProgress' and 'Engineer' in entry:
if 'Rank' in entry:
add_event('setCommanderRankEngineer', entry['timestamp'],
OrderedDict([