* When I changed 'company_name' in setup.py to 'EDCD' this caused WinSparkle to
store, and look for, its keys there.
* There's code in config.py that attempts to set some WinSparkle options, only
if they weren't already there. This is hardcoded to use the old 'Marginal'
Registry Key.
So, explicitly do this WinSparkle setup under 'EDCD', and *always* set the
update_interval value to match what we expect. Leave the 'CheckForUpdates'
under the 'is it already here?' check so that we respect the user's choice.
The added exception at least means we don't then segmentation fault in
the next line, but it also means we then hit another exception later
in the main loop as we try to create the main Tk window.
Hopefully the exception messages will be clear enough to the user.
closes#500
A user accidentally copied a Journal file into the same directory, resulting in
a "Journal.<datetime>.<serial> - Copy.log" file. EDMC 3.99.0.0 then picked this
up and re-sent events to EDDN, EDSM, Inara.
So, let's be strict about the filenames we consider to be valid, live, Journal
files.
* Journal files have one basic form: Journal.YYMMDDHHMMSS.XX.log
* In addition the word 'Beta' can be inserted just after 'Journal'
So regex '^Journal(Beta)?\.[0-9]{12}\.[0-9]{2}\.log$' matches both and nothing
else.
Test: The "copy to same directory" that originally triggered this. EDMC no
longer 'sees' the copy.
Test: Copied a Journal file out, renamed it to later date/time, copied that
back in. EDMC saw it correctly as a new file.
NB: Didn't test the "no emitter" version at monitor.py:251, but no reason to
think it won't also work.
closes#546
* You need to add a 'Directory' entry for the new file *and* then list it in 'Features'.
* Translations.md updated with the necessary steps.
closes#547
* One more plugin_start() -> plugin_start3()
* Startup and Shutdown events linkified in sections.
* Note the use of the return from plugin_start3()
* Point out the cmdr_data() `data` dictionary is from CAPI `/profile`
'product_name' is used by WinSparkle to determine the Registry path it uses. APP is
'EDMarketConnector.py' not the 'EDMarketConnector' that APPNAME is. This having changed
causes a new popup from WinSparkle on first run of post-3.46 asking about whether to enable
auto update checks.
3.99.0.0 testers will gave to put up with it on first run.
* This means storing this.system_address from both cmdr_data and journal_entry. NB: If the current value in the event or data is 'None' it will retain the previous value. Without this Journal entries without SystemAddress erase the stored value.
* The station_url() fallback to system_url() similarly uses this.system_address in the call.
Addresses #512
There is one tiny regression for a very, very corner case.
In 3.46 if you use EDDB as the 'Station' provider and:
1. Dock at Station A, in System X
2. Jump out to System Y, which is also populated
3. Exit out of the game
4. (Re-)Start EDMC
5. Hit 'Update' to manually trigger CAPI data retrieval
you will see a "×" character as the Station Name, and can click on it to
take you to the EDDB *System* page. It is only there because of EDMC
using systems.p to check if System Y is populated.
With this version in that circumstance there's no way to know that
System Y is populated, so the code assumes not and doesn't show the
"×", and thus there's nothing to click to go to the EDDB *System* page
for System Y.
But so long as the user is actually running the game and EDMC together
then populated status is detected from Journal events and the "×" will
be there whenever you're undocked but in a populated system.
Caveat: We know Frontier have allowed some systems that are
technically populated, but show a Population of zero. This code assumes
that means they're *not* populated.
EDDB station link now triggers off this.system_population, which is
received via monitor passing 'Population' through in Startup, Location,
FSDJump and CarrierJump events.
One fewer use cases for systems.p (populated status in this case).
This shouldn't actually be necessary, the marketid shouln't change
because of a jump, and would have been picked up from the other events
anyway, but it should do no harm to set it again from this.
* Adds monitor.station_marketid, tracked at the same points as
monitor.station (name).
* Changes EDDB plugin to also track its own this.station_marketid so
that it can be used in /market-id/ EDDB URL.
This removes a use case for stations.p file.