From 4f524a0a35072a1aeff47426448eb13f9838e657 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Mon, 15 Mar 2021 12:07:39 +0000 Subject: [PATCH] Add extra logging for Frontier Auth, especially via edmc:// --- EDMarketConnector.py | 5 +++++ companion.py | 7 ++++++- protocol.py | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 764568ec..b33d9498 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -918,6 +918,7 @@ class AppWindow(object): # cAPI auth def auth(self, event=None): + logger.debug('Received "<>') try: companion.session.auth_callback() # Successfully authenticated with the Frontier website @@ -925,14 +926,18 @@ class AppWindow(object): if platform == 'darwin': self.view_menu.entryconfigure(0, state=tk.NORMAL) # Status self.file_menu.entryconfigure(0, state=tk.NORMAL) # Save Raw Data + else: self.file_menu.entryconfigure(0, state=tk.NORMAL) # Status self.file_menu.entryconfigure(1, state=tk.NORMAL) # Save Raw Data + except companion.ServerError as e: self.status['text'] = str(e) + except Exception as e: logger.debug('Frontier CAPI Auth:', exc_info=e) self.status['text'] = str(e) + self.cooldown() # Handle Status event diff --git a/companion.py b/companion.py index 850f3a7a..43f21721 100644 --- a/companion.py +++ b/companion.py @@ -263,6 +263,7 @@ class Auth(object): except (ValueError, requests.RequestException, ): logger.exception(f"Frontier CAPI Auth: Can't refresh token for \"{self.cmdr}\"") + self.dump(r) else: logger.error(f"Frontier CAPI Auth: No token for \"{self.cmdr}\"") @@ -360,7 +361,11 @@ class Auth(object): # noinspection PyMethodMayBeStatic def dump(self, r: requests.Response) -> None: """Dump details of HTTP failure from oAuth attempt.""" - logger.debug(f'Frontier CAPI Auth: {r.url} {r.status_code} {r.reason if r.reason else "None"} {r.text}') + if r: + logger.debug(f'Frontier CAPI Auth: {r.url} {r.status_code} {r.reason if r.reason else "None"} {r.text}') + + else: + logger.debug(f'Frontier CAPI Auth: failed with `r` False: {r!r}') # noinspection PyMethodMayBeStatic def base64_url_encode(self, text: bytes) -> str: diff --git a/protocol.py b/protocol.py index 9dd9aba5..04e233ef 100644 --- a/protocol.py +++ b/protocol.py @@ -37,6 +37,7 @@ class GenericProtocolHandler(object): self.lastpayload = url if not config.shutting_down: + logger.debug('event_generate("<>"') self.master.event_generate('<>', when="tail") @@ -190,12 +191,16 @@ elif sys.platform == 'win32' and getattr(sys, 'frozen', False) and not is_wine a None) msg = MSG() while GetMessage(byref(msg), None, 0, 0) != 0: + logger.trace(f'DDE message of type: {msg.message}') if msg.message == WM_DDE_EXECUTE: args = wstring_at(GlobalLock(msg.lParam)).strip() GlobalUnlock(msg.lParam) if args.lower().startswith('open("') and args.endswith('")'): + logger.trace(f'args are: {args}') url = urllib.parse.unquote(args[6:-2]).strip() + logger.trace(f'Parsed url: {url}') if url.startswith(self.redirect): + logger.debug(f'Message starts with {self.redirect}') self.event(url) SetForegroundWindow(GetParent(self.master.winfo_id())) # raise app window PostMessage(msg.wParam, WM_DDE_ACK, hwnd, PackDDElParam(WM_DDE_ACK, 0x80, msg.lParam))