* If you request docking successfully then show the station namd and
have the link work.
* This is then only undone if you:
1) Dock and undock
2) Supercruise away
3) Jump away
It is *not* undone if you simply cancel the docking request.
Tested only with same provider for system and station for each of the
three, not the other 6 combinations.
* Make all plugins use `requests.utils.requote_uri()`
* Make all plugins use roughly the same logic, without if/else trees
(as the bodies do a `return ...`), ending with `return ''` if input
parameters are None.
This throws away the inara fallback to `this.station or this.system` as
it's unlikely the in-plugin tracking did a better job than the
monitor.py code.
By default the ttkHyperlinkLabels for 'system' and 'station' names have
their 'url' members set to the functions in EDMarketConnector.App.
The EDDB one used to override the function as it had to do that special
name -> EDDB ID lookup from systems.p. When I changed the code to not
need that any more I didn't fully understand what these overrides were.
After updating the EDDB code I then made sure the same logic was also in
the other plugins which meant they *also* set static strings, overriding
the call to the EDMarketConnector.App functions (which chain through to
the current plugin providers).
Unfortunately I didn't quite update the EDSM code enough causing
journal_entry() code to *not* set a new system 'url' despite changing
the 'text'. This meant that only CAPI updates (so docking and login)
caused the URL to change, despite updating the 'text' to the correct
system name.
Rather than have everything setting static strings just do away with the
overrides as they're not needed!
I had to pull a diff out of the old branch, apply it, and reverse things
like the addition of logging. This needs to be the minimum change for
the fix.
Tested with a quick login, then spamming market buy/sell orders. They
were correctly queued and then sent after 30s since previous API calls.
This remove all dependencies on the keyring lib, updates the
requirements.txt to reflect that, and ensures that setup.py does not
attempt to package it.
Any use of the "old" keyring code will now return None and warn about
its deprecation.
This works by creating a temp file at config.app_dir and storing the
link in there, followed by directing the local browser to open the file.
HTML meta tags are then used to direct the browser to refresh to a URL
of our choosing (which is HTML escaped, just in case someone tries
something clever)
This should work everywhere, and on any browser (as the file:// format
is defined at https://tools.ietf.org/html/rfc1738 which was posted in
1994).
The URI used (`file://localhost/path`) ensures that we only ever
ask for a localhost file at our path.
The HTML format should be completely compliant with all major browsers
as well, ensuring that behaviour is consistent (assuming they support
HTML meta tags)
Doing so causes the ShipType to not be used in the UI, so you get a
'link' with just a space for the text.
Any user who purposefully sets their ship's name to a single space
can live with seeing the model name instead. Yes, I checked, the game
allows it.
* Use same state logic as Inara plugin now has.
* this.system_link for the Tk item, this.system is the system name.
* Ensure station text+link set on prefs change.
# Add a set of future TODO items.
* Use same state logic as Inara plugin now has.
* this.system_link for the Tk item, this.system is the system name.
* List some tests to pass (and later to be implemented as unittests).
* Be paranoid about URIs, quote them.
* Ensure station text+link set on prefs change.
* Track all of: this.system_address, this.system_population,
this.system_marketid
* Use this.system_address if set (only from journal) for no-dupes Inara
system URL.
* Added the "'x' if undocked and show system info" functionality from
EDDB plugin.
* This version will set target station name/link if you request docking
with it, whether that succeeds or not. Cleared not only on Undock, but
also FSDJump and SupercruiseEntry (in case you never actually docked).
* No longer bothering setting system and station URLs from Inara API
response as we have working ones anyway. So even those without Inara
API Key set get the functionality now.
* Artie added a 'by-systemaddress' system lookup, use it.
* This means we probably no longer need to update URLs in the
inara_notify_location() function.
* Add/correct links to Releasing.md.
* Pre-releases must have tags of the correct form now.
* Misc formatting changes, mostly adding a <hr/> between sections.