mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-17 17:42:20 +03:00
Tidy EDSM handling code
This commit is contained in:
parent
bfd1954afa
commit
7a91b1234d
@ -499,73 +499,48 @@ class AppWindow:
|
|||||||
if system_changed or station_changed:
|
if system_changed or station_changed:
|
||||||
self.status['text'] = ''
|
self.status['text'] = ''
|
||||||
|
|
||||||
|
# Send interesting events to EDSM
|
||||||
if config.getint('output') & config.OUT_SYS_EDSM and not monitor.is_beta:
|
if config.getint('output') & config.OUT_SYS_EDSM and not monitor.is_beta:
|
||||||
# Send credits to EDSM on startup
|
self.status['text'] = _('Sending data to EDSM...')
|
||||||
if monitor.credits and (not entry or entry['event'] == 'LoadGame'):
|
self.w.update_idletasks()
|
||||||
try:
|
try:
|
||||||
self.status['text'] = _('Sending balance/loan to EDSM...')
|
# Send credits to EDSM on startup
|
||||||
self.w.update_idletasks()
|
if not entry or entry['event'] == 'LoadGame':
|
||||||
self.edsm.setcredits(monitor.credits)
|
self.edsm.setcredits(monitor.credits)
|
||||||
self.status['text'] = ''
|
|
||||||
except Exception as e:
|
# Send rank info to EDSM on startup or change
|
||||||
if __debug__: print_exc()
|
if not entry or entry['event'] in ['Progress', 'Promotion']:
|
||||||
self.status['text'] = unicode(e)
|
|
||||||
if not config.getint('hotkey_mute'):
|
|
||||||
hotkeymgr.play_bad()
|
|
||||||
|
|
||||||
# Send shipid to EDSM on startup or change
|
|
||||||
if monitor.shipid and (not entry or entry['event'] in ['LoadGame', 'ShipyardSwap']):
|
|
||||||
try:
|
|
||||||
self.status['text'] = _('Sending shipId to EDSM...')
|
|
||||||
self.w.update_idletasks()
|
|
||||||
self.edsm.setshipid(monitor.shipid)
|
|
||||||
self.status['text'] = ''
|
|
||||||
except Exception as e:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
self.status['text'] = unicode(e)
|
|
||||||
if not config.getint('hotkey_mute'):
|
|
||||||
hotkeymgr.play_bad()
|
|
||||||
|
|
||||||
# Send rank info to EDSM on startup or change
|
|
||||||
if monitor.ranks and (not entry or entry['event'] in ['Progress', 'Promotion']):
|
|
||||||
try:
|
|
||||||
self.status['text'] = _('Sending ranks to EDSM...')
|
|
||||||
self.w.update_idletasks()
|
|
||||||
self.edsm.setranks(monitor.ranks)
|
self.edsm.setranks(monitor.ranks)
|
||||||
self.status['text'] = ''
|
|
||||||
except Exception as e:
|
# Send ship info to EDSM on startup or change
|
||||||
if __debug__: print_exc()
|
if not entry or entry['event'] in ['LoadGame', 'ShipyardNew', 'ShipyardSwap']:
|
||||||
self.status['text'] = unicode(e)
|
self.edsm.setshipid(monitor.shipid)
|
||||||
if not config.getint('hotkey_mute'):
|
|
||||||
hotkeymgr.play_bad()
|
# Write EDSM log on change
|
||||||
|
if monitor.mode and entry and entry['event'] in ['Location', 'FSDJump']:
|
||||||
|
self.system['image'] = ''
|
||||||
|
self.edsm.writelog(timegm(strptime(entry['timestamp'], '%Y-%m-%dT%H:%M:%SZ')), monitor.system, monitor.coordinates, monitor.shipid)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
if __debug__: print_exc()
|
||||||
|
self.status['text'] = unicode(e)
|
||||||
|
if not config.getint('hotkey_mute'):
|
||||||
|
hotkeymgr.play_bad()
|
||||||
|
else:
|
||||||
|
self.status['text'] = ''
|
||||||
|
self.edsmpoll()
|
||||||
|
|
||||||
|
elif system_changed:
|
||||||
|
self.edsm.link(monitor.system)
|
||||||
|
self.edsmpoll()
|
||||||
|
|
||||||
if not entry or not monitor.mode:
|
if not entry or not monitor.mode:
|
||||||
return # Fake event or in CQC
|
return # Startup or in CQC
|
||||||
|
|
||||||
|
# Plugins
|
||||||
plug.notify_journal_entry(monitor.cmdr, monitor.system, monitor.station, entry)
|
plug.notify_journal_entry(monitor.cmdr, monitor.system, monitor.station, entry)
|
||||||
|
if system_changed: # Backwards compatibility
|
||||||
if system_changed:
|
plug.notify_system_changed(timegm(strptime(entry['timestamp'], '%Y-%m-%dT%H:%M:%SZ')), monitor.system, monitor.coordinates)
|
||||||
self.system['image'] = ''
|
|
||||||
timestamp = timegm(strptime(entry['timestamp'], '%Y-%m-%dT%H:%M:%SZ'))
|
|
||||||
|
|
||||||
# Backwards compatibility
|
|
||||||
plug.notify_system_changed(timestamp, monitor.system, monitor.coordinates)
|
|
||||||
|
|
||||||
# Update EDSM if we have coordinates - i.e. Location or FSDJump events
|
|
||||||
if config.getint('output') & config.OUT_SYS_EDSM and monitor.coordinates:
|
|
||||||
try:
|
|
||||||
self.status['text'] = _('Sending flight log to EDSM...')
|
|
||||||
self.w.update_idletasks()
|
|
||||||
self.edsm.writelog(timestamp, monitor.system, monitor.coordinates)
|
|
||||||
self.status['text'] = ''
|
|
||||||
except Exception as e:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
self.status['text'] = unicode(e)
|
|
||||||
if not config.getint('hotkey_mute'):
|
|
||||||
hotkeymgr.play_bad()
|
|
||||||
else:
|
|
||||||
self.edsm.link(monitor.system)
|
|
||||||
self.edsmpoll()
|
|
||||||
|
|
||||||
# Auto-Update after docking
|
# Auto-Update after docking
|
||||||
if station_changed and not monitor.is_beta and not config.getint('output') & config.OUT_MKT_MANUAL and config.getint('output') & config.OUT_STATION_ANY:
|
if station_changed and not monitor.is_beta and not config.getint('output') & config.OUT_MKT_MANUAL and config.getint('output') & config.OUT_STATION_ANY:
|
||||||
@ -574,8 +549,8 @@ class AppWindow:
|
|||||||
# Send interesting events to EDDN
|
# Send interesting events to EDDN
|
||||||
try:
|
try:
|
||||||
if (config.getint('output') & config.OUT_SYS_EDDN and monitor.cmdr and
|
if (config.getint('output') & config.OUT_SYS_EDDN and monitor.cmdr and
|
||||||
(entry['event'] == 'FSDJump' and system_changed or
|
(entry['event'] == 'FSDJump' or
|
||||||
entry['event'] == 'Docked' and station_changed or
|
entry['event'] == 'Docked' or
|
||||||
entry['event'] == 'Scan' and monitor.system and monitor.coordinates)):
|
entry['event'] == 'Scan' and monitor.system and monitor.coordinates)):
|
||||||
# strip out properties disallowed by the schema
|
# strip out properties disallowed by the schema
|
||||||
for thing in ['CockpitBreach', 'BoostUsed', 'FuelLevel', 'FuelUsed', 'JumpDist']:
|
for thing in ['CockpitBreach', 'BoostUsed', 'FuelLevel', 'FuelUsed', 'JumpDist']:
|
||||||
|
139
edsm.py
139
edsm.py
@ -36,6 +36,29 @@ class EDSM:
|
|||||||
EDSM._IMG_NEW = tk.PhotoImage(data = 'R0lGODlhEAAQAMZwANKVHtWcIteiHuiqLPCuHOS1MN22ZeW7ROG6Zuu9MOy+K/i8Kf/DAuvCVf/FAP3BNf/JCf/KAPHHSv7ESObHdv/MBv/GRv/LGP/QBPXOPvjPQfjQSvbRSP/UGPLSae7Sfv/YNvLXgPbZhP7dU//iI//mAP/jH//kFv7fU//fV//ebv/iTf/iUv/kTf/iZ/vgiP/hc/vgjv/jbfriiPriiv7ka//if//jd//sJP/oT//tHv/mZv/sLf/rRP/oYv/rUv/paP/mhv/sS//oc//lkf/mif/sUf/uPv/qcv/uTv/uUv/vUP/qhP/xP//pm//ua//sf//ubf/wXv/thv/tif/slv/tjf/smf/yYP/ulf/2R//2Sv/xkP/2av/0gP/ylf/2df/0i//0j//0lP/5cP/7a//1p//5gf/7ev/3o//2sf/5mP/6kv/2vP/3y//+jP///////////////////////////////////////////////////////////////yH5BAEKAH8ALAAAAAAQABAAAAePgH+Cg4SFhoJKPIeHYT+LhVppUTiPg2hrUkKPXWdlb2xHJk9jXoNJQDk9TVtkYCUkOy4wNjdGfy1UXGJYOksnPiwgFwwYg0NubWpmX1ArHREOFYUyWVNIVkxXQSoQhyMoNVUpRU5EixkcMzQaGy8xhwsKHiEfBQkSIg+GBAcUCIIBBDSYYGiAAUMALFR6FAgAOw==')
|
EDSM._IMG_NEW = tk.PhotoImage(data = 'R0lGODlhEAAQAMZwANKVHtWcIteiHuiqLPCuHOS1MN22ZeW7ROG6Zuu9MOy+K/i8Kf/DAuvCVf/FAP3BNf/JCf/KAPHHSv7ESObHdv/MBv/GRv/LGP/QBPXOPvjPQfjQSvbRSP/UGPLSae7Sfv/YNvLXgPbZhP7dU//iI//mAP/jH//kFv7fU//fV//ebv/iTf/iUv/kTf/iZ/vgiP/hc/vgjv/jbfriiPriiv7ka//if//jd//sJP/oT//tHv/mZv/sLf/rRP/oYv/rUv/paP/mhv/sS//oc//lkf/mif/sUf/uPv/qcv/uTv/uUv/vUP/qhP/xP//pm//ua//sf//ubf/wXv/thv/tif/slv/tjf/smf/yYP/ulf/2R//2Sv/xkP/2av/0gP/ylf/2df/0i//0j//0lP/5cP/7a//1p//5gf/7ev/3o//2sf/5mP/6kv/2vP/3y//+jP///////////////////////////////////////////////////////////////yH5BAEKAH8ALAAAAAAQABAAAAePgH+Cg4SFhoJKPIeHYT+LhVppUTiPg2hrUkKPXWdlb2xHJk9jXoNJQDk9TVtkYCUkOy4wNjdGfy1UXGJYOksnPiwgFwwYg0NubWpmX1ArHREOFYUyWVNIVkxXQSoQhyMoNVUpRU5EixkcMzQaGy8xhwsKHiEfBQkSIg+GBAcUCIIBBDSYYGiAAUMALFR6FAgAOw==')
|
||||||
EDSM._IMG_ERROR = tk.PhotoImage(data = 'R0lGODlhEAAQAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAQABAAAAIwlBWpeR0AIwwNPRmZuVNJinyWuClhBlZjpm5fqnIAHJPtOd3Hou9mL6NVgj2LplEAADs=') # BBC Mode 5 '?'
|
EDSM._IMG_ERROR = tk.PhotoImage(data = 'R0lGODlhEAAQAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAQABAAAAIwlBWpeR0AIwwNPRmZuVNJinyWuClhBlZjpm5fqnIAHJPtOd3Hou9mL6NVgj2LplEAADs=') # BBC Mode 5 '?'
|
||||||
|
|
||||||
|
# Call an EDSM endpoint with args (which should be quoted)
|
||||||
|
def call(self, endpoint, args):
|
||||||
|
try:
|
||||||
|
url = 'https://www.edsm.net/%s?commanderName=%s&apiKey=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (
|
||||||
|
endpoint,
|
||||||
|
urllib2.quote(config.get('edsm_cmdrname').encode('utf-8')),
|
||||||
|
urllib2.quote(config.get('edsm_apikey')),
|
||||||
|
urllib2.quote(applongname),
|
||||||
|
urllib2.quote(appversion),
|
||||||
|
) + args
|
||||||
|
r = self.opener.open(url, timeout=EDSM._TIMEOUT)
|
||||||
|
reply = json.loads(r.read())
|
||||||
|
(msgnum, msg) = reply['msgnum'], reply['msg']
|
||||||
|
except:
|
||||||
|
if __debug__: print_exc()
|
||||||
|
raise Exception(_("Error: Can't connect to EDSM"))
|
||||||
|
|
||||||
|
# Message numbers: 1xx = OK, 2xx = fatal error, 3xx = error (but not generated in practice), 4xx = ignorable errors
|
||||||
|
if msgnum // 100 not in (1,4):
|
||||||
|
raise Exception(_('Error: EDSM {MSG}').format(MSG=msg))
|
||||||
|
else:
|
||||||
|
return reply
|
||||||
|
|
||||||
# Just set link without doing a lookup
|
# Just set link without doing a lookup
|
||||||
def link(self, system_name):
|
def link(self, system_name):
|
||||||
self.cancel_lookup()
|
self.cancel_lookup()
|
||||||
@ -53,8 +76,7 @@ class EDSM:
|
|||||||
self.result = { 'img': EDSM._IMG_KNOWN, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
self.result = { 'img': EDSM._IMG_KNOWN, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
||||||
else:
|
else:
|
||||||
self.result = { 'img': EDSM._IMG_ERROR, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
self.result = { 'img': EDSM._IMG_ERROR, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
||||||
r = self.opener.open('https://www.edsm.net/api-v1/system?sysname=%s&coords=1&fromSoftware=%s&fromSoftwareVersion=%s' % (urllib2.quote(system_name), urllib2.quote(applongname), urllib2.quote(appversion)), timeout=EDSM._TIMEOUT)
|
data = self.call('api-v1/system', '&sysname=%s&coords=1' % urllib2.quote(system_name))
|
||||||
data = json.loads(r.read())
|
|
||||||
|
|
||||||
if data == -1 or not data:
|
if data == -1 or not data:
|
||||||
# System not present - but don't create it on the assumption that the caller will
|
# System not present - but don't create it on the assumption that the caller will
|
||||||
@ -87,15 +109,14 @@ class EDSM:
|
|||||||
|
|
||||||
def worker(self, system_name, result):
|
def worker(self, system_name, result):
|
||||||
try:
|
try:
|
||||||
r = self.opener.open('https://www.edsm.net/api-v1/system?sysname=%s&coords=1&fromSoftware=%s&fromSoftwareVersion=%s' % (urllib2.quote(system_name), urllib2.quote(applongname), urllib2.quote(appversion)), timeout=EDSM._TIMEOUT)
|
data = self.call('api-v1/system', '&sysname=%s&coords=1' % urllib2.quote(system_name))
|
||||||
data = json.loads(r.read())
|
|
||||||
|
|
||||||
if data == -1 or not data:
|
if data == -1 or not data:
|
||||||
# System not present - create it
|
# System not present - create it
|
||||||
result['img'] = EDSM._IMG_NEW
|
result['img'] = EDSM._IMG_NEW
|
||||||
result['uncharted'] = True
|
result['uncharted'] = True
|
||||||
result['done'] = True # give feedback immediately
|
result['done'] = True # give feedback immediately
|
||||||
requests.get('https://www.edsm.net/api-v1/url?sysname=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (urllib2.quote(system_name), urllib2.quote(applongname), urllib2.quote(appversion)), timeout=EDSM._TIMEOUT) # creates system
|
self.call('api-v1/url', '&sysname=%s' % urllib2.quote(system_name)) # creates system
|
||||||
elif data.get('coords'):
|
elif data.get('coords'):
|
||||||
result['img'] = EDSM._IMG_KNOWN
|
result['img'] = EDSM._IMG_KNOWN
|
||||||
result['done'] = True
|
result['done'] = True
|
||||||
@ -110,109 +131,43 @@ class EDSM:
|
|||||||
|
|
||||||
|
|
||||||
# Send flight log and also do lookup
|
# Send flight log and also do lookup
|
||||||
def writelog(self, timestamp, system_name, coordinates=None):
|
def writelog(self, timestamp, system_name, coordinates, shipid = None):
|
||||||
|
|
||||||
if system_name in self.FAKE:
|
if system_name in self.FAKE:
|
||||||
self.result = { 'img': '', 'url': None, 'done': True, 'uncharted': False }
|
self.result = { 'img': '', 'url': None, 'done': True, 'uncharted': False }
|
||||||
return
|
return
|
||||||
|
|
||||||
self.result = { 'img': EDSM._IMG_ERROR, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
self.result = { 'img': EDSM._IMG_ERROR, 'url': 'https://www.edsm.net/show-system?systemName=%s' % urllib2.quote(system_name), 'done': True, 'uncharted': False }
|
||||||
try:
|
|
||||||
url = 'https://www.edsm.net/api-logs-v1/set-log?commanderName=%s&apiKey=%s&systemName=%s&dateVisited=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (
|
|
||||||
urllib2.quote(config.get('edsm_cmdrname').encode('utf-8')),
|
|
||||||
urllib2.quote(config.get('edsm_apikey')),
|
|
||||||
urllib2.quote(system_name),
|
|
||||||
urllib2.quote(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))),
|
|
||||||
urllib2.quote(applongname),
|
|
||||||
urllib2.quote(appversion)
|
|
||||||
)
|
|
||||||
if coordinates:
|
|
||||||
url += '&x=%.3f&y=%.3f&z=%.3f' % coordinates
|
|
||||||
r = self.opener.open(url, timeout=EDSM._TIMEOUT)
|
|
||||||
reply = json.loads(r.read())
|
|
||||||
(msgnum, msg) = reply['msgnum'], reply['msg']
|
|
||||||
except:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
raise Exception(_("Error: Can't connect to EDSM"))
|
|
||||||
|
|
||||||
# Message numbers: 1xx = OK, 2xx = fatal error, 3xx = error (but not generated in practice), 4xx = ignorable errors
|
args = '&systemName=%s&dateVisited=%s' % (
|
||||||
if msgnum // 100 not in (1,4):
|
urllib2.quote(system_name),
|
||||||
raise Exception(_('Error: EDSM {MSG}').format(MSG=msg))
|
urllib2.quote(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))),
|
||||||
elif reply.get('systemCreated'):
|
)
|
||||||
|
if coordinates:
|
||||||
|
args += '&x=%.3f&y=%.3f&z=%.3f' % coordinates
|
||||||
|
if shipid:
|
||||||
|
args += '&shipId=%d' % shipid
|
||||||
|
reply = self.call('api-logs-v1/set-log', args)
|
||||||
|
|
||||||
|
if reply.get('systemCreated'):
|
||||||
self.result['img'] = EDSM._IMG_NEW
|
self.result['img'] = EDSM._IMG_NEW
|
||||||
else:
|
else:
|
||||||
self.result['img'] = EDSM._IMG_KNOWN
|
self.result['img'] = EDSM._IMG_KNOWN
|
||||||
self.syscache.add(system_name)
|
self.syscache.add(system_name)
|
||||||
|
|
||||||
def setranks(self, ranks):
|
def setranks(self, ranks):
|
||||||
if not ranks:
|
args = ''
|
||||||
return
|
if ranks:
|
||||||
|
|
||||||
try:
|
|
||||||
url = 'https://www.edsm.net/api-commander-v1/set-ranks?commanderName=%s&apiKey=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (
|
|
||||||
urllib2.quote(config.get('edsm_cmdrname').encode('utf-8')),
|
|
||||||
urllib2.quote(config.get('edsm_apikey')),
|
|
||||||
urllib2.quote(applongname),
|
|
||||||
urllib2.quote(appversion)
|
|
||||||
)
|
|
||||||
for k,v in ranks.iteritems():
|
for k,v in ranks.iteritems():
|
||||||
if v is not None:
|
if v is not None:
|
||||||
url += '&%s=%s' % (k, urllib2.quote('%d;%d' % v))
|
args += '&%s=%s' % (k, urllib2.quote('%d;%d' % v))
|
||||||
r = self.opener.open(url, timeout=EDSM._TIMEOUT)
|
if args:
|
||||||
reply = json.loads(r.read())
|
self.call('api-commander-v1/set-ranks', args)
|
||||||
(msgnum, msg) = reply['msgnum'], reply['msg']
|
|
||||||
except:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
raise Exception(_("Error: Can't connect to EDSM"))
|
|
||||||
|
|
||||||
if msgnum // 100 not in (1,4):
|
|
||||||
raise Exception(_('Error: EDSM {MSG}').format(MSG=msg))
|
|
||||||
|
|
||||||
def setcredits(self, credits):
|
def setcredits(self, credits):
|
||||||
if not credits:
|
if credits:
|
||||||
return
|
self.call('api-commander-v1/set-credits', '&balance=%d&loan=%d' % credits)
|
||||||
|
|
||||||
try:
|
|
||||||
url = 'https://www.edsm.net/api-commander-v1/set-credits?commanderName=%s&apiKey=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (
|
|
||||||
urllib2.quote(config.get('edsm_cmdrname').encode('utf-8')),
|
|
||||||
urllib2.quote(config.get('edsm_apikey')),
|
|
||||||
urllib2.quote(applongname),
|
|
||||||
urllib2.quote(appversion)
|
|
||||||
)
|
|
||||||
|
|
||||||
url += '&%s=%s' % ('balance', urllib2.quote('%d;%d' % credits['balance']))
|
|
||||||
url += '&%s=%s' % ('loan', urllib2.quote('%d;%d' % credits['loan']))
|
|
||||||
|
|
||||||
r = self.opener.open(url, timeout=EDSM._TIMEOUT)
|
|
||||||
reply = json.loads(r.read())
|
|
||||||
(msgnum, msg) = reply['msgnum'], reply['msg']
|
|
||||||
except:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
raise Exception(_("Error: Can't connect to EDSM"))
|
|
||||||
|
|
||||||
if msgnum // 100 not in (1,4):
|
|
||||||
raise Exception(_('Error: EDSM {MSG}').format(MSG=msg))
|
|
||||||
|
|
||||||
def setshipid(self, shipid):
|
def setshipid(self, shipid):
|
||||||
if not shipid:
|
if shipid is not None:
|
||||||
return
|
self.call('api-commander-v1/set-ship-id', '&shipId=%d' % shipid)
|
||||||
|
|
||||||
try:
|
|
||||||
url = 'https://www.edsm.net/api-commander-v1/set-ship-id?commanderName=%s&apiKey=%s&fromSoftware=%s&fromSoftwareVersion=%s' % (
|
|
||||||
urllib2.quote(config.get('edsm_cmdrname').encode('utf-8')),
|
|
||||||
urllib2.quote(config.get('edsm_apikey')),
|
|
||||||
urllib2.quote(applongname),
|
|
||||||
urllib2.quote(appversion)
|
|
||||||
)
|
|
||||||
|
|
||||||
url += '&%s=%s' % ('shipId', urllib2.quote('%d;%d' % shipid))
|
|
||||||
|
|
||||||
r = self.opener.open(url, timeout=EDSM._TIMEOUT)
|
|
||||||
reply = json.loads(r.read())
|
|
||||||
(msgnum, msg) = reply['msgnum'], reply['msg']
|
|
||||||
except:
|
|
||||||
if __debug__: print_exc()
|
|
||||||
raise Exception(_("Error: Can't connect to EDSM"))
|
|
||||||
|
|
||||||
if msgnum // 100 not in (1,4):
|
|
||||||
raise Exception(_('Error: EDSM {MSG}').format(MSG=msg))
|
|
||||||
|
12
monitor.py
12
monitor.py
@ -217,16 +217,20 @@ class EDLogs(FileSystemEventHandler):
|
|||||||
if entry['event'] == 'Fileheader':
|
if entry['event'] == 'Fileheader':
|
||||||
self.version = entry['gameversion']
|
self.version = entry['gameversion']
|
||||||
self.is_beta = 'beta' in entry['gameversion'].lower()
|
self.is_beta = 'beta' in entry['gameversion'].lower()
|
||||||
self.ranks = None
|
|
||||||
elif entry['event'] == 'LoadGame':
|
elif entry['event'] == 'LoadGame':
|
||||||
self.cmdr = entry['Commander']
|
self.cmdr = entry['Commander']
|
||||||
self.shipid = entry['ShipID']
|
|
||||||
self.mode = entry.get('GameMode') # 'Open', 'Solo', 'Group', or None for CQC
|
self.mode = entry.get('GameMode') # 'Open', 'Solo', 'Group', or None for CQC
|
||||||
|
self.shipid = entry.get('ShipID') # None in CQC
|
||||||
|
self.system = None
|
||||||
|
self.station = None
|
||||||
|
self.coordinates = None
|
||||||
self.ranks = { "Combat": None, "Trade": None, "Explore": None, "Empire": None, "Federation": None, "CQC": None }
|
self.ranks = { "Combat": None, "Trade": None, "Explore": None, "Empire": None, "Federation": None, "CQC": None }
|
||||||
self.credits = { "balance": entry['Credits'], "loan": entry['Loan'] }
|
self.credits = ( entry['Credits'], entry['Loan'] )
|
||||||
elif entry['event'] == 'NewCommander':
|
elif entry['event'] == 'NewCommander':
|
||||||
self.cmdr = entry['Name']
|
self.cmdr = entry['Name']
|
||||||
elif entry['event'] in ['ShipyardSwap']:
|
elif entry['event'] == 'ShipyardNew':
|
||||||
|
self.shipid = entry['NewShipID']
|
||||||
|
elif entry['event'] == 'ShipyardSwap':
|
||||||
self.shipid = entry['ShipID']
|
self.shipid = entry['ShipID']
|
||||||
elif entry['event'] in ['Undocked']:
|
elif entry['event'] in ['Undocked']:
|
||||||
self.station = None
|
self.station = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user