Yes, there's some lovely mis-match between Mapping and Dict type to work
around. Mapping complains about lack of __delitem__, so saying it's a
Dict instead and ensuring that matches at the call site.
* As we're now not sending *all* journal events on the journal schema
this refactors only the actual sending in export_journal_entry(), with
the other functionality in export_journal_generic(), so that the new
export_journal_fssdiscoveryscan() can use export_journal_entry() as
well.
In the future EDDN will move to a schema per event type, so we'll lose
_generic(). Factoring out some things like augmentations into their own
functions will come next.
This also entailed slightly reworking the way the EDDN code uses this
URL. It was very generalised, so as to allow for the debug "just send
and log locally" code, but as the only URL is the 'upload' one much of
that seemed un-necessary.
So that code has been simplified.
This should have been set from the latest Journal file, and the
key/value is in LoadGame in Odyssey. It's only documented as:
"Whether the sending Cmdr has an Odyssey expansion."
in the current EDDN Journal schema. Thus sending this as False if the
Cmdr last logged into Horizons/base game should be OK.
A simple HTTP handler has been added that will dump any and all POST
data it gets to EDMC's log.
Additionally, a new command line argument to switch EDMC to using this
as its EDDN target has been added.
1. journal outfitting
2. journal shipyard
3. journal commodities
As these are sourced from the additional .json files via a load over
`entry` contents we need to re-set `entry['odyssey']` and then make sure
we use it.
NB: Currently EDDN gateway doesn't have the updated schemas, so the
export_commodities() throws an exception and thus neither outfitting or
shipyard exports are even attempted.
NB: No shipyard in tests because data['ships']['shipyard_list'] is an
empty list. This might be the bug not having been fixed, or the station
might genuinely have no ships for sale. We have no way to check in
Odyssey Alpha Phase 1.