Skip to content

Instantly share code, notes, and snippets.

@Athanasius
Last active July 26, 2023 21:32
Show Gist options
  • Save Athanasius/4de416114a9e8cbcc4a0c4a49ccbc3b6 to your computer and use it in GitHub Desktop.
Save Athanasius/4de416114a9e8cbcc4a0c4a49ccbc3b6 to your computer and use it in GitHub Desktop.
Frontier Forums - EDMC Post code
[URL='https://github.com/EDCD/EDMarketConnector/wiki']Elite Dangerous Market Connector ("EDMC")[/URL] is a third-party application for use with [URL='https://www.elitedangerous.com/']Elite Dangerous[/URL]. Its purpose is to facilitate supplying certain game data to, and in some cases retrieving it from, a number of websites and other tools.
To do this it utilises the Journal Files written by the game when played on a PC. It also makes use of Frontier's Companion API ("Frontier's CAPI"), accessible once you've authorised this application.
It does [B]not work with Console game accounts[/B], and [I]is no longer supported on Windows 7[/I].
See the link above for more information about what it can do for you.
[HR][/HR]
[SIZE=7][B]Update 14 Issues[/B][/SIZE]
I'll be documenting any issues relating to Update 14 in [URL='https://github.com/EDCD/EDMarketConnector/issues/1726']this github issue[/URL].
[HR][/HR]
[SIZE=7]Problems Updating from 3.4.3.0/3.43[/SIZE]
There was an issue with the old 3.4.3.0/3.43 (and earlier) versions when checking for an update. This turned out to be due to the size of the 'appcast' file for this having grown with all the more recent changelog entries. To solve this I culled all the changelog entries in that file from before 4.1.6. I'll try to keep an eye on this in the future, but if you're still on such an old version and have issues with the program crashing when seeming to offer an update please upgrade manually from the [URL='https://github.com/EDCD/EDMarketConnector/releases/latest']latest release[/URL].
[HR][/HR]
[LIST]
[*]We now test against, and package with, Python 3.10.2.
[B]As a consequence of this we no longer support Windows 7.
This is due to [URL='https://www.python.org/downloads/windows/']Python 3.10.x itself not supporting Windows 7[/URL].
The application (both EDMarketConnector.exe and EDMC.exe) will crash on startup due to a missing DLL.[/B]
This should have no other impact on users or plugin developers, other than the latter now being free to use features that were introduced since the Python 3.7 series.
Developers can check the contents of the .python-version file in the source (it's not distributed with the Windows installer) for the currently used version in a given branch.
[*]As [URL='https://learn.microsoft.com/en-us/lifecycle/faq/windows#windows-8-1']Windows 8.1 is now End-Of-Life[/URL] we no longer explicitly support it, but for the time being it will likely continue to work. This is dependent on future Python releases not dropping support for Windows 8.1 in a manner that prevents it working. Any bug report made against Windows 8.1 use may be ignored unless reproduced on a supported OS.
[/LIST]
[HR][/HR]
[HEADING=2][B][SIZE=6]NB: THERE WAS A SLIGHT BUILD ERROR IN 5.8.0-rc3 WHICH MEANS ITS UPDATE CHECKS ARE NON-FUNCTIONAL. IF YOU INSTALLED THAT VERSION THEN PLEASE MANUALLY DOWNLOAD AND INSTALL THIS ONE TO ENSURE YOU HAVE WORKING UPDATE CHECKS.[/SIZE][/B][/HEADING]
[HEADING=2][URL='https://github.com/EDCD/EDMarketConnector/releases/tag/Release%2F5.8.0'][SIZE=7]Release 5.8.0[/SIZE][/URL][/HEADING]
[URL='https://www.virustotal.com/gui/file/c97e8222e5eb27b20c336663bd6626026eee9a9898b7a4cfec241b532ffc0c41?nocache=1']Pre-emptive upload to VirusTotal[/URL].
This release is essentially the same as 5.8.0-rc3 with only the version and this changelog updated.
It brings a new feature related to Fleetcarrier data, some convenience for Linux users, some fixes, and otherwise some internal changes that should not adversely affect either users or third-party plugins. For the latter, read below for some new/changed things that could benefit you.
[LIST]
[*]This release, and all future ones, now create two additional archive files in the GitHub release:
[LIST=1]
[*]EDMarketConnector-release-<version>.zip
[*]EDMarketConnector-release-<version>.tar.gz
[/LIST]
The advantage of these over the GitHub auto-generated ones is that they have been hand-crafted to contain [I]all[/I] the necessary files, and [I]only[/I] those files.
[B]If you use the application from source, and not via a git clone, then we highly recommend you use one of these archives, not the GitHub auto-generated ones.[/B]
Anyone installing on Windows should continue to use the EDMarketConnector_win_<version>.msi files as before.
[*][B]New Feature[/B] - You can now have the application query the /fleetcarrier CAPI endpoint for data about your Fleet Carrier. The data will then be passed to interested plugins.
Note that there are some caveats:
[LIST=1]
[*]This feature defaults to [I]Off[/I]. The option is on the Configuration tab of Settings as "Enable Fleetcarrier CAPI Queries". [B]It is advised to only enable this if you know you utilise plugins that make use of the data.[/B]
[*]These queries are [I]only[/I] triggered by CarrierBuy and CarrierStats Journal events, i.e. upon buying a Fleetcarrier or opening the Carrier Management UI in-game. [B]NB: There is a 15 minute cooldown between queries.[/B]
[*]If you have Fleetcarrier cargo which got into the cargo hold through a lot of individual transactions, or if you have a lot of separate buy/sell orders then these queries can take a [I]long[/I] time to complete.
[B]If this happens with your game account then all other CAPI queries will be blocked until the /fleetcarrier query completes.[/B] 'Other CAPI queries' means those usually triggered upon docking to gather station market, shipyard and outfitting data. To ameliorate the effects of this there is currently a timeout of 60 seconds on /fleetcarrier queries, [B]and will not occur more often than every 15 minutes[/B].
We plan to address this by moving the /fleetcarrier queries into their own separate thread in the future.
[/LIST]
[*]The code for choosing the 'Output' folder is now simply the tkinter function for such a dialogue, rather than a special case on Windows. In the past the former had issues with Unicode characters, but in testing no such issue was observed (on a supported OS).
[*]There are two new items on the "Help" menu:
[LIST=1]
[*]Troubleshooting -> [URL='https://github.com/EDCD/EDMarketConnector/wiki/Troubleshooting']Wiki:Troubleshooting[/URL]
[*]Report A Bug -> [URL='https://github.com/EDCD/EDMarketConnector/issues/new?assignees=&labels=bug%2C+unconfirmed&template=bug_report.md&title=']Issues - New Bug Report[/URL]
[/LIST]
[*]Translations have been updated. Thanks again to our volunteer translators!
[*]If we ever activate any functionality killswitches, the popup denoting which are active has been made more readable.
[*]There's a new section in Contributing.md - "Python Environment". This should aid any new developers in getting things set up.
[/LIST]
[HEADING=2]Linux Users[/HEADING]
We now ship an io.edcd.EDMarketConnector.desktop file. To make use of this you should run scripts/linux-setup.sh [I]once[/I]. This will:
[LIST=1]
[*]Check that you have $HOME/bin in your PATH. If not, it will abort.
[*]Create a shell script edmarketconnector in $HOME/bin to launch the application.
NB: This relies on the filesystem location you placed the source in not changing. So if you move the source you will need to re-run the script.
[*]Copy the .desktop and .icon files into appropriate locations. The .desktop file utilises the shell script created in step 2, and thus relies on it existing [I]and[/I] on it being in a directory that is in your PATH.
[/LIST]
Once this has been completed any XDG-compliant desktops should have an entry for "E Market Connector" in their "Games" menu.
[HEADING=2]Fixes[/HEADING]
[LIST]
[*]The tracking of a Cmdr's location that was being performed by the core EDDN plugin has been moved into the Journal monitoring code. This results in the tracking being correct upon application (re)start, reflecting the state from the latest Journal file, rather than only picking up with any subsequent new Journal events.
This change should remove instances of "Wrong System! Missed Jump ?" and similar sanity-check "errors" when continuing to play after a user restarts the application whilst the game is running.
Plugin developers, see below for how this change can positively affect you.
[*]The name of the files written by "File" > "Save Raw Data" now have a . between the system and station names.
[*]Use of CAPI data in EDMC.exe when invoked with either -s or -n arguments hadn't been updated for prior changes, causing such invocations to fail. This has been fixed.
[/LIST]
[HEADING=2]Plugin Developers[/HEADING]
[LIST]
[*]Each plugin is now handed its own sub-frame as the parent parameter passed to plugin_app() [I]instead of the actual main UI frame[/I]. These new Frames are placed in the position that plugin UI would have gone into. This should have no side effects on well-behaved plugins.
However, if you have code that attempts to do things like parent.children() or the like in your plugin_app() implementation, this might have stopped working. You shouldn't be trying to do anything with any of the UI outside your plugin [I]anyway[/I], but if you definitely have a need then look things up using .nametowidget(). There are examples in the core plugins (which [I]DO[/I] have good reason, due to maintaining main UI label values).
All of the plugins listed on our Wiki were given [I]perfunctory[/I] testing and no issues from this change were observed.
This is a necessary first step to some pending plugin/UI work:
[LIST]
[*][URL='https://github.com/EDCD/EDMarketConnector/issues/1792']UI: Alllow for re-ordering third-party plugins' UIs[/URL]
[*][URL='https://github.com/EDCD/EDMarketConnector/issues/1813']UI: Allow configuration of number of UI columns.[/URL]
[*][URL='https://github.com/EDCD/EDMarketConnector/issues/1814']Re-work how Plugins' Settings are accessed[/URL]
[/LIST]
[*][B]New[/B] - capi_fleetcarrier() function to receive the data from a CAPI /fleetcarrier query. See PLUGINS.md for details.
[*]It was found that the ShutDown event (note the capitalisation, this is distinct from the actual Journal Shutdown event) synthesized for plugins when it is detected that the game has exited was never actually being delivered. Instead this was erroneously replaced with a synthesized StartUp event. This has been fixed.
[*]As the location tracking has been moved out of the core EDDN plugin, and into monitor.py all of it is now available as members of the state dictionary which is passed to journal_entry().
This both means that no plugin should need to perform such location state tracking itself [I]and[/I] they can take advantage of it being fully up to date when a user restarts the application with the game running.
A reminder: When performing 'catch up' on the newest Journal file found at startup, the application does [B]not[/B] pass any events to the journal_entry() method in plugins. This is to avoid spamming with data/state that has possibly already been handled, and in the case of the Cmdr moving around will end up not being relevant by the time the end of the file is reached. This limitation was also why the core EDDN plugin couldn't properly initiate its location tracking state in this scenario.
See PLUGINS.md for details of the new state members. Pay particular attention to the footnote that details the caveats around Body tracking.
Careful testing has been done for [I]only[/I]the following. So, if you make use of any of the other new state values and spot a bug, please report it:
[LIST=1]
[*]SystemName
[*]SystemAddress
[*]Body (Name)
[*]BodyID
[*]BodyType
[*]StationName
[*]StationType
[*](Station) MarketID
[/LIST]
[*]There is an additional property request_cmdr on CAPIData objects, which records the name of the Cmdr the request was made for.
[*]FDevIDs files are their latest versions at time of this version's build.
[*]examples\plugintest - dropped the "pre-5.0.0 config" code, as it's long since irrelevant.
[/LIST]
[HEADING=2]Developers[/HEADING]
[LIST]
[*]If you utilise a git clone of the source code, you should also ensure the sub-modules are initialised and synchronised. [URL='https://github.com/EDCD/EDMarketConnector/wiki/Running-from-source#obtain-a-copy-of-the-application-source']wiki:Running from source[/URL] has been updated to include the necessary commands.
[*]The coriolis-data git sub-module now uses an HTTPS, not "git" URL, so won't require authentication for a simple git pull.
[*]If you have a dump directory in CWD when running EDMarketConnector.py under a debugger you will get files in that location when CAPI queries complete. This will now include files with names of the form FleetCarrier.<callsign>.<timstamp>.json for /fleetcarrier data.
[*]All the main UI tk widgets are now properly named. This might make things easier if debugging UI widgets as you'll no longer see a bunch of !label1, !frame1 and the like.
Each plugin's separator is named as per the scheme plugin_hr_<X>, and when a plugin has UI its new container Frame is named plugin_X. Both of these start with 1, not 0.
[/LIST]
[HR][/HR]
[HEADING=2][SIZE=5]Release 5.7.0[/SIZE][/HEADING]
[URL='https://www.virustotal.com/gui/file/f8219efd8f5a9724c65ba586b567b2a762693393349dcfd73f16f361413f28da']Pre-emptive upload to VirusTotal[/URL].
This release re-enables CAPI queries for Legacy players. As a result, the 'Update' button functionality is now restored for Legacy players, along with "Automatically update on docking" functionality.
[LIST]
[*]We now test against, and package with, Python 3.11.1, 32-bit.
[*]This release is functionally identical to 5.7.0-rc1, as no problems were reported with that.
[*]As noted above, Legacy players now have CAPI functionality once more. Plugin developers check below for how you can determine the source galaxy of such data.
[*]Due to a bug it turned out that a workaround for "old browsers don't support very long URLs" had been inactive since late 2019. As no-one has noticed or complained we've now removed the defunct code in favour of the simple [ICODE]webbrowser.open(<url>)[/ICODE].
Testing showed that all of Firefox, Chrome and Chrome-based Edge worked with very long URLs without issues.
[*][ICODE]EDMC.exe -n[/ICODE] had been broken for a while, it now functions once more.
[*]Some output related to detecting and parsing [ICODE]gameversion[/ICODE] from Journals has been moved from INFO to DEBUG. This returns the output of any [ICODE]EDMC.exe[/ICODE] command to the former, quieter, version.
[/LIST]
[HEADING=2]Bugs[/HEADING]
[LIST]
[*]A corner case of "game not running" and "user presses 'Update' button" would result in an empty [ICODE]uploaderID[/ICODE] string being sent to EDDN. Such messages are still accepted by the EDDN Gateway, and the Relay then obfuscates this field anyway. So, at worse, this would make it look like the same uploader was in lots of different places. This has been fixed.
[*]The message about converting legacy [ICODE]replay.jsonl[/ICODE] was being emitted even when there was no file to convert. This has been fixed.
[/LIST]
[HEADING=2]Plugin Developers[/HEADING]
[LIST]
[*]An erroneous statement about "all of Python stdlib" in PLUGINS.md has been corrected. We don't/can't easily include all of this. Ask if any part of it you require is missing.
[*]In order to not pass Legacy data to plugins without them being aware of it there is now a new function [ICODE]cmdr_data_legacy()[/ICODE], which mirrors the functionality of [ICODE]cmdr_data()[/ICODE], but for Legacy data only. See PLUGINS.md for more details.
[*]The [ICODE]data[/ICODE] passed to [ICODE]cmdr_data()[/ICODE] and [ICODE]cmdr_data_legacy()[/ICODE] is now correctly typed as [ICODE]CAPIData[/ICODE]. This is a sub-class of [ICODE]UserDict[/ICODE], so you can continue to use it as such. However, it also has one extra property, [ICODE]source_host[/ICODE], which can be used to determine if the data was from the Live or Legacy CAPI endpoint host. See PLUGINS.md for more details.
[*]If any plugin had been attempting to make use of [ICODE]config.get_int('theme')[/ICODE], then be aware that we've finally moved from hard-coded values to actual defined constants. Example use would be as in:
[CODE]from config import config
from theme import theme
active_theme = config.get_int('theme')
if active_theme == theme.THEME_DARK:
...
elif active_theme == theme.THEME_TRANSPARENT:
...
elif active_theme == theme.THEME_DEFAULT:
...
else:
...[/CODE]
But remember that all tkinter widgets in plugins will inherit the main UI current theme colours anyway.
[*]The contents of [ICODE]NavRoute.json[/ICODE] will now be loaded during 'catch-up' when EDMarketConnector is (re-)started. The synthetic [ICODE]StartUp[/ICODE] (note the capitalisation) event that is emitted after the catch-up ends will have [ICODE]state['NavRoute'][/ICODE] containing this data.
However, the [ICODE]Fileheader[/ICODE] event from detecting a subsequent new Journal file [I]will[/I] blank this data again. Thus, if you're interested in "last plotted route" on startup you should react to the [ICODE]StartUp[/ICODE] event. Also, note that the contents [I]will[/I] indicate a [ICODE]NavRouteClear[/ICODE] if that was the last such event.
PLUGINS.md has been updated to reflect this.
[*]If you've ever been in the habit of running our [ICODE]develop[/ICODE] branch, please don't. Whilst we try to ensure that any code merged into this branch doesn't contain bugs, it hasn't at that point undergone more thorough testing. Please use the [ICODE]stable[/ICODE] branch unless otherwise directed.
[*]Some small updates have been made in [ICODE]edmc_data[/ICODE] as a part of reviewing the latest update to [ICODE]coriolis-data[/ICODE].
We make no guarantee about keeping these parts of [ICODE]edmc_data[/ICODE] up to date.
Any plugins attempting to use that data should look at alternatives, such as [URL='https://github.com/EDCD/FDevIDs/blob/master/outfitting.csv']FDevIDs/outfitting.csv[/URL].
A future update might remove those maps, or at least fully deprecate their use by plugins. Please contact us [B]now[/B] if you actually make use of this data.
[/LIST]
[HR][/HR]
[HEADING=2][SIZE=5]Release 5.6.1[/SIZE][/HEADING]
[URL='https://www.virustotal.com/gui/file/211f7634738a6608cb220b04512874ccc72a80381f550a4dc4e3dda597e45013?nocache=1']Pre-emptive upload to VirusTotal[/URL].
This release addresses some minor bugs and annoyances with v5.6.0, especially for Legacy galaxy players.
In general, at this early stage of the galaxy split, we prefer to continue to warn Legacy users who have 'send data' options active for sites that only accept Live data. In the future this might be reviewed and such warnings removed such that the functionality [I]fails silently[/I]. This might be of use to users who actively play in both galaxies.
[LIST]
[*]CAPI queries will now [B]only be attempted for Live galaxy players[/B] This is a stop-gap whilst the functionality is implemented for Legacy galaxy players. Doing so prevents using Live galaxy data whilst playing Legacy galaxy, which would be increasingly wrong and misleading.
[LIST=1]
[*]'Automatic update on docking' will do nothing for Legacy players.
[*]Pressing the 'Update' button whilst playing Legacy will result in a status line message "CAPI for Legacy not yet supported", and otherwise achieve nothing. [B]The only function of this button is to query CAPI data and pass it to plugins, which does [I]not[/I] include Inara and EDSM[/B].
[*]A Legacy player trying to use "File" > "Status" will get the message "Status: No CAPI data yet" due to depending on CAPI data.
[*]It is hoped to implement CAPI data retrieval and use for Legacy players soon, although this will likely entail extending the plugins API to include a new function specifically for this. Thus only updated plugins would support this.
[/LIST]
[*]EDDN: Where data has been sourced from the CAPI this application now sends a header->gameversion in the format "[ICODE]CAPI-(Live|Legacy)-<endpoint>[/ICODE]" as per [URL='https://github.com/EDCD/EDDN/blob/live/docs/Developers.md#gameversions-and-gamebuild']the updated documentation[/URL].
[LIST=1]
[*]As [I]this[/I] version only queries CAPI for Live players that will only be "[ICODE]CAPI-Live-<endpoint>[/ICODE]" for the time being.
[*]If, somehow, the CAPI host queried matches neither the current Live host, the Legacy host, nor the past beta host, you will see "[ICODE]CAPI-UNKNOWN-<endpoint>[/ICODE]".
[*]As that statement implies, this application will also signal 'Live' if [ICODE]pts-companion.orerve.net[/ICODE] has been used, due to detecting an alpha or beta version of the game. However, in that case the [ICODE]/test[/ICODE] schemas will be used.
[*]Closes [URL='https://github.com/EDCD/EDMarketConnector/issues/1734']#1734[/URL].
[/LIST]
[*]Inara: Only warn about Legacy data if sending is enabled in Settings > Inara.
Closes [URL='https://github.com/EDCD/EDMarketConnector/issues/1730']#1730[/URL].
[*]Inara: Handling of some events has had a sanity check added so that the Inara API doesn't complain about empty strings being sent. In these cases the event will simply not be sent.
Closes [URL='https://github.com/EDCD/EDMarketConnector/issues/1732']#1732[/URL].
[*]EDSM: EDSM has decided to accept only Live data on its API. Thus, this application will only attempt to send data for Live galaxy players.
If a Legacy galaxy player has the Settings > EDSM > "Send flight log and Cmdr status to EDSM" option active then they will receive an error about this at most once every 5 minutes. Disabling that option will prevent the warning.
[/LIST]
[HEADING=2]Plugin Developers[/HEADING]
[LIST]
[*]PLUGINS.md has been updated to make it clear that the only use of imports from the [ICODE]config[/ICODE] module are for setting/getting/removing a plugin's own configuration, or detecting application shutdown in progress.
[*]PLUGINS.md has also been updated to add a note about how the [ICODE]data[/ICODE] passed to a plugin [ICODE]cmdr_data()[/ICODE] is, strictly speaking, an instance of [ICODE]CAPIData[/ICODE], which is an extension of [ICODE]UserDict[/ICODE]. It has some extra properties on it, [B]but these are for internal use only and no plugin should rely on them[/B].
[*]As noted above, implementing CAPI data for Legacy players will likely entail an additional function in the API provided to plugins. See [URL='https://github.com/EDCD/EDMarketConnector/issues/1728']#1728[/URL] for discussion about this.
[/LIST]
[HR][/HR]
[HEADING=2][SIZE=5]Release 5.6.0[/SIZE][/HEADING]
Tha major reason for this release is to address the Live versus Legacy galaxy split [URL='https://www.elitedangerous.com/news/elite-dangerous-update-14-and-beyond-live-and-legacy-modes']coming in Update 14 of the game[/URL].
See the section "Update 14 and the Galaxy Split" below for how this might impact you.
[HEADING=2]Changes[/HEADING]
[LIST]
[*]We now test against, and package with, Python 3.10.8.
[*]The code for sending data to EDDN has been reworked. This changes the 'replay log' from utilising an internal array, backed by a flat file (replay.jsonl), to an sqlite3 database.
As a result:
[LIST=1]
[*]Any messages stored in the old [ICODE]replay.jsonl[/ICODE] are converted at startup, if that file is present, and then the file removed.
[*]All new messages are stored in this new sqlite3 queue before any attempt is made to send them. An immediate attempt is then made to send any message not affected by "Delay sending until docked".
[*]Sending of queued messages will be attempted every 5 minutes, unless "Delay sending until docked" is active and the Cmdr is not docked in their own ship. This is in case a message failed to send due to an issue communicating with the EDDN Gateway.
[*]When you dock in your own ship an immediate attempt to send all queued messages will be initiated.
[*]When processing queued messages the same 0.4-second inter-message delay as with the old code has been implemented. This serves to not suddenly flood the EDDN Gateway. If any message fails to send for Gateway reasons, i.e. not a bad message, then this processing is abandoned to wait for the next invocation.
[*]The 5-minute timer in point 3 differs from the old code, where almost any new message sending attempt could initiate processing of the queue. At application startup this delay is only 10 seconds.
[/LIST]
Currently, the feedback of "Sending data to EDDN..." in the UI status line has been removed.
[B]If you do not have "Delay sending until docked" active, then the only messages that will be at all delayed will be where there was a communication problem with the EDDN Gateway, or it otherwise indicated a problem other than 'your message is bad'.[/B]
[*]As a result of this EDDN rework this application now sends appropriate [ICODE]gameversion[/ICODE] and [ICODE]gamebuild[/ICODE] strings in EDDN message headers.
The rework was necessary in order to enable this, in case of any queued or delayed messages which did not contain this information in the legacy [ICODE]replay.jsonl[/ICODE] format.
[*]For EDSM there is a very unlikely set of circumstances that could, in theory lead to some events not being sent. This is so as to safeguard against sending a batch with a gameversion/build claimed that does not match for [I]all[/I] of the events in that batch.
It would take a combination of "communications with EDSM are slow", more events (the ones that would be lost), a game client crash, [I]and[/I] starting a new game client before the 'more events' are sent.
[/LIST]
[HEADING=2]Update 14 and the Galaxy Split[/HEADING]
Due to the galaxy split [URL='https://www.elitedangerous.com/news/elite-dangerous-update-14-and-beyond-live-and-legacy-modes']announced by Frontier[/URL] there are some changes to the major third-party websites and tools.
[LIST]
[*]Inara [URL='https://inara.cz/elite/board-thread/7049/463292/#463292']has chosen[/URL] to only accept Live galaxy data on its API.
This application will not even process Journal data for Inara after 2022-11-29T09:00:00+00:00 [I]unless the [ICODE]gameversion[/ICODE] indicates a Live client[/I]. This explicitly checks that the game's version is semantically equal to or greater than '4.0.0'.
If a Live client is [I]not[/I] detected, then there is an INFO level logging message "Inara only accepts Live galaxy data", which is also set as the main UI status line. This message will repeat, at most, every 5 minutes.
If you continue to play in the Legacy galaxy only then you probably want to just disable the Inara plugin with the checkbox on Settings > Inara. * All batches of events sent to EDSM will be tagged with a [ICODE]gameversion[/ICODE], in a similar manner to the EDDN header.
Ref: [URL='https://www.edsm.net/en/api-journal-v1']EDSM api-journal-v1[/URL]
[*]All EDDN messages will now have appropriate [ICODE]gameversion[/ICODE] and [ICODE]gamebuild[/ICODE] fields in the header as per [URL='https://github.com/EDCD/EDDN/blob/live/docs/Developers.md#gameversions-and-gamebuild']EDDN/docs/Developers.md[/URL].
As a result of this you can expect third-party sites to choose to filter data based on that.
Look for announcements by individual sites/tools as to what they have chosen to do.
[/LIST]
[HEADING=2]Known Bugs[/HEADING]
In testing if it had been broken at all due to 5.5.0 -> 5.6.0 changes it has come to light that [ICODE]EDMC.EXE -n[/ICODE], to send data to EDDN, was already broken in 5.5.0.
In addition, there is now some extra 'INFO' logging output which will be produced by any invocation of [ICODE]EDMC.EXE[/ICODE]. This might break third-party use of it, e.g. [URL='https://forums.frontier.co.uk/threads/trade-computer-extension-mk-ii.223056/']Trade Computer Extension Mk.II[/URL].
This will be fixed as soon as the dust settles from Update 14, with emphasis being on ensuring the GUI [ICODE]EDMarketConnector.exe[/ICODE] functions properly.
[HEADING=2]Notes for EDDN Listeners[/HEADING]
[LIST]
[*]Where EDMC sourced data from the Journal files it will set [ICODE]gameversion[/ICODE] and [ICODE]gamebuild[/ICODE] as per their values in [ICODE]Fileheader[/ICODE] or [ICODE]LoadGame[/ICODE], whichever was more recent (there are some events that occur between these).
[*][I]If any message was already delayed such that it did not have the EDDN header recorded, then the [ICODE]gameversion[/ICODE] and [ICODE]gamebuild[/ICODE] will be empty strings[/I]. In order to indicate this the softwareName will have [ICODE] (legacy replay)[/ICODE] appended to it, e.g. [ICODE]E:D Market Connector Connector [Windows] (legacy replay)[/ICODE]. In general this indicates that the message was queued up using a version of EDMC prior to this one. If you're only interested in Live galaxy data then you might want to ignore such messages.
[*]Where EDMC sourced data from a CAPI endpoint, the resulting EDDN message will have a [ICODE]gameversion[/ICODE] of [ICODE]CAPI-<endpoint>[/ICODE] set, e.g. [ICODE]CAPI-market[/ICODE]. [B]At this time it is not 100% certain which galaxy this data will be for, so all listeners are advised to ignore/queue such data until this is clarified[/B].
[ICODE]gamebuild[/ICODE] will be an empty string for all CAPI-sourced data.
[/LIST]
[HEADING=2]Plugin Developers[/HEADING]
[LIST]
[*]There is a new flag in [ICODE]state[/ICODE] passed to plugins, [ICODE]IsDocked[/ICODE]. See PLUGINS.md for details.
[/LIST]
[HEADING=2]VirusTotal[/HEADING]
Pre-emptive upload to VirusTotal for [URL='https://www.virustotal.com/gui/file/1807b701218cae8c9193b99475fcfcab037e0652c8d74ccde3fb30c6837f55f4?nocache=1']EDMarketConnector_win.5.6.0.msi[/URL].
[HR][/HR]
[HEADING=2][SIZE=5]Release 5.5.0[/SIZE][/HEADING]
Download and run the EDMarketConnector_win_5.5.0.msi linked on that page, below the changelog, to install.
[LIST]
[*][URL='https://www.virustotal.com/gui/file-analysis/MjgxMzlmNjBmOTRmODRjZDM1OWQwMWU3OTAzMGIwMzY6MTY2NDE4NTgyMQ==/detection']Virus Total scan results[/URL] for this release.
[*]We now test against, and package with, Python 3.10.7.
[*]EDDN: Support added for the FCMaterials schemas to aid third-party sites in offering searches for where to buy and sell Odyssey Micro Resources, including on Fleet Carriers with the bar tender facility.
[/LIST]
[HEADING=2]Bug Fixes[/HEADING]
[LIST]
[*]EDDN: Abort fsssignaldiscovered sending of message if no signals passed the checks.
[*]EDDN: Add Horizons check for location on fsssignaldiscovered messages.
[*]Don't alert the user if the first attempted load of NavRoute.json contains no route.
[*]Inara: Don't set marketID for ApproachSettlement unless it's actually present in the event.
[/LIST]
[HEADING=2]Plugin Developers[/HEADING]
[LIST]
[*]We now build using the new, setuptools mediated py2exe freeze() method, so we're in the clear for when distutils is removed in Python 3.12.
This shouldn't have any adverse effects on plugins, i.e. all of the same Python modules are still packaged as before.
[*]Support has been added for the NavRouteClear event. We [I]do[/I] send this through to plugins, so that they know the player has cleared the route, [B]but we keep the previously plotted route details in state['NavRoute'].[/B]
[*]The documentation of the return type of journal_entry() has been corrected to Optional[str].
[*]FDevIDs files (commodity.csv rare_commodity.csv) updated to latest versions.
[/LIST]
[HEADING=2]Developers[/HEADING]
[LIST]
[*]We now build using the new, setuptools mediated py2exe freeze() method, so we're in the clear for when distutils is removed in Python 3.12.
[*]The old setup.py file, along with associated py2exe.cmd have been removed in favour of the new Build-exe-and-msi.py file. Documentation updated.
[/LIST]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment