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

Obtain Cmdr from API for migration

This commit is contained in:
Jonathan Harris 2017-01-23 01:49:30 +00:00
parent ce744a11b0
commit 94db336aa6
2 changed files with 32 additions and 25 deletions

View File

@ -275,6 +275,15 @@ class AppWindow:
if not getattr(sys, 'frozen', False):
self.updater.checkForUpdates() # Sparkle / WinSparkle does this automatically for packaged apps
# Migration from <= 2.25
if not config.get('cmdrs') and config.get('username') and config.get('password'):
try:
self.session.login(config.get('username'), config.get('password'))
data = self.session.query()
prefs.migrate(data['commander']['name'])
except:
if __debug__: print_exc()
self.postprefs() # Companion login happens in callback from monitor
# Try to obtain exclusive lock on journal cache, even if we don't need it yet
@ -332,7 +341,7 @@ class AppWindow:
self.button['state'] = self.theme_button['state'] = tk.DISABLED
self.w.update_idletasks()
try:
if not monitor.cmdr or monitor.cmdr not in config.get('cmdrs'):
if not monitor.cmdr or not config.get('cmdrs') or monitor.cmdr not in config.get('cmdrs'):
raise companion.CredentialsError()
idx = config.get('cmdrs').index(monitor.cmdr)
self.session.login(config.get('fdev_usernames')[idx], config.get('fdev_passwords')[idx])
@ -563,18 +572,6 @@ class AppWindow:
self.edsm.link(monitor.system)
self.w.update_idletasks()
# New Cmdr?
if entry['event'] in [None, 'NewCommander', 'LoadGame'] and monitor.cmdr and not monitor.is_beta:
prefs.migrate(monitor.cmdr) # migration from <= 2.25
if config.get('cmdrs') and monitor.cmdr in config.get('cmdrs'):
prefs.make_current(monitor.cmdr)
elif config.get('cmdrs') and entry['event'] == 'NewCommander':
cmdrs = config.get('cmdrs')
cmdrs[0] = monitor.cmdr # New Cmdr uses same credentials as old
config.set('cmdrs', cmdrs)
else:
prefs.PreferencesDialog(self.w, self.postprefs) # First run or new Cmdr
# Send interesting events to EDSM
if config.getint('output') & config.OUT_SYS_EDSM and not monitor.is_beta:
self.status['text'] = _('Sending data to EDSM...')
@ -617,8 +614,16 @@ class AppWindow:
self.edsmpoll()
# Companion login - do this after EDSM so any EDSM errors don't mask login errors
if entry['event'] in [None, 'LoadGame'] and monitor.cmdr and not monitor.is_beta:
self.login()
if entry['event'] in [None, 'NewCommander', 'LoadGame'] and monitor.cmdr and not monitor.is_beta:
if config.get('cmdrs') and monitor.cmdr in config.get('cmdrs'):
prefs.make_current(monitor.cmdr)
self.login()
elif config.get('cmdrs') and entry['event'] == 'NewCommander':
cmdrs = config.get('cmdrs')
cmdrs[0] = monitor.cmdr # New Cmdr uses same credentials as old
config.set('cmdrs', cmdrs)
else:
prefs.PreferencesDialog(self.w, self.postprefs) # First run or failed migration
if not entry['event'] or not monitor.mode:
return # Startup or in CQC

View File

@ -341,24 +341,26 @@ class PreferencesDialog(tk.Toplevel):
self.cmdr_text['text'] = self.edsm_cmdr_text['text'] = monitor.cmdr and monitor.is_beta and ('%s [Beta]' % monitor.cmdr) or monitor.cmdr or _('None') # No hotkey/shortcut currently defined
if self.cmdr != monitor.cmdr:
# Cmdr has changed - update settings
if not monitor.is_beta:
migrate(monitor.cmdr) # migration from <= 2.25
if monitor.cmdr and config.get('cmdrs') and monitor.cmdr in config.get('cmdrs'):
config_idx = config.get('cmdrs').index(monitor.cmdr)
else:
config_idx = None
self.username['state'] = tk.NORMAL
self.username.delete(0, tk.END)
self.username.insert(0, config_idx is not None and config.get('fdev_usernames')[config_idx] or '')
self.password['state'] = tk.NORMAL
self.password.delete(0, tk.END)
self.password.insert(0, config_idx is not None and config.get('fdev_passwords')[config_idx] or '')
self.edsm_user['state'] = tk.NORMAL
self.edsm_user.delete(0, tk.END)
self.edsm_user.insert(0, config_idx is not None and config.get('edsm_usernames')[config_idx] or '')
self.edsm_apikey['state'] = tk.NORMAL
self.edsm_apikey.delete(0, tk.END)
self.edsm_apikey.insert(0, config_idx is not None and config.get('edsm_apikeys')[config_idx] or '')
if monitor.cmdr and config.get('cmdrs') and monitor.cmdr in config.get('cmdrs'):
config_idx = config.get('cmdrs').index(monitor.cmdr)
self.username.insert(0, config.get('fdev_usernames')[config_idx] or '')
self.password.insert(0, config.get('fdev_passwords')[config_idx] or '')
self.edsm_user.insert(0, config.get('edsm_usernames')[config_idx] or '')
self.edsm_apikey.insert(0, config.get('edsm_apikeys')[config_idx] or '')
elif monitor.cmdr and not config.get('cmdrs') and config.get('username') and config.get('password'):
# migration from <= 2.25
self.username.insert(0, config.get('username')[config_idx] or '')
self.password.insert(0, config.get('password')[config_idx] or '')
self.edsm_user.insert(0,config.get('edsm_cmdrname')[config_idx] or '')
self.edsm_apikey.insert(0, config.get('edsm_apikey')[config_idx] or '')
self.cmdr = monitor.cmdr
cmdr_state = not monitor.is_beta and monitor.cmdr and tk.NORMAL or tk.DISABLED