Release Elite Dangerous Market Connector (EDMC)

Elite Dangerous Market Connector ("EDMC") is a third-party application for use with Elite Dangerous. 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 not work with Console game accounts, and is no longer supported on Windows 7.

See the link above for more information about what it can do for you.

------------------------------------------------------------------------------------------------------
Problems Updating from 3.4.3.0/3.43

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 latest release.
---------------------------------------------------------

Release 5.1.1

The big change in this is adjustments to be in line with Journal changes in Elite Dangerous Odyssey 4.0.0.400, released 2021-06-10, with respect to the Odyssey materials Inventory.

This update is mandatory if you want EDMarketConnector to update Inara.cz with your Odyssey inventory.
  • ShipLockerMaterials is dead, long live ShipLocker. Along with other changes to how backpack inventory is handled we should now actually be able to fully track all Odyssey on-foot materials and consumables without errors.
  • Inara plugin adjusted to send the new ShipLocker inventory to Inara.cz. This is still only your ship inventory of Odyssey materials, not anything currently in your backpack whilst on foot.
    See this issue for some quotes from Artie (Inara.cz developer) about not including backpack contents in the Inara inventory.
  • Errors related to sending data to EDDN are now more specific to aid in diagnoising issues.
  • Quietened some log output if we encounter connection errors trying to utilise the Frontier CAPI service.

Translations​

We believe that nothing should be worse in this version compared to 5.1.1, although a small tweak or two might have leaked through.

We'll be fully addressing translations in a near-future release after we've conclude the necessary code level work for the new system. Nothing should change for those of you helping on OneSky, other than at most the 'comments' on each translation. They should be more useful!

Pending that work we've specifically chosen not to update any translations in this release, so they'll be the same as released in 5.1.0.

Bug Fixes​

  • Handle where the Backpack.json file for a Backpack event is a zero length
    file. Closes #1138.
  • Fixed case of 'Selection' in 'Override Beta/Normal Selection' text on Settings > Configuration. This allows translations to work.

Plugin Developers​

  • We've updated Contributing.md including:
    1. Re-ordered the sections to be in a more logcial and helpful order.
    2. Added a section about choosing an appropriate log level for messages.
    3. fstrings now mandatory, other than some use of .format() with respect to translated strings.
  • docs/Translations.md updated about a forthcoming change to how we can programmatically check that all translation strings have a proper comment in 'L10n/en.template' to aid translators.
  • state passed to journal_entry() now has ShipLockerJSON which contains the json.load()-ed data from the new 'ShipLocker.json' file. We do attempt to always load from this file, even when the ShipLocker Journal event itself contains all of the data (which it does on startup, embark and disembark), so it should always be populated when plugins see any event related to Odyssey inventory.

Release 5.1.0

  • Updates to how this application utilises the Inara.cz API.
    1. The current state of your ShipLockerMaterials (MicroResources for Odyssey Suit and handheld Weapons upgrading and engineering) will now be sent. Note that we can't reliably track this on the fly, so it will only update when we see a full ShipLockerMaterials Journal event, such as at login or when you disembark from any vehicle.
    2. Odyssey Suits and their Loadouts will now be sent.
    3. When you land on a body surface, be that in your own ship, in a Taxi, or in a Dropship. Depending on the exact scenario a Station might be sent along with this.
  • You can now both edit the 'normal' and 'beta' coriolis.io URLs, and choose which of them are used. 'Auto' means allowing the application to use the normal one when you're running the live game, or the beta version if running a beta version of the game.
  • Suit names will now be displayed correctly when we have pulled the data from the Frontier CAPI, rather than Journal entries.
  • Many translations updated once more, especially for new strings. Thanks as always to those contributing!

Bug Fixes​

Plugin Developers​

There are some new members of the state dictionary passed to journal_entry(); Taxi, Dropship, Body and BodyType. See PLUGINS.md for the details.
---------------------------------------------------------

Release 5.0.4

This is a minor bugfix release, ensuring that Odyssey Suit names (and loadout) will actually display if you're in your ship on login and never leave it.

NB: This still requires a Frontier CAPI data pull, either automatically because you're docked if you have that option set, or by pressing the 'Update' button. We can't display data when we don't have it from either CAPI or Journal sources. You'll also see '<Unknown>' between the time we see the Journal LoadGame event during login and when there's either a Journal suit-related event, or a CAPI data pull completes.

Release 5.0.3

  • You can now click on a 'cell' in the "File" > "Status" popup to copy that text to the clipboard. This was a relatively easy, and non-intrusive, code change. We'll look at richer, fuller, copy functionality in the future.
  • Suit names, for all grades, should now be displaying as just the relevant word, never a symbol, and with the redundant 'suit' word(s) from all languages removed. Note that Frontier have not translated the following, so neither do we: "Artemis", "Dominator", "Maverick". The 'Flight Suit' should, approximately, use the Frontier-supplied translation for 'Flight' in this context. In essence the displayed name is now as short as possible whilst disambiguating the suit names from each other.

Bug Fixes​

  • The check for "source, but with extra changes?" in appversion will now not cause an error if the "git" command isn't available. Also, the extra text added to the build number is now ".DIRTY".
  • Actually properly handle the "you just made progress" version of the EngineerProgress Journal event, so that it doesn't throw errors.

Plugin Developers​

  • The backpack and ship locker tracking of micro-resources might now actually be correct with respect to 'reality' in-game. This is in part thanks to Frontier changes to some events in 4.0.0.200.
  • Suit names will now only be sourced from Journal events if the application didn't (yet) have the equivalent CAPI data.
  • The displayed Suit name is stored in an extra "edmcName" key within state['Suits'] and state['SuitCurrent']. What was found in the Journal or CAPI data is still present in the "name" and "locName" values.
  • The "language", "gameversion" and "build" values from the "Fileheader" event are all now stored in state[] fields. See PLUGINS.md for updated documentation.
  • We have a new Contributing.md policy of adding comments in a defined format when we add or change code such that there's a 'hack', 'magic' or 'workaround' in play. You might find some of this enlightening going forwards.

Release 5.0.2

This release is primarily aimed at getting the UI "Suit: ..." line working properly.
  • The "Suit: ..." UI line should now function as best it can given the available data from the game. It should not appear if you have launched the Horizons version of the game, even if your account has Odyssey enabled. You might see "<Unknown>" as the text when this application does not yet have the required data.
  • Changed the less than obvious "unable to get endpoint: /profile" error message to "Frontier CAPI query failure: /profile", and similarly for the other CAPI endpoints we attempt to access. This new form is potentially translated, but translators need time to do that.
    In addition the old message "Received error {r.status_code} from server" has been changed to "Frontier CAPI server error: {r.status_code}" and is potentially translated.
  • The filenames used for 'Market data in CSV format file' will now be sane, and as they were before 5.0.0.
  • Linux: 'Shipyard provider' will no longer default to showing 'False' if no specific provider has been selected.

Plugin Developers​

  • Extra Flagse values added in the live release of Odyssey have been added to edmc_data.py.
  • Odyssey 'BackPack' values should now track better, but might still not be perfect due to Journal bugs/shortcomings.
  • state passed to journal_entry() now has a BackpackJSON (note the case) member which is a copy of the data from the Backpack.json (yes, that's currently the correct case) file that is written when there's a BackPack (guess what, yes, that is currently the correct case) event written to the Journal.
  • state['Credits'] tracking is almost certainly not perfect. We're accounting for the credits component of SuitUpgrade now, but there might be other such we've yet accounted for.
  • state['Suits'] and associated other keys should now be tracking from Journal events, where possible, as well as CAPI data.
  • There is a section in PLUGINS.md about how to package an extra Python module with your plugin. Note the new caveat in PLUGINS.md:Avoiding-pitfalls about the name of your plugin's directory.

Release 5.0.1


The main reason for this release is to add an 'odyssey' boolean flag to all EDDN messages for the benefit of listeners, e.g. eddb.io, inara.cz, edsm.net, spansh.co.uk, etc. Please do update so as to make their lives easier once Odyssey has launched!
  • Translations have been updated again. Thanks to all the contributors. See wiki:Translations and Translations welcome for links and discussion if you want to help.
  • Changed the error message "Error: Frontier server is down" to "Error: Frontier CAPI didn't respond" to make it clear this pertains to the CAPI and not the game servers.

Killswitches​


In the 5.0.0 changelog we said:

We will NOT be using this merely to try and get some laggards to upgrade.

However, from now on there is an exception to this. After this release any subsequent -beta or -rc versions will be killswitched after their full release is published.

For example, if we put out a 5.0.2-beta1 and 5.0.2-rc1 before the full 5.0.2, then when 5.0.2 was published we would activate all available killswitches for versions 5.0.2-beta1 and 5.0.2-rc1. In this example 5.0.1 would not be killswitched as part of this policy (but still could be if, e.g. a data corruption bug was found in it).

In general please do not linger on any -beta or -rc release if there has been a subsequent release. Upgrade to the equivalent full release once it is published.

Plugin Developers​

  • Please make the effort to subscribe to GitHub notifications of new EDMarketConnector releases:
    1. Login to GitHub.
    2. Navigate to EDMarketConnector.
    3. Click the 'Watch' (or 'Unwatch' if you previously set up any watches on us). It's currently (2021-05-13) the left-most button of 3 near the top-right of the page.
    4. Click 'Custom'.
    5. Ensure 'Releases' is selected.
    6. Click 'Apply'.
    7. This way you'll be aware, as early as possible, of any -beta and -rc changelogs and changes that might affect your work.
  • state passed to journal_entry() has a new member Odyssey (note the capital O) which is a boolean indicating if the LoadGame event both has an Odyssey key, and if so, what the value was. Defaults to False.
  • PLUGINS.md updated to document the state['Horizons'] flag that has been present in it since version 3.0 of the game.
  • The stations.p and systems.p files that were deprecated in 5.0.0 have now also been removed in git. As this release is made they will no longer be in the develop, main or stable branches. If you truly need to find a copy look at the Release/4.2.7 tag, but do read the 5.0.0 changelog for why we stopped using them and what you can change to also not need them.

Release 5.0.0​

Python 3.9​

  • We now test against, and package with, Python 3.9.5.
    As a consequence of this we no longer support Windows 7.
    This is due to Python 3.9.x itself not supporting Windows 7.
    The application (both EDMarketConnector.exe and EDMC.exe) will crash on startup due to a missing DLL.

    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.

This Update Is Mandatory​

This release is a mandatory upgrade for the release of Elite Dangerous Odyssey. Any bug reports against earlier releases, pertaining to Odyssey or not, will be directed to reproduce them with 5.0.0 or later. There are also minor bugs in 4.2.7 and earlier that have been fixed in this version. There will NOT be another 4.2.x release.
The major version has been incremented not for Odyssey support, but because we have made some minor breaking changes to the APIs we provide for plugin developers.
Due to these plugin API changes (see below) users might need to update their plugins. A check of all the Plugins we know about only found one with an issue related to the move to edmc_data.py, the developer was informed and the issue addressed.
Other plugins should, at most, log deprecation warnings about the config changes (again, see below).
In the first instance please report any issues with plugins to their developers, not us. They can contact us about EDMC core code issues if they find such in their investigations.
All plugin developers would benefit from having a GitHub account and then setting up a watch on EDMarketConnector of at least 'Releases' under 'Custom'.
NB: If you had any beta or -rc1 of 5.0.0 installed and see anything weird with this full release it would be advisable to manually uninstall, confirm the installation directory (default c:\Program Files (x86)\EDMarketConnector) is empty, and then re-install 5.0.0 to be sure you have a clean, working, install. Anyone upgrading from 4.2.7 or earlier shouldn't see any issues with this.

Changes and Enhancements​

  • If the application detects it's running against a non-live (alpha or beta) version of the game it will append " (beta)" to the Commander name on the main UI.
  • Updated translations. Once more, thanks to all the translators!
  • We now sanity check a returned Frontier Authentication token to be sure it's for the current Commander. If it's not you'll see Error: customer_id doesn't match! on the bottom status line. Double-check you're using the correct credentials when authing!
  • New 'Main window transparency' slider on Settings > Appearance.
  • New command-line argument for EDMarketConnector.exe --reset-ui. This will:
    1. Reset to the default Theme.
    2. Reset the UI transparency to fully opaque.
    The intention is this can be used if you've lost sight of the main window due to tweaking these options.
    There is a new file EDMarketConnector - reset-ui.bat to make utilising this easy on Windows.
  • New CL arg for EDMarketConnector.exe --force-edmc-protocol. This is really only of use to core developers (its purpose being to force use of the edmc:// protocol for Frontier Auth callbacks, even when not 'frozen').
  • Linux config will be flushed to disk after any change. This means that EDMC.py can now actually make use of the latest CAPI auth if it's been updated by EDMarketConnector.py since that started.
    If you want to run multiple instances of the application under Linux then please check the updated Troubleshooting: Multi-Accounting wiki entry.
  • Linux and macOS: You can now set a font name and size in your config file. Ensuring this is a TTF font, rather than a bitmap font, should allow the application UI scaling to work.
    1. 'font' - the font name to attempt using
    2. 'font_size' - the font size to attempt using.
    There is no UI for this in Preferences, you will need to edit your config file to set or change it, and then restart the application.
    This is not supported on Windows so as not to risk weird bugs. UI Scaling works on Windows without this.
  • We now also cite the git 'short hash' in the version string. For a Windows install of the application this is sourced from the .gitversion file (written during the build process).
    When running from source we attempt to use the command git rev-parse --short HEAD to obtain this. If this doesn't work it will be set to 'UNKNOWN'.
  • We have added a 'killswitch' feature to turn off specific functionality if it is found to have a bug. An example use of this would be in an "oh ! we're sending bad data to EDDN!" moment so as to protect EDDN listeners such as EDDB.
    If we ever have to use this we'll announce it clearly and endeavour to get a fixed version of the program released ASAP. We will NOT be using this merely to try and get some laggards to upgrade.
    Plugin Developers: See Killswitches.md for more information about this.
  • Our logging code will make best efforts to still show class name and other such fields if it has trouble finding any of the required data for the calling frame. This means no longer seeing ??:??:?? when there is an issue with this.
  • macOS: We've managed to test the latest code on macOS Catalina. Other than keyboard shortcut support not working it appears to be working.
  • We've pulled the latest Coriolis data which might have caused changes to ship and module names as written out to some files.

Odyssey​

Every effort was made during the Odyssey Alphas to ensure that this application will continue to function correctly with it. As always, make a Bug Report if you find anything not working, but be sure to check our Known Issues first.
  • A new UI element 'Suit' now appears below 'Ship' when applicable. It details the type of suit you currently have equipped and its Loadout name. This UI element is collapsed/hidden if no suit/on-foot state is detected, e.g. not playing Odyssey.
  • Note that we can only reliably know about Suits and their Loadouts from a CAPI data pull (which is what we do automatically on docking if configured to do so, or when you press the 'Update' button). We do attempt to gather this data from Journal events as well, but if you switch to a Suit Loadout that hasn't been mentioned in them yet we won't be able to display that until the next CAPI data pull.
If anyone becomes aware of a 'suit loadouts' site/tool, a la Coriolis/EDSY but for Odyssey Suits, do let us know so we can add support for it! We're already kicking around ideas to e.g. place JSON text in the clipboard if the Suit Loadout is clicked.

Bug Fixes​

  • Fix ship loadout export to files to not trip up in the face of file encoding issues. This relates to the 'Ship Loadout' option on the 'Output' tab of Settings/Preferences.
  • Ship Type/Name will now be greyed out, and not clickable, if we don't currently have loadout information for it. This prevents trying to send an empty loadout to your shipyard provider.
  • Bug fixed when handling CAPI-sourced shipyard information. This happens due to a Frontier bug with not returning shipyard data at all for normal stations.
    It has been observed that Frontier has fixed this bug for Odyssey.
  • Don't try to get Ship information from LoadGame event if directly in CQC.
  • Inara: Don't attempt to send an empty setCommanderReputationMajorFaction API call. This quietens an error from the Inara API caused when a Cmdr literally has no Major Faction Reputation yet.

Code Clean Up​

  • Code pertaining to processing Journal events was reworked and noisy logging reduced as a consequence.
  • A little TRACE logging output has been commented out for now.
  • The code for File > Status has been cleaned up.
  • Localisation code has been cleaned up.
  • Code handling the Frontier Authorisation callback on Windows has been cleaned up.
  • A lot of general code cleanup relating to: Inara, outfitting, Frontier CAPI, hotkey (manual Updates), dashboard (Status.json monitoring), commodities files, and ED format ship loadout files.

Plugin Developers​

  • The files stations.p and systems.p have been removed from the Windows Installer. These were never intended for third-party use. Their use in core code was for generating EDDB-id URLs, but we long since changed the EDDB plugin's handlers for that to use alternate URL formats based on game IDs or names.
    If you were using either to lookup EDDB IDs for systems and/or stations then please see how system_url() and station_url() now work in plugins/eddb.py.
    This change also removed the core (not plugin) eddb.py file which generated these files. You can find it still in the git history if needs be. It had gotten to the stage where generating systems.p took many hours and required 64-bit Python to have any hope of working due to memory usage.
  • All static data that is cleared for use by plugins is now in the file edmc_data.py and should be imported from there, not any other module.
    The one thing we didn't move was the 'bracket map' dictionaries in td.py as they're for use only by the code in that file.
    All future such data will be added to this file, and we'll endeavour not to make breaking changes to any of it without increasing our Major version.
  • config.appversion() is now a function that returns a semantic_version.Version. In contexts where you're expecting a string this should mostly just work. If needs be wrap it in str().
    For backwards compatibility with pre-5.0.0 you can use:
from config import appversion

if callable(appversion):
edmc_version = appversion()
else:
edmc_version = appversion
  • Example plugin plugintest updated. This includes an example of how to check core EDMC version if needs be. This example is also in PLUGINS.md.
  • config.py has undergone a major rewrite. You should no longer be using config.get(...) or config.getint(...), which will both give a deprecation warning. Use instead the correct config.get_<type>() function:
    • config.get_list(<key>)
    • config.get_str(<key>)
    • config.get_bool(<key>)
    • config.get_int(<key>)
    Setting still uses config.set(...).
    So:
    1. Replace all instances of config.get() and config.getint() as above.
    2. For ease of maintaining compatibility with pre-5.0.0 versions include this code in at least one module/file (no harm in it being in all that manipulate plugin config):
from config import config

# For compatibility with pre-5.0.0
if not hasattr(config, 'get_int'):
config.get_int = config.getint

if not hasattr(config, 'get_str'):
config.get_str = config.get

if not hasattr(config, 'get_bool'):
config.get_bool = lambda key: bool(config.getint(key))

if not hasattr(config, 'get_list'):
config.get_list = config.get

  • Utilising our provided logging from a class-level, i.e. not a solid instance of a class, property/function will now work.
  • We now change the current working directory of EDMarketConnector.exe to its location as soon as possible in its execution. We're also paranoid about ensuring we reference the full path to the .gitversion file.
    However, no plugin should itself call os.chdir(...) or equivalent. You'll change the current working directory for all core code and other plugins as well (it's global to the whole process, not per-thread). Use full absolute paths instead (pathlib is what to use for this).
  • The state dict passed to plugins in journal_entry() calls (which is actually monitor.state in the core code) has received many additions relating to Odyssey, as well as other fixes and enhancements.
    1. Support has been added for the NavRoute (not Route as v28 of the official Journal documentation erroneously labels it) Journal event and its associated file NavRoute.json. See PLUGINS.md:Events documentation
    2. Similarly, there is now support for the ModuleInfo event and its associated ModulesInfo.json file.
    3. state['Credits'] - until now no effort was made to keep this record of the credits balance up to date after the initial LoadGame event. This has now been addressed, and the balance should stay in sync as best it can from the available Journal events. It will always correct back to the actual balance on each CAPI data pull or game relog/restart.
    4. state['Cargo'] now takes account of any CargoTransfer events. This was added to the game in the Fleet Carriers update, but also covers transfers to/from an SRV.
    5. state['OnFoot'] is a new boolean, set true whenever we detect the Cmdr is on-foot, i.e. not in any type of vehicle (Cmdr's own ship, SRV, multi-crew in another Cmdr's ship, Apex taxi, or a Dropship).
    6. state['Suits'] and state['SuitLoadouts'] added as dicts containing information about the Cmdr's owned Suits and the Loadouts the Cmdr has defined to utilise them (and on-foot weapons).
      Note that in the raw CAPI data these are arrays if all members contiguously exist, else a dictionary, but we have chosen to always coerce these to a python dict for simplicity. They will be empty dicts, not None if there is no data.
      We use the CAPI data names for keys, not the Journal ones - e.g. slots for weapons equipped, not Modules.
      The id field found on e.g. weapon details in suit loadouts may be None if we got the data from the Journal rather than the CAPI data.
      NB: This data is only guaranteed up to date and correct after a fresh CAPI data pull, as the current Journal events don't allow for updating it on the fly (this should change in a future Odyssey patch).
    7. state['SuitCurrent'] and state['SuitLoadoutCurrent'] contain the obvious "currently in use" data as per the Suits/SuitLoadouts.
    8. Tracking of the new Odyssey 'Microresources' has been added:
      1. Component - dict for 'Ship Locker' inventory.
      2. Item - dict for 'Ship Locker' inventory.
      3. Consumable - dict for 'Ship Locker' inventory.
      4. Data - dict for 'Ship Locker' inventory.
      5. BackPack - on-foot inventory, a dict containing again dicts for Component, Item, Consumable and Data.
        However note that the lack of a Journal event when throwing a grenade, along with no BackPackMaterials event if logging in on-foot means that we can't track the BackPack inventory perfectly.
    See the updated PLUGINS.md file for details.
  • As Status.json, and thus the EDMC 'dashboard' output now has a 'flags2' key we have added the associated constants to edmc_data.py with a Flags2 prefix on the names.
  • Note that during the Odyssey Alpha it was observed that the CAPI data['commander']['docked'] boolean was always true if the Cmdr was in their ship. This is a regression from pre-Odyssey behaviour. The core EDMC code copes with this. Please add a reproduction to the issue about this: PTS CAPI saying Commander is Docked after jumping to new system.
 
Last edited:
Release 3.46
This should be the final release of EDMC based on Python 2.7. The next release after this, assuming this one doesn't introduce new bugs, will be based on Python 3.7. Any plugins that users have installed will need to have been updated to work under Python 3.7 by the time that next version of EDMC is released. During EDMC startup, at most once per day, you might see a popup with the 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 will need to update the code when EDMC moves to Python 3.x

A small bug means that popup will never appear, but you can still check File > Settings > Plugins tab and see what plugins are listed in the section with the text Plugins Without Python 3.x Support.
If any of your plugins are listed in that section then they will need updating, by you or the original developer, to work with Python 3.7. See Migrating to python 3.7 for more information.
Anyone who wishes to try out the forthcoming Python 3.7-based version should see Release 3.51 beta0, but please do not install that unless you're technically savvy enough to make coherent bug reports, thankyou.
Changes in this version:
  • The CAPI CLIENT_ID has been changed to one under Athanasius' account, so when users are asked to (re-)authenticate with Frontier they'll see Elite Dangerous Market Connector (EDCD/Athanasius) as the application asking for permission. There's been no change to the use of the data Frontier then gives access to.
  • Updated translations (as of 2019-09-26 in general and 2019-11-04 for Polish).
  • Linux: Should now appear on task bar whilst in dark mode theme.
  • INARA: Send correct opponentName for Interdicted and Interdiction events.
  • Send SAASignalsFound events to EDDN.
  • Add Agronomic Treatment introduced for a community goal.
  • Fix Detailed Surface Scanner rating.
  • Fix for the "Inara 400 The reputation value exceeds the valid range" error.
  • Minimum interval between checks for a new version of EDMC has been reduced from 47 hours to 8 hours.
  • There is a new option, within the 'Configuration' tab, 'Disable Automatic Application Updates Check when in-game' which when active should prevent update checks from showing a popup whilst you're in-game. You can still use Help > Check for updates to trigger a manual check.
  • Support added for the journal CarrierJump event, triggered when you're docked on a Fleet Carrier as it performs a jump. This is now sent to: EDDN, Inara, EDSM. NB: EDSM doesn't yet support this event at the time of writing, so will still not track such Carrier Jumps in your Flight Log or current location. Generally when EDSM is updated to handle such new events it will back-process stored unrecognised events.

NB: There's some issue with 3.44 updating to this new 3.46. If you use the in-app prompt to install it will kill the old running EDMarketConnector.exe and attempt to run the new installer, but that then fails in some manner and you're left with 3.44 still installed. I'm investigating now.
 
Last edited:
I'd neglected to properly edit the update feeds file, so it was still pointing to the 3.44 installer file despite saying it was for 3.46. Fixed!
 
One small bug I didn't catch, that popup warning about Python 3.x and plugins won't ever happen. But if you look on File > Settings > Plugins you will see any plugin without Python 3.x support listed in an appropriate section.
 
I've also spotted a puzzling issue with the EDMarketConnector.exe not showing the correct icon. This worked fine for the 3.44 build, yet doing that afresh exhibits the same "no icon" problem. It's currently working OK on my Python 3.7 build environment so I'm inclined to just let this slide until the next, Python 3.7 based, release.

It's py2exe that builds the .exe and is meant to take care of incorporating the icon, and nothing has changed about how that is being specified, nor are any errors thrown during the ubild process so <insert shrugging emoji>.
 
Last edited:
This 3.46 EDMarketConnector.exe icon thing... some of us are seeing the icon, some of us not. I've just checked a fresh build of the 3.44 .exe, which for me doesn't show the icon, and it has an identical SHA256 checksum to the github .msi 3.44 file which does show the icon for me. So this is Windows 10 doing something bizarre.

I've already tried removing %LOCALAPPDATA%\IconCache.db and rebooting, it made no difference.

So, I'm definitely inclined to leave this be given things are still working sanely for me with the python3 branch built using Python 3.7.7.
 
1593326871506.png
 
There are some new phrases awaiting translations on https://marginal.oneskyapp.com/collaboration/project/52710 if anyone has the skills for the supported languages. If you find anything you think is wrong and can't edit then poke me to 'Unfinalize' the translation(s). I can also look at adding new languages if there's a volunteer to make a new translation.

Any work ready to go when I make the next release will be included :) .
 
NB: If you're helping with translations you only need to care about the ones under the "EDMarketConnector / Miscellaneous" project and not the "EliteOCR / EliteOCR" one!

I'm pretty sure the EliteOCR project has been dead for many years now, made moot by the Journals and CAPI as data sources.
 
Hi all !

Now I'm forced to flood the logs from the game with my hands on Inara. Can I use your program by giving her access only from Inara ? So she can fill in the logs from the game on Inara.

Without providing any logins and passwords from the game itself.

Thank you.

Example:
1. Specify in the EDMS settings where the logs and the key to Inara's website should be stored.
2. Start EDMS and it will automatically fill in the logs on Inara's website.
 
Last edited:
Now I'm forced to flood the logs from the game with my hands on Inara. Can I use your program by giving her access only from Inara ? So she can fill in the logs from the game on Inara.

Without providing any logins and passwords from the game itself.

Thank you.

Example:
1. Specify in the EDMS settings where the logs and the key to Inara's website should be stored.
2. Start EDMS and it will automatically fill in the logs on Inara's website.
Yes, EDMC supports Frontier Authentication, it hasn't asked for your game login details for a long time now.

You can then set the options in EDMC so that it only sends to Inara (don't enter an EDSM API Key, and if you really don't want to then disable the options for sending to EDDN). You'll obviously then need to always be running EDMC when you play the game.
 
If anyone has had 3.50 or 3.51 installed (or running from source) in order to test against Python 3.7 then could you please switch to 3.99.0.0 or the beta branch of the source code. See the first link for Release Notes. If you're feeling particularly brave you could use the develop branch which will have the latest code I've merged in from Work-In-Progress branches.

Check the open Issues before reporting any problems you see. I'll likely be making a 3.99.1.0 pre-release today or tomorrow to fix a few more things.

If all goes well with that then expect the actual 4.0.0.0 release of Python 3.7 based EDMC some time next week.
 
The next full release of EDMC will be 4.0.0.0. As well as fixing some bugs and including some other enhancements this will be the big move from Python 2.7 to Python 3.7. So, with that in mind, I'd like as many users as possible to install and test this 3.99.2.0 pre-release to help find any new bugs before that big change is offered to everyone.

You can get it from Pre-Release 3.99.2.0 . Install by simply running it. It's the same as if EDMC offered you a new version and you went through with installing it.
As always, please report any issues on GitHub. If you want to discuss or check anything first then find us in the #edmc channel of the EDCD Discord Server.
You should read all of the changelogs for 3.99.0.0, 3.99.1.0 and 3.99.2.0. I'll make the easy by pasting them here:
3.99.0.0

  • This release is based on Python 3.7, not 2.7, so a user might find some of their plugins stop working. If you have any that do not have the proper support you'll see a popup about this, at most once every 24 hours, when you start the program. As directed on that popup you can check the status of your plugins on 'File' > 'Settings' > 'Plugins' in the new 'Plugins Without Python 3.x Support:' section. If the popup gets annoying then follow the directions to Disable a plugin. For any plugins without Python 3.x support you should first ensure you're using the latest version of that plugin. If that hasn't been updated then you might want to contact the plugin developer to see if they'll update the plugin. For some plugins check this list.
  • Translations updated:
  • New languages: Serbian (Latin, Bosnia and Herzegovina) (175/175), Slovenian (Slovenia) (144/175).
  • New phrases were added and the only 100% translated languages are now: French, German, Ukrainian, Spanish, Russian, Czech, Japanese, Serbian (Latin), Portugese (Portugal), Serbian (Latin, Bosnia and Herzegovina). Please do contribute on the OneSkyApp project if you are able to.
  • Fixes a bug where certain combinations of 'Output' and 'EDDN' options would lead to both reverting to their defaults.
  • EDDB plugin now uses a system's SystemAddress to construct the URL to view the system on eddb.io. This removes the need for the systems.p file. That file will be removed in a future version, plugin authors should not be relying on its presence.
  • EDDB plugin now uses a station's MarketID to construct a URL to view the station on eddb.io. This removes the need for stations.p. That file will be removed in a future version, plugin authors should not be relying on its presence. NB: It's now using the system's "Population" data from Journal messages to determine if the system has stations or not. This allows for the × as station name to be clickable to open the eddb.io page for system when you're not docked. It's known that some systems with stations have a Population of "0" and thus won't allow this functionality. This is Frontier's issue, not EDMC's. If you logged out in a populated system, run EDMC afresh, and use the 'Update' button you won't see the × until you login fully to the game.
  • New 'Help' > 'About E:D Market Connector' menu item to show the currently running version. Includes a link to the release notes.
3.99.1.0

  • Fix a bug where if you copied a Journal file to the live location, resulting in a "Journal.YYMMDDHHMMss.XX - Copy.log" file, the application would pick it up as 'new' and potentially re-send duplicate data to all of EDDN, EDSM and Inara. Now the only files the application will take note of must:
  1. Start with Journal. or JournalBeta.
  2. Have the 12-digit date/timestamp, followed by a .
  3. Have the 2 digit serial number, followed by a .
  4. Nothing else before the trailing log.
  • Fix the 'Release Note' URL in the 'About' popup to use the correct format.
  • Fix the location of Registry keys for the update checker, WinSparkle, to be under EDMarketConnector instead of EDMarketConnector.py.
3.99.2.0

  • Added Swedish to the translated languages. Thanks to Gurra.
  • Will throw an exception, rather than a Segmentation Fault, if run on Linux without DISPLAY properly set.
  • Corrects setting of WinSparkle (updates checking) options to be under the new 'EDCD' Registry key.
 
Hi Athan,

the usage of EDMC.exe (which TCE is using) from the V3.99.2.0 installation producing an error on any command line parameter (-o/-m/-l etc.).
The error message is "Can't read Journal file: b"name 're' is not defined".
Also the -v parameter reports the version 39.92, which is also wrong.
EDMC 3.51beta is working properly.

Hopefully you find the issue before release, otherwise the TCE users will take out their torches :)

I can't report it on Github actually, cause my account there has an issue, so I can't login. Hope this get fixed by Github any time soon.
 
Last edited:
Hopefully you find the issue before release, otherwise the TCE users will take out their torches :)

I can't report it on Github actually, cause my account there has an issue, so I can't login. Hope this get fixed by Github any time soon.
I've opened this issue for it and will take a look in the next day or so latest.
 
I can't report it on Github actually, cause my account there has an issue, so I can't login. Hope this get fixed by Github any time soon.
I've made a new release with just these fixes and an updated Swedish translation: Release 3.99.3.0


Pre-Release 3.99.3.0
Consider this as 'beta3' for the following full '4.0.0.0' release.

* Fix up EDMC.exe (command line tool):
* Correctly report the version with -v.​
* Don't error out on checking Journal filenames.​
* Updated Swedish translation.
 
Last edited:
installed 3.99.3 allways get the "server down" message, is the server actually down or is a bug too?

edmc gives no server down message
 
Top Bottom