import Tkinter as tk
from ttkHyperlinkLabel import HyperlinkLabel
+import myNotebook as nb
from config import config
this.edsm_session = None
this.edsm_data = None
this.cache = {}
+this.config_prefix = 'plugin.MissingArrivalStar'
def plugin_start():
return 'MissingArrivalStar'
def plugin_app(parent):
this.frame = tk.Frame(parent)
- this.frame.columnconfigure(2, weight=1)
+ this.frame.columnconfigure(2, weight = 1)
this.frame.bind('<<MissingArrivalStar>>', edsm_callback)
this.widget_label = tk.Label(this.frame, text = 'Arrival star:')
this.widget_label.grid(row = 0, column = 0, sticky = tk.W)
this.widget = tk.Label(this.frame, text = '')
this.widget.grid(row = 0, column = 1, sticky = tk.W)
this.last_system = None
+ this.event = tk.StringVar(value = get_pref('event', 'FSDJump'))
return this.frame
+def plugin_prefs(parent, cmdr, is_beta):
+ frame = nb.Frame(parent)
+ nb.Label(frame, text = 'Query EDSM for arrival star:').grid(row = 0, padx = 10, pady = (10, 0), sticky = tk.W)
+ nb.Radiobutton(frame, variable = this.event, value = 'StartJump', text = "When jump is initiated").grid(row = 1, column = 0, padx = 10, sticky = tk.W)
+ nb.Radiobutton(frame, variable = this.event, value = 'FSDJump', text = "On arrival in system").grid(row = 2, column = 0, padx = 10, sticky = tk.W)
+ return frame
+
+def get_pref(key, default = None):
+ value = config.get('{}.{}'.format(this.config_prefix, key))
+ return value if value is not None else default
+
+def set_pref(key, value):
+ return config.set('{}.{}'.format(this.config_prefix, key), value)
+
+def prefs_changed(cmdr, is_beta):
+ set_pref('event', this.event.get())
+
+def query_on_arrival():
+ return get_pref('event', 'FSDJump') == 'FSDJump'
+
def highlight(b):
if b:
this.widget['fg'] = config.get('dark_highlight')
def arrival_star_unknown():
highlight(True)
- this.widget['text'] = 'UNKNOWN! Please scan.'
+ this.widget['text'] = 'Scan needed!'
def arrival_star_error():
highlight(True)
arrival_star_known('SCANNED')
elif entry['event'] == 'StartJump':
if entry['JumpType'] == 'Hyperspace':
- query_arrival_star(entry['StarSystem'])
+ if query_on_arrival():
+ arrival_star_known('')
+ else:
+ query_arrival_star(entry['StarSystem'])
elif entry['event'] == 'Location':
this.last_system = entry['StarSystem']
query_arrival_star(this.last_system)
elif entry['event'] == 'FSDJump':
this.last_system = entry['StarSystem']
+ if query_on_arrival():
+ query_arrival_star(this.last_system)
def cmdr_data(data, is_beta):
this.last_system = data['lastSystem']['name']
try:
arrival_star_checking()
- r = this.edsm_session.get('https://www.edsm.net/api-v1/system/systemName/{}/showPrimaryStar/1'.format(urllib2.quote(system)), timeout=10)
+ r = this.edsm_session.get('https://www.edsm.net/api-v1/system/systemName/{}/showPrimaryStar/1'.format(urllib2.quote(system)), timeout = 10)
r.raise_for_status()
this.edsm_data = r.json()
- this.frame.event_generate('<<MissingArrivalStar>>', when='tail')
+ this.frame.event_generate('<<MissingArrivalStar>>', when = 'tail')
except:
arrival_star_error()
this.edsm_data = None