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

Track Reputation and Statistics

This commit is contained in:
Jonathan Harris 2018-02-18 02:35:37 +00:00
parent 88f323d36e
commit 2552c46d09
2 changed files with 30 additions and 7 deletions

View File

@ -113,7 +113,9 @@ class EDLogs(FileSystemEventHandler):
'Raw' : defaultdict(int),
'Manufactured' : defaultdict(int),
'Encoded' : defaultdict(int),
'Rank' : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
'Role' : None, # Crew role - None, Idle, FireCon, FighterCon
'Friends' : set(), # Online friends
'ShipID' : None,
@ -322,7 +324,9 @@ class EDLogs(FileSystemEventHandler):
'Raw' : defaultdict(int),
'Manufactured' : defaultdict(int),
'Encoded' : defaultdict(int),
'Rank' : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
'Role' : None,
'Friends' : set(),
'ShipID' : None,
@ -351,7 +355,9 @@ class EDLogs(FileSystemEventHandler):
'Captain' : None,
'Credits' : entry['Credits'],
'Loan' : entry['Loan'],
'Rank' : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
'Rank' : {},
'Reputation' : {},
'Statistics' : {},
'Role' : None,
})
elif entry['event'] == 'NewCommander':
@ -430,14 +436,22 @@ class EDLogs(FileSystemEventHandler):
self.planet = entry.get('Body') if entry.get('BodyType') == 'Planet' else None
elif entry['event'] in ['LeaveBody', 'SupercruiseEntry']:
self.planet = None
elif entry['event'] in ['Rank', 'Promotion']:
for k,v in entry.iteritems():
if k in self.state['Rank']:
self.state['Rank'][k] = (v,0)
payload = dict(entry)
payload.pop('event')
payload.pop('timestamp')
for k,v in payload.iteritems():
self.state['Rank'][k] = (v,0)
elif entry['event'] == 'Progress':
for k,v in entry.iteritems():
if self.state['Rank'].get(k) is not None:
if k in self.state['Rank']:
self.state['Rank'][k] = (self.state['Rank'][k][0], min(v, 100)) # perhaps not taken promotion mission yet
elif entry['event'] in ['Reputation', 'Statistics']:
payload = dict(entry)
payload.pop('event')
payload.pop('timestamp')
self.state[entry['event']] = payload
elif entry['event'] == 'Cargo':
self.state['Cargo'] = defaultdict(int)

View File

@ -181,6 +181,15 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
('rankValue', v[0]),
('rankProgress', v[1] / 100.0),
]))
for k,v in state['Reputation'].iteritems():
if v is not None:
add_event('setCommanderReputationMajorFaction', entry['timestamp'],
OrderedDict([
('majorfactionName', k.lower()),
('majorfactionReputation', v / 100.0),
]))
add_event('setCommanderGameStatistics', entry['timestamp'], state['Statistics']) # may be out of date
elif entry['event'] == 'Promotion':
for k,v in state['Rank'].iteritems():
if k in entry: