mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-05 09:53:33 +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),
|
'Raw' : defaultdict(int),
|
||||||
'Manufactured' : defaultdict(int),
|
'Manufactured' : defaultdict(int),
|
||||||
'Encoded' : 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
|
'Role' : None, # Crew role - None, Idle, FireCon, FighterCon
|
||||||
'Friends' : set(), # Online friends
|
'Friends' : set(), # Online friends
|
||||||
'ShipID' : None,
|
'ShipID' : None,
|
||||||
@ -322,7 +324,9 @@ class EDLogs(FileSystemEventHandler):
|
|||||||
'Raw' : defaultdict(int),
|
'Raw' : defaultdict(int),
|
||||||
'Manufactured' : defaultdict(int),
|
'Manufactured' : defaultdict(int),
|
||||||
'Encoded' : defaultdict(int),
|
'Encoded' : defaultdict(int),
|
||||||
'Rank' : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
|
'Rank' : {},
|
||||||
|
'Reputation' : {},
|
||||||
|
'Statistics' : {},
|
||||||
'Role' : None,
|
'Role' : None,
|
||||||
'Friends' : set(),
|
'Friends' : set(),
|
||||||
'ShipID' : None,
|
'ShipID' : None,
|
||||||
@ -351,7 +355,9 @@ class EDLogs(FileSystemEventHandler):
|
|||||||
'Captain' : None,
|
'Captain' : None,
|
||||||
'Credits' : entry['Credits'],
|
'Credits' : entry['Credits'],
|
||||||
'Loan' : entry['Loan'],
|
'Loan' : entry['Loan'],
|
||||||
'Rank' : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
|
'Rank' : {},
|
||||||
|
'Reputation' : {},
|
||||||
|
'Statistics' : {},
|
||||||
'Role' : None,
|
'Role' : None,
|
||||||
})
|
})
|
||||||
elif entry['event'] == 'NewCommander':
|
elif entry['event'] == 'NewCommander':
|
||||||
@ -430,14 +436,22 @@ class EDLogs(FileSystemEventHandler):
|
|||||||
self.planet = entry.get('Body') if entry.get('BodyType') == 'Planet' else None
|
self.planet = entry.get('Body') if entry.get('BodyType') == 'Planet' else None
|
||||||
elif entry['event'] in ['LeaveBody', 'SupercruiseEntry']:
|
elif entry['event'] in ['LeaveBody', 'SupercruiseEntry']:
|
||||||
self.planet = None
|
self.planet = None
|
||||||
|
|
||||||
elif entry['event'] in ['Rank', 'Promotion']:
|
elif entry['event'] in ['Rank', 'Promotion']:
|
||||||
for k,v in entry.iteritems():
|
payload = dict(entry)
|
||||||
if k in self.state['Rank']:
|
payload.pop('event')
|
||||||
self.state['Rank'][k] = (v,0)
|
payload.pop('timestamp')
|
||||||
|
for k,v in payload.iteritems():
|
||||||
|
self.state['Rank'][k] = (v,0)
|
||||||
elif entry['event'] == 'Progress':
|
elif entry['event'] == 'Progress':
|
||||||
for k,v in entry.iteritems():
|
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
|
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':
|
elif entry['event'] == 'Cargo':
|
||||||
self.state['Cargo'] = defaultdict(int)
|
self.state['Cargo'] = defaultdict(int)
|
||||||
|
@ -181,6 +181,15 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
('rankValue', v[0]),
|
('rankValue', v[0]),
|
||||||
('rankProgress', v[1] / 100.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':
|
elif entry['event'] == 'Promotion':
|
||||||
for k,v in state['Rank'].iteritems():
|
for k,v in state['Rank'].iteritems():
|
||||||
if k in entry:
|
if k in entry:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user