From e9907bda7de9cfcbd7c72236d6c60736ea0b251e Mon Sep 17 00:00:00 2001 From: Steffen Dietz Date: Wed, 5 May 2021 23:42:59 +0200 Subject: [PATCH] initial import --- .gitignore | 2 ++ README.md | 1 + load.py | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 load.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b907dd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.key +__pycache__ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..326474d --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Elite: Dangerous - Companion EDMC Plugin \ No newline at end of file diff --git a/load.py b/load.py new file mode 100644 index 0000000..75b0740 --- /dev/null +++ b/load.py @@ -0,0 +1,88 @@ +import sys +import requests +import tkinter as tk +import myNotebook as nb +from config import config + +this = sys.modules[__name__] # For holding module globals + + +def plugin_start3(plugin_dir): + """ + Plugin is loaded + """ + return "EDCompanion" + + +def plugin_stop(): + """ + EDMC is closing + """ + pass + + +def plugin_prefs(parent, cmdr, is_beta): + """ + Return a TK Frame for adding to the EDMC settings dialog. + """ + PADX = 10 + BUTTONX = 12 # indent Checkbuttons and Radiobuttons + PADY = 2 # close spacing + + frame = nb.Frame(parent) + + this.apikey_label = nb.Label(frame, text='API Key') # EDSM setting + this.apikey_label.grid(row=12, padx=PADX, sticky=tk.W) + this.apikey = nb.Entry(frame) + this.apikey.grid(row=12, column=1, padx=PADX, pady=PADY, sticky=tk.EW) + + prefs_cmdr_changed(cmdr, is_beta) + + return frame + + +def prefs_cmdr_changed(cmdr, is_beta): + this.apikey['state'] = tk.NORMAL + this.apikey.delete(0, tk.END) + if cmdr: + cred = credentials(cmdr) + if cred: + this.apikey.insert(0, cred) + + +def prefs_changed(cmdr, is_beta): + """ + Save settings. + """ + if cmdr and not is_beta: + this.cmdr = cmdr + this.FID = None + cmdrs = config.get('edcompanion_cmdrs') or [] + apikeys = config.get('edcompanion_apikeys') or [] + if cmdr in cmdrs: + idx = cmdrs.index(cmdr) + apikeys.extend([''] * (1 + idx - len(apikeys))) + apikeys[idx] = this.apikey.get().strip() + else: + config.set('edcompanion_cmdrs', cmdrs + [cmdr]) + apikeys.append(this.apikey.get().strip()) + config.set('edcompanion_apikeys', apikeys) + + +def credentials(cmdr): + # Credentials for cmdr + if not cmdr: + return None + + cmdrs = config.get('edcompanion_cmdrs') or [] + if cmdr in cmdrs and config.get('edcompanion_apikeys'): + return config.get('edcompanion_apikeys')[cmdrs.index(cmdr)] + else: + return None + + +def journal_entry(cmdr, is_beta, system, station, entry, state): + cred = credentials(cmdr) + if cred and not is_beta: + del state['Friends'] + requests.post("http://192.168.178.29:8080/update/status/" + cred, json=state) \ No newline at end of file