mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-08 19:32:15 +03:00
More Inara 3.3 support
Add commanderFrontierID to header. Send "setCommanderReputationMinorFaction" events. Send "addCommanderFriend" and "delCommanderFriend" events. Use array forms of "setCommanderRankPilot", "SetCommanderRankEngineer and "SetCommanderReputationMajorFaction" events.
This commit is contained in:
parent
1cdf1737c8
commit
31f0139271
@ -34,6 +34,7 @@ this.queue = Queue() # Items to be sent to Inara by worker thread
|
|||||||
# Cached Cmdr state
|
# Cached Cmdr state
|
||||||
this.events = [] # Unsent events
|
this.events = [] # Unsent events
|
||||||
this.cmdr = None
|
this.cmdr = None
|
||||||
|
this.FID = None # Frontier ID
|
||||||
this.multicrew = False # don't send captain's ship info to Inara while on a crew
|
this.multicrew = False # don't send captain's ship info to Inara while on a crew
|
||||||
this.newuser = False # just entered API Key - send state immediately
|
this.newuser = False # just entered API Key - send state immediately
|
||||||
this.newsession = True # starting a new session - wait for Cargo event
|
this.newsession = True # starting a new session - wait for Cargo event
|
||||||
@ -131,6 +132,7 @@ def prefs_changed(cmdr, is_beta):
|
|||||||
|
|
||||||
if cmdr and not is_beta:
|
if cmdr and not is_beta:
|
||||||
this.cmdr = cmdr
|
this.cmdr = cmdr
|
||||||
|
this.FID = None
|
||||||
cmdrs = config.get('inara_cmdrs') or []
|
cmdrs = config.get('inara_cmdrs') or []
|
||||||
apikeys = config.get('inara_apikeys') or []
|
apikeys = config.get('inara_apikeys') or []
|
||||||
if cmdr in cmdrs:
|
if cmdr in cmdrs:
|
||||||
@ -168,6 +170,7 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
call()
|
call()
|
||||||
|
|
||||||
this.cmdr = cmdr
|
this.cmdr = cmdr
|
||||||
|
this.FID = state['FID']
|
||||||
this.multicrew = bool(state['Role'])
|
this.multicrew = bool(state['Role'])
|
||||||
|
|
||||||
if entry['event'] == 'LoadGame' or this.newuser:
|
if entry['event'] == 'LoadGame' or this.newuser:
|
||||||
@ -214,34 +217,28 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
this.newsession = False
|
this.newsession = False
|
||||||
|
|
||||||
# Send rank info to Inara on startup
|
# Send rank info to Inara on startup
|
||||||
for k,v in state['Rank'].iteritems():
|
|
||||||
if v is not None:
|
|
||||||
add_event('setCommanderRankPilot', entry['timestamp'],
|
add_event('setCommanderRankPilot', entry['timestamp'],
|
||||||
|
[
|
||||||
OrderedDict([
|
OrderedDict([
|
||||||
('rankName', k.lower()),
|
('rankName', k.lower()),
|
||||||
('rankValue', v[0]),
|
('rankValue', v[0]),
|
||||||
('rankProgress', v[1] / 100.0),
|
('rankProgress', v[1] / 100.0),
|
||||||
]))
|
]) for k,v in state['Rank'].iteritems() if v is not None
|
||||||
for k,v in state['Reputation'].iteritems():
|
])
|
||||||
if v is not None:
|
|
||||||
add_event('setCommanderReputationMajorFaction', entry['timestamp'],
|
add_event('setCommanderReputationMajorFaction', entry['timestamp'],
|
||||||
|
[
|
||||||
OrderedDict([
|
OrderedDict([
|
||||||
('majorfactionName', k.lower()),
|
('majorfactionName', k.lower()),
|
||||||
('majorfactionReputation', v / 100.0),
|
('majorfactionReputation', v / 100.0),
|
||||||
]))
|
]) for k,v in state['Reputation'].iteritems() if v is not None
|
||||||
for k,v in state['Engineers'].iteritems():
|
])
|
||||||
if type(v) is tuple:
|
|
||||||
add_event('setCommanderRankEngineer', entry['timestamp'],
|
add_event('setCommanderRankEngineer', entry['timestamp'],
|
||||||
|
[
|
||||||
OrderedDict([
|
OrderedDict([
|
||||||
('engineerName', k),
|
('engineerName', k),
|
||||||
('rankValue', v[0]),
|
type(v) is tuple and ('rankValue', v[0]) or ('rankStage', v),
|
||||||
]))
|
]) for k,v in state['Engineers'].iteritems()
|
||||||
else:
|
])
|
||||||
add_event('setCommanderRankEngineer', entry['timestamp'],
|
|
||||||
OrderedDict([
|
|
||||||
('engineerName', k),
|
|
||||||
('rankStage', v),
|
|
||||||
]))
|
|
||||||
|
|
||||||
# Update location
|
# Update location
|
||||||
add_event('setCommanderTravelLocation', entry['timestamp'],
|
add_event('setCommanderTravelLocation', entry['timestamp'],
|
||||||
@ -281,17 +278,10 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
('rankProgress', 0),
|
('rankProgress', 0),
|
||||||
]))
|
]))
|
||||||
elif entry['event'] == 'EngineerProgress' and 'Engineer' in entry:
|
elif entry['event'] == 'EngineerProgress' and 'Engineer' in entry:
|
||||||
if 'Rank' in entry:
|
|
||||||
add_event('setCommanderRankEngineer', entry['timestamp'],
|
add_event('setCommanderRankEngineer', entry['timestamp'],
|
||||||
OrderedDict([
|
OrderedDict([
|
||||||
('engineerName', entry['Engineer']),
|
('engineerName', entry['Engineer']),
|
||||||
('rankValue', entry['Rank']),
|
'Rank' in entry and ('rankValue', entry['Rank']) or ('rankStage', entry['Progress']),
|
||||||
]))
|
|
||||||
else:
|
|
||||||
add_event('setCommanderRankEngineer', entry['timestamp'],
|
|
||||||
OrderedDict([
|
|
||||||
('engineerName', entry['Engineer']),
|
|
||||||
('rankStage', entry['Progress']),
|
|
||||||
]))
|
]))
|
||||||
|
|
||||||
# PowerPlay status change
|
# PowerPlay status change
|
||||||
@ -374,6 +364,14 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
('shipGameID', state['ShipID']),
|
('shipGameID', state['ShipID']),
|
||||||
]))
|
]))
|
||||||
|
|
||||||
|
if entry.get('Factions'):
|
||||||
|
add_event('setCommanderReputationMinorFaction', entry['timestamp'],
|
||||||
|
[
|
||||||
|
OrderedDict([
|
||||||
|
('minorfactionName', f['Name']),
|
||||||
|
('minorfactionReputation', f['MyReputation']),
|
||||||
|
]) for f in entry['Factions']
|
||||||
|
])
|
||||||
|
|
||||||
# Override standard URL functions
|
# Override standard URL functions
|
||||||
if config.get('system_provider') == 'Inara':
|
if config.get('system_provider') == 'Inara':
|
||||||
@ -667,6 +665,19 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
|||||||
data['isTopRank'] = goal['PlayerInTopRank']
|
data['isTopRank'] = goal['PlayerInTopRank']
|
||||||
add_event('setCommanderCommunityGoalProgress', entry['timestamp'], data)
|
add_event('setCommanderCommunityGoalProgress', entry['timestamp'], data)
|
||||||
|
|
||||||
|
# Friends
|
||||||
|
if entry['event'] == 'Friends':
|
||||||
|
if entry['Status'] in ['Added', 'Online']:
|
||||||
|
add_event('addCommanderFriend', entry['timestamp'],
|
||||||
|
OrderedDict([('commanderName', entry['Name']),
|
||||||
|
('gamePlatform', 'pc'),
|
||||||
|
]))
|
||||||
|
elif entry['Status'] in ['Declined', 'Lost']:
|
||||||
|
add_event('delCommanderFriend', entry['timestamp'],
|
||||||
|
OrderedDict([('commanderName', entry['Name']),
|
||||||
|
('gamePlatform', 'pc'),
|
||||||
|
]))
|
||||||
|
|
||||||
this.newuser = False
|
this.newuser = False
|
||||||
|
|
||||||
def cmdr_data(data, is_beta):
|
def cmdr_data(data, is_beta):
|
||||||
@ -757,6 +768,7 @@ def call(callback=None):
|
|||||||
('appVersion', appversion),
|
('appVersion', appversion),
|
||||||
('APIkey', credentials(this.cmdr)),
|
('APIkey', credentials(this.cmdr)),
|
||||||
('commanderName', this.cmdr.encode('utf-8')),
|
('commanderName', this.cmdr.encode('utf-8')),
|
||||||
|
('commanderFrontierID', this.FID),
|
||||||
])),
|
])),
|
||||||
('events', list(this.events)), # shallow copy
|
('events', list(this.events)), # shallow copy
|
||||||
])
|
])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user