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:
parent
88f323d36e
commit
2552c46d09
28
monitor.py
28
monitor.py
@ -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)
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user