Athanasius
af50a9f59d
companion: Make raw_data.__str__() a little less verbose
...
NB: We can't use a generator here to make a python object of the data,
to then use json.dumps() on because the raw_data is a *string* (decoded
from what we received from the CAPI service), and thus it will get
encoded as such, i.e.
"raw_data": "{\"id\":322...
when we want:
"raw_data": {"id":322...
We do not want to json.loads() that string only to then json.dumps() it
because the whole point is that this is the **raw** data to help
diagnose any issues with the CAPI service/data. Such a conversion and
back could either throw an exception we don't want here (because we want
the raw data) or possibly distort things from what was actually
received.
2021-08-31 12:44:46 +01:00
Athanasius
bf33f88260
companion: Rename to capi_default_requests_timeout
...
So it doesn't even need a comment.
2021-08-31 12:10:59 +01:00
Athanasius
613a992ae9
companion: Change comments on CAPI cooldown/timeouts
2021-08-31 12:09:40 +01:00
Athanasius
092b10447c
EDMarketConnector.py: Early return from AppWindow.save_raw()
2021-08-31 12:09:02 +01:00
Athanasius
fd3ebc9c21
Python version: 3.9.7
2021-08-31 10:49:04 +01:00
Athanasius
d1dbd9da8f
AppWindow.capi_request_data: Specific "We're aborting query" messages
2021-08-30 12:55:45 +01:00
Athanasius
50db6c528a
EDMC: Attempt to handle CAPI exceptions as per EDMarketConnector.py
...
* Moved most of the exception handling/message output down to the
outermost try's except clauses.
2021-08-28 15:34:41 +01:00
Athanasius
9e206d092c
Fix "" string to be ''
2021-08-28 14:36:54 +01:00
Athanasius
67220fc96a
CAPI: Change CAPIDataRaw.__getitem__ to using __getitem__ itself
...
The only use of this is stats.py, and it explicitly checks for the key's
existence first.
2021-08-28 14:35:22 +01:00
Athanasius
e3cd1d6429
EDMarketConnector: Comment about no timed CAPI retry on re-Auth
2021-08-28 14:27:20 +01:00
Athanasius
024e2ba357
EDMarketConnector: invalidate companion session and return on CredentialsError
...
* If we don't invalidate then the companion.Auth code will do nothing
due to "already auth'd".
* We need to give the auth flow time to complete, so need to return.
* As that auth flow can take indeterminate time, not setting a timed
retry of the CAPI query here. We should consider setting a flag and
reacting in the Auth code though.
2021-08-28 14:24:54 +01:00
Athanasius
74170da434
companion: Rename Session.session to requests_session
...
So as to avoid confusion with companion.session
2021-08-28 14:24:15 +01:00
Athanasius
6968cd6c69
companion: Rename Auth.session to requests_session
...
So as to not confuse with companion.session.
2021-08-28 14:18:49 +01:00
Athanasius
bc29891cc1
CAPI: Some notes in comments
2021-08-28 14:14:56 +01:00
Athanasius
12b1e9b7bc
CAPI: Add more trace_if('capi.worker', ...) to check timings
...
I keep observing it take 3-4s to update the UI after a manual CAPI
request. This showed up as mostly *in*
AppWindow.capi_handle_response(), but the moment I ran it under PyCharm
profile that went down to 400ms.
2021-08-28 13:58:46 +01:00
Athanasius
206367505c
CAPI: Cleanup some (un)needed translations
2021-08-26 15:31:39 +01:00
Athanasius
ef32eb0140
CAPI: Remove un-needed check/setting of Session.retrying
2021-08-26 15:16:42 +01:00
Athanasius
cd6d22844b
CAPI: 'Need auth' is from 401 now, not a redirect
2021-08-26 15:15:36 +01:00
Athanasius
2179936d6f
CAPI: No need to handle HTTP 5xx specially
...
This will be handled by the `except HTTPError` above.
2021-08-26 15:14:52 +01:00
Athanasius
6c24d9291a
CAPI: EDMarketConnector: Don't Session.invalidate() on CredentialsError
2021-08-26 15:13:33 +01:00
Athanasius
885745197c
CAPI: EDMarketConnector: Set status text on ServerConnectionError
2021-08-26 15:00:16 +01:00
Athanasius
0637873b91
CAPI: query error - Change JSON decode error message
2021-08-26 14:54:01 +01:00
Athanasius
a53858750c
CAPI: query errors: Continue taking auth-related reactions out
2021-08-26 14:52:47 +01:00
Athanasius
816384f16f
CAPI: Begin taking auth retries out of CAPI queries
...
* Only set/use retrying as companion.session.retrying (untested).
* Don't call Session.login() from CAPI query code, raise
CredentialsError instead.
* Also don't Session.close() in CAPI query code.
2021-08-26 14:44:43 +01:00
Athanasius
9f00bfea75
Merge pull request #1266 from chennin/patch-2
...
Fix shutting_down example in plugins.md
2021-08-25 20:38:53 +01:00
Chris
5e5169da51
Fix shutting_down example in plugins.md
2021-08-25 15:03:19 -04:00
Athanasius
303df05f2c
CAPI: Adjust 'requests.ConnectionError' logging
...
It was specifically implying DNS resolution issues, but this is far more
general than that.
2021-08-25 14:57:08 +01:00
Athanasius
baac45f5fe
CAPI: Some extra comments for fail/auth mess
2021-08-25 14:54:53 +01:00
Athanasius
2065721dd9
CAPI: Store request retrying
in companion.session.retrying
...
The code was already referencing the latter, just we weren't setting it
from the request yet.
2021-08-25 14:47:15 +01:00
Athanasius
05a95fbac4
companion: Update WTF comment about login/beta
...
This is probably a left-over from the days of email+password login, not
wanting to send that to anything but live CAPI server ?
2021-08-25 14:23:14 +01:00
Athanasius
120414ac59
CAPI: Convert StatsDialog.showstats() to using cached CAPI data
...
This will just bail if no data has yet been received for /profile, but
that's the same behaviour as if we don't yet have `monitor.cmdr`.
2021-08-25 14:08:36 +01:00
Athanasius
7e1e35fd48
companion: Don't self.capi_response_queue.put()
a tuple
2021-08-25 13:49:25 +01:00
Athanasius
6089dc6b0e
companion: Optional[bool], not Union & minor if
formatting
2021-08-25 13:48:32 +01:00
Athanasius
a48c33eda8
companion: Change record_endpoint() query_time to mandatory
...
This *does* need to be generated as close as possible to where the data
was received, and not rely on an actually not dynamic default.
2021-08-25 13:45:42 +01:00
Athanasius
40a8a19ce4
CAPI: Use special EDMCCAPIRequest endpoint, not 'None' for worker shutdown
2021-08-25 12:14:33 +01:00
Athanasius
503658bf4e
companion: Correct Session.profile(query_time) default
2021-08-25 12:04:13 +01:00
Athanasius
26caf76cf4
CAPI: Declare request/response queue member types
2021-08-25 11:56:32 +01:00
Athanasius
027455984b
CAPI: EDMCCAPIFailedRequest itself, not inside a tuple
...
* Also str(e.args) when setting the message.
2021-08-25 11:53:04 +01:00
Athanasius
e1c6a0e9f8
CAPI: Create response queue in companion.Session
...
No need to create in callers and then use setter.
2021-08-25 11:50:56 +01:00
Athanasius
69d0d03b9b
CAPI: Rename to EDMCCAPIFailedRequest & comment queues
...
* The 'EDMC' prefix on all these classes is to make it clear they're for
internal passing around of requests/responses, rather than holding the
literal raw CAPI request and response.
* The request and response queues are now commented, including the
detail that the response queue is created by the caller and then set
'here' by Session.set_capi_response_queue().
2021-08-25 11:42:53 +01:00
Athanasius
0456996cdd
EDMarketConnector: Save querytime to config *before* triggering API
2021-08-25 11:36:39 +01:00
Athanasius
dad2f95f64
EDMarketConnector: Correct arg to tk overrideredirect to bool
2021-08-25 11:34:51 +01:00
Athanasius
5710f3fd61
CAPI: Only import queue
in EDMarketConnector.py
2021-08-25 11:33:52 +01:00
Athanasius
030d79c9da
EDMC: De-indent CAPI response checks
2021-08-25 11:31:08 +01:00
Athanasius
5a7ff94eac
Merge pull request #1263 from chennin/patch-1
...
Fix game_running() doc in PLUGINS.md
2021-08-24 20:24:07 +01:00
Chris
705d2dd4f1
Fix game_runnning() doc in PLUGINS.md
2021-08-24 14:52:10 -04:00
Athanasius
4397acc6fb
CAPI: Status text when aborting due to CQC (& en.template updated)
2021-08-24 14:06:12 +01:00
Athanasius
c9d478222a
EDMC: Provide EDDN Odyssey flag from monitor state
...
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.
2021-08-24 13:52:48 +01:00
Athanasius
2e27a2ba00
CAPIData: Make JSON encodable, and use that elsewhere
...
* It's no use `dict(CAPIData)` if that contains other `CAPIData`. So,
rather than write something to do that recursively just implement a
simple JSON Encoder class and specify its use.
2021-08-24 13:22:13 +01:00
Athanasius
f12b8be74c
EDMC: Fix -d file
export of CAPI data
2021-08-24 13:04:25 +01:00