mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 16:27:13 +03:00
Merge branch 'releases' into stable
This commit is contained in:
commit
2a09874554
16
ChangeLog.md
16
ChangeLog.md
@ -1,6 +1,22 @@
|
||||
This is the master changelog for Elite Dangerous Market Connector. Entries are in reverse chronological order (latest first).
|
||||
---
|
||||
|
||||
Release 4.0.6
|
||||
===
|
||||
|
||||
* Correct the three System Provider plugins to *not* show the *next* system
|
||||
in a plotted route instead of the current system.
|
||||
|
||||
Release 4.0.5
|
||||
===
|
||||
|
||||
* Built using Python 3.7.9.
|
||||
* Fix EDSM plugin so the System provider actually updates the URLs for
|
||||
jumps to new systems.
|
||||
|
||||
In general this cleans up the code for all three System and Station Providers;
|
||||
EDDB, EDSM, Inara.
|
||||
|
||||
Release 4.0.4
|
||||
===
|
||||
|
||||
|
@ -949,9 +949,26 @@ if __name__ == "__main__":
|
||||
def messagebox_not_py3():
|
||||
plugins_not_py3_last = config.getint('plugins_not_py3_last') or 0
|
||||
if (plugins_not_py3_last + 86400) < int(time()) and len(plug.PLUGINS_not_py3):
|
||||
# Yes, this is horribly hacky so as to be sure we match the key
|
||||
# that we told Translators to use.
|
||||
popup_text = "One or more of your enabled plugins do not yet have support for Python 3.x. Please see the " \
|
||||
"list on the '{PLUGINS}' tab of '{FILE}' > '{SETTINGS}'. You should check if there is an " \
|
||||
"updated version available, else alert the developer that they need to update the code for " \
|
||||
"Python 3.x.\r\n\r\nYou can disable a plugin by renaming its folder to have '{DISABLED}' on " \
|
||||
"the end of the name."
|
||||
popup_text = popup_text.replace('\n', '\\n')
|
||||
popup_text = popup_text.replace('\r', '\\r')
|
||||
# Now the string should match, so try translation
|
||||
popup_text = _(popup_text)
|
||||
# And substitute in the other words.
|
||||
popup_text = popup_text.format(PLUGINS=_('Plugins'), FILE=_('File'), SETTINGS=_('Settings'), DISABLED='.disabled')
|
||||
# And now we do need these to be actual \r\n
|
||||
popup_text = popup_text.replace('\\n', '\n')
|
||||
popup_text = popup_text.replace('\\r', '\r')
|
||||
|
||||
tk.messagebox.showinfo(
|
||||
_('EDMC: Plugins Without Python 3.x Support'),
|
||||
_("One or more of your enabled plugins do not yet have support for Python 3.x. Please see the list on the '{PLUGINS}' tab of '{FILE}' > '{SETTINGS}'. You should check if there is an updated version available, else alert the developer that they need to update the code for Python 3.x.\r\n\r\nYou can disable a plugin by renaming its folder to have '{DISABLED}' on the end of the name.".format(PLUGINS=_('Plugins'), FILE=_('File'), SETTINGS=_('Settings'), DISABLED='.disabled'))
|
||||
popup_text
|
||||
)
|
||||
config.set('plugins_not_py3_last', int(time()))
|
||||
|
||||
|
@ -490,6 +490,9 @@
|
||||
/* Update button in main window. [EDMarketConnector.py] */
|
||||
"Update" = "Actualizar";
|
||||
|
||||
/* Option to use alternate URL method on shipyard links [prefs.py] */
|
||||
"Use alternate URL method" = "Usar método URL alternativo.";
|
||||
|
||||
/* Status dialog subtitle - CR value of ship. [stats.py] */
|
||||
"Value" = "Valor";
|
||||
|
||||
|
@ -13,7 +13,7 @@ appcmdname = 'EDMC'
|
||||
# appversion **MUST** follow Semantic Versioning rules:
|
||||
# <https://semver.org/#semantic-versioning-specification-semver>
|
||||
# Major.Minor.Patch(-prerelease)(+buildmetadata)
|
||||
appversion = '4.0.4' #-rc1+a872b5f'
|
||||
appversion = '4.0.6' #-rc1+a872b5f'
|
||||
# For some things we want appversion without (possible) +build metadata
|
||||
appversion_nobuild = str(semantic_version.Version(appversion).truncate('prerelease'))
|
||||
copyright = u'© 2015-2019 Jonathan Harris, 2020 EDCD'
|
||||
|
@ -32,7 +32,7 @@ You will need several pieces of software installed, or the files from their
|
||||
"Windows Software Development Kit - Windows 10.0.18362.1" in
|
||||
"Apps & Features", *not* "Windows SDK AddOn".
|
||||
1. [Python](https://python.org): 32-bit version of Python 3.7 for Windows.
|
||||
[v3.7.7](https://www.python.org/downloads/release/python-377/) is the most
|
||||
[v3.7.9](https://www.python.org/downloads/release/python-379/) is the most
|
||||
recently tested version. You need the `Windows x86 executable installer`
|
||||
file, for the 32-bit version.
|
||||
1. [py2exe](https://github.com/albertosottile/py2exe):
|
||||
|
@ -168,11 +168,26 @@
|
||||
<!-- Windows -->
|
||||
|
||||
<item>
|
||||
<title>Release 4.0.4</title>
|
||||
<title>Release 4.0.6</title>
|
||||
<description>
|
||||
<![CDATA[
|
||||
<style>body { font-family:"Segoe UI","Tahoma"; font-size: 75%; } h2 { font-family:"Segoe UI","Tahoma"; font-size: 105%; }</style>
|
||||
|
||||
<h2>Release 4.0.6</h2>
|
||||
<ul>
|
||||
<li>Correct the three System Provider plugins to <em>not</em> show the <em>next</em> system
|
||||
in a plotted route instead of the current system.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Release 4.0.5</h2>
|
||||
<ul>
|
||||
<li>Built using Python 3.7.9.</li>
|
||||
<li>Fix EDSM plugin so the System provider actually updates the URLs for
|
||||
jumps to new systems.</li>
|
||||
</ul>
|
||||
<p>In general this cleans up the code for all three System and Station Providers;
|
||||
EDDB, EDSM, Inara.</p>
|
||||
|
||||
<h2>Release 4.0.4</h2>
|
||||
<ul>
|
||||
<li>
|
||||
@ -603,11 +618,11 @@ If any of your plugins are listed in that section then they will need updating,
|
||||
]]>
|
||||
</description>
|
||||
<enclosure
|
||||
url="https://github.com/EDCD/EDMarketConnector/releases/download/Release/4.0.4/EDMarketConnector_win_4.0.4.msi"
|
||||
url="https://github.com/EDCD/EDMarketConnector/releases/download/Release/4.0.6/EDMarketConnector_win_4.0.6.msi"
|
||||
sparkle:os="windows"
|
||||
sparkle:installerArguments="/passive LAUNCH=yes"
|
||||
sparkle:version="4.0.4"
|
||||
length="11419648"
|
||||
sparkle:version="4.0.6"
|
||||
length="11317248"
|
||||
type="application/octet-stream"
|
||||
/>
|
||||
</item>
|
||||
|
@ -46,16 +46,17 @@ this.station_marketid = None
|
||||
def system_url(system_name: str) -> str:
|
||||
if this.system_address:
|
||||
return requests.utils.requote_uri(f'https://eddb.io/system/ed-address/{this.system_address}')
|
||||
elif system_name:
|
||||
|
||||
if system_name:
|
||||
return requests.utils.requote_uri(f'https://eddb.io/system/name/{system_name}')
|
||||
else:
|
||||
return ''
|
||||
|
||||
return ''
|
||||
|
||||
def station_url(system_name: str, station_name: str) -> str:
|
||||
if this.station_marketid:
|
||||
return requests.utils.requote_uri(f'https://eddb.io/station/market-id/{this.station_marketid}')
|
||||
else:
|
||||
return system_url('')
|
||||
|
||||
return system_url(system_name)
|
||||
|
||||
def plugin_start3(plugin_dir):
|
||||
return 'eddb'
|
||||
@ -70,17 +71,17 @@ def plugin_app(parent):
|
||||
this.station_link.configure(popup_copy = lambda x: x != STATION_UNDOCKED)
|
||||
|
||||
def prefs_changed(cmdr, is_beta):
|
||||
# Override standard URL functions
|
||||
if config.get('system_provider') == 'eddb':
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
if config.get('station_provider') == 'eddb':
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
pass
|
||||
|
||||
|
||||
def journal_entry(cmdr, is_beta, system, station, entry, state):
|
||||
# Always update, even if we're not the *current* system or station provider.
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
# Always update our system address even if we're not currently the provider for system or station, but dont update
|
||||
# on events that contain "future" data, such as FSDTarget
|
||||
if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'):
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
|
||||
# We need pop == 0 to set the value so as to clear 'x' in systems with
|
||||
# no stations.
|
||||
@ -98,13 +99,15 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
||||
# Only actually change URLs if we are current provider.
|
||||
if config.get('system_provider') == 'eddb':
|
||||
this.system_link['text'] = this.system
|
||||
this.system_link['url'] = system_url(this.system) # Override standard URL function
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.system_link.update_idletasks()
|
||||
|
||||
# But only actually change the URL if we are current station provider.
|
||||
if config.get('station_provider') == 'eddb':
|
||||
this.station_link['text'] = this.station or (this.system_population and this.system_population > 0 and STATION_UNDOCKED or '')
|
||||
this.station_link['url'] = station_url(this.system, this.station) # Override standard URL function
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.station_link.update_idletasks()
|
||||
|
||||
|
||||
@ -119,7 +122,8 @@ def cmdr_data(data, is_beta):
|
||||
# Override standard URL functions
|
||||
if config.get('system_provider') == 'eddb':
|
||||
this.system_link['text'] = this.system
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.system_link.update_idletasks()
|
||||
if config.get('station_provider') == 'eddb':
|
||||
if data['commander']['docked']:
|
||||
@ -129,6 +133,7 @@ def cmdr_data(data, is_beta):
|
||||
else:
|
||||
this.station_link['text'] = ''
|
||||
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.station_link.update_idletasks()
|
||||
|
||||
|
@ -14,8 +14,6 @@
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
import time
|
||||
import urllib.request, urllib.error, urllib.parse
|
||||
from queue import Queue
|
||||
from threading import Thread
|
||||
|
||||
@ -59,14 +57,26 @@ STATION_UNDOCKED: str = '×' # "Station" name to display when not docked = U+00
|
||||
|
||||
# Main window clicks
|
||||
def system_url(system_name):
|
||||
return 'https://www.edsm.net/en/system?systemName=%s' % urllib.parse.quote(system_name)
|
||||
if this.system_address:
|
||||
return requests.utils.requote_uri(f'https://www.edsm.net/en/system?systemID64={this.system_address}')
|
||||
|
||||
if system_name:
|
||||
return requests.utils.requote_uri(f'https://www.edsm.net/en/system?systemName={system_name}')
|
||||
|
||||
return ''
|
||||
|
||||
def station_url(system_name, station_name):
|
||||
if station_name:
|
||||
return 'https://www.edsm.net/en/system?systemName=%s&stationName=%s' % (urllib.parse.quote(system_name), urllib.parse.quote(station_name))
|
||||
else:
|
||||
return 'https://www.edsm.net/en/system?systemName=%s&stationName=ALL' % urllib.parse.quote(system_name)
|
||||
if system_name and station_name:
|
||||
return requests.utils.requote_uri(f'https://www.edsm.net/en/system?systemName={system_name}&stationName={station_name}')
|
||||
|
||||
# monitor state might think these are gone, but we don't yet
|
||||
if this.system and this.station:
|
||||
return requests.utils.requote_uri(f'https://www.edsm.net/en/system?systemName={this.system}&stationName={this.station}')
|
||||
|
||||
if system_name:
|
||||
return requests.utils.requote_uri(f'https://www.edsm.net/en/system?systemName={system_name}&stationName=ALL')
|
||||
|
||||
return ''
|
||||
|
||||
def plugin_start3(plugin_dir):
|
||||
# Can't be earlier since can only call PhotoImage after window is created
|
||||
@ -207,9 +217,11 @@ def credentials(cmdr):
|
||||
|
||||
|
||||
def journal_entry(cmdr, is_beta, system, station, entry, state):
|
||||
# Always update, even if we're not the *current* system or station provider.
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
# Always update our system address even if we're not currently the provider for system or station, but dont update
|
||||
# on events that contain "future" data, such as FSDTarget
|
||||
if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'):
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
|
||||
# We need pop == 0 to set the value so as to clear 'x' in systems with
|
||||
# no stations.
|
||||
@ -294,9 +306,10 @@ def cmdr_data(data, is_beta):
|
||||
this.station = this.station or data['commander']['docked'] and data['lastStarport']['name']
|
||||
# TODO: Fire off the EDSM API call to trigger the callback for the icons
|
||||
|
||||
if config.get('station_provider') == 'EDSM':
|
||||
if config.get('system_provider') == 'EDSM':
|
||||
this.system_link['text'] = this.system
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.system_link.update_idletasks()
|
||||
if config.get('station_provider') == 'EDSM':
|
||||
if data['commander']['docked']:
|
||||
@ -306,7 +319,8 @@ def cmdr_data(data, is_beta):
|
||||
else:
|
||||
this.station_link['text'] = ''
|
||||
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
|
||||
this.station_link.update_idletasks()
|
||||
|
||||
|
@ -73,15 +73,20 @@ def system_url(system_name):
|
||||
elif system_name:
|
||||
return requests.utils.requote_uri(f'https://inara.cz/galaxy-starsystem/?search={system_name}')
|
||||
|
||||
return this.system
|
||||
return ''
|
||||
|
||||
def station_url(system_name, station_name):
|
||||
if system_name and station_name:
|
||||
return requests.utils.requote_uri(f'https://inara.cz/galaxy-station/?search={system_name}%20[{station_name}]')
|
||||
|
||||
# monitor state might think these are gone, but we don't yet
|
||||
if this.system and this.station:
|
||||
return requests.utils.requote_uri(f'https://inara.cz/galaxy-station/?search={this.system}%20[{this.station}]')
|
||||
|
||||
if system_name:
|
||||
if station_name:
|
||||
return requests.utils.requote_uri(f'https://inara.cz/galaxy-station/?search={system_name}%20[{station_name}]')
|
||||
return system_url(system_name)
|
||||
|
||||
return this.station or this.system
|
||||
return ''
|
||||
|
||||
|
||||
def plugin_start3(plugin_dir):
|
||||
@ -155,12 +160,6 @@ def prefs_changed(cmdr, is_beta):
|
||||
changed = config.getint('inara_out') != this.log.get()
|
||||
config.set('inara_out', this.log.get())
|
||||
|
||||
# Override standard URL functions
|
||||
if config.get('system_provider') == 'Inara':
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
if config.get('station_provider') == 'Inara':
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
|
||||
if cmdr and not is_beta:
|
||||
this.cmdr = cmdr
|
||||
this.FID = None
|
||||
@ -232,9 +231,11 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
||||
elif entry['event'] in ['ShipyardNew', 'ShipyardSwap'] or (entry['event'] == 'Location' and entry['Docked']):
|
||||
this.suppress_docked = True
|
||||
|
||||
# Always update, even if we're not the *current* system or station provider.
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
# Always update our system address even if we're not currently the provider for system or station, but dont update
|
||||
# on events that contain "future" data, such as FSDTarget
|
||||
if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'):
|
||||
this.system_address = entry.get('SystemAddress') or this.system_address
|
||||
this.system = entry.get('StarSystem') or this.system
|
||||
|
||||
# We need pop == 0 to set the value so as to clear 'x' in systems with
|
||||
# no stations.
|
||||
@ -752,12 +753,14 @@ def journal_entry(cmdr, is_beta, system, station, entry, state):
|
||||
# Only actually change URLs if we are current provider.
|
||||
if config.get('system_provider') == 'Inara':
|
||||
this.system_link['text'] = this.system
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.system_link.update_idletasks()
|
||||
|
||||
if config.get('station_provider') == 'Inara':
|
||||
this.station_link['text'] = this.station or (this.system_population and this.system_population > 0 and STATION_UNDOCKED or '')
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.station_link.update_idletasks()
|
||||
|
||||
def cmdr_data(data, is_beta):
|
||||
@ -773,7 +776,8 @@ def cmdr_data(data, is_beta):
|
||||
# Override standard URL functions
|
||||
if config.get('system_provider') == 'Inara':
|
||||
this.system_link['text'] = this.system
|
||||
this.system_link['url'] = system_url(this.system)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.system_link.update_idletasks()
|
||||
if config.get('station_provider') == 'Inara':
|
||||
if data['commander']['docked']:
|
||||
@ -783,7 +787,8 @@ def cmdr_data(data, is_beta):
|
||||
else:
|
||||
this.station_link['text'] = ''
|
||||
|
||||
this.station_link['url'] = station_url(this.system, this.station)
|
||||
# Do *NOT* set 'url' here, as it's set to a function that will call
|
||||
# through correctly. We don't want a static string.
|
||||
this.station_link.update_idletasks()
|
||||
|
||||
if config.getint('inara_out') and not is_beta and not this.multicrew and credentials(this.cmdr):
|
||||
|
Loading…
x
Reference in New Issue
Block a user