mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2026-10-22 17:22:09 +03:00
[#1633] Add Refresh Trace_If Handlers
This commit is contained in:
2 files changed
+12
-2
No files matched your search
+3
-2
@@ -51,7 +51,8 @@ from threading import get_native_id as thread_native_id
|
||||
from time import gmtime
|
||||
from traceback import print_exc
|
||||
from typing import TYPE_CHECKING, cast
|
||||
from config import appcmdname, appname, config, trace_on, config_logger
|
||||
import config as config_mod # This has to be imported separately for trace_if to work... for some reason.
|
||||
from config import appcmdname, appname, config, config_logger
|
||||
|
||||
# TODO: Tests:
|
||||
#
|
||||
@@ -102,7 +103,7 @@ warnings.simplefilter('default', DeprecationWarning)
|
||||
|
||||
|
||||
def _trace_if(self: logging.Logger, condition: str, message: str, *args, **kwargs) -> None:
|
||||
if any(fnmatch(condition, p) for p in trace_on):
|
||||
if any(fnmatch(condition, p) for p in config_mod.trace_on):
|
||||
self._log(logging.TRACE, message, args, **kwargs) # type: ignore # we added it
|
||||
return
|
||||
|
||||
|
||||
@@ -322,6 +322,7 @@ class Auth:
|
||||
|
||||
self.verifier = None
|
||||
cmdrs = config.get_list('cmdrs', default=[])
|
||||
logger.trace_if('capi.auth.refresh', f"Found CMDRs: {cmdrs} in config.")
|
||||
try:
|
||||
idx = cmdrs.index(self.cmdr)
|
||||
except ValueError:
|
||||
@@ -330,6 +331,7 @@ class Auth:
|
||||
|
||||
tokens = config.get_list('fdev_apikeys', default=[])
|
||||
tokens += [''] * (len(cmdrs) - len(tokens))
|
||||
logger.trace_if('capi.auth.refresh', f"Found tokens: {tokens} in config.")
|
||||
|
||||
if tokens[idx]:
|
||||
# Try refresh
|
||||
@@ -345,8 +347,11 @@ class Auth:
|
||||
data=data,
|
||||
timeout=auth_timeout
|
||||
)
|
||||
logger.trace_if('capi.auth.refresh', f"Session Data: {r.json()}")
|
||||
logger.trace_if('capi.auth.refresh', f"Status Code: {r.status_code}")
|
||||
if r.status_code == requests.codes.ok:
|
||||
token_data = r.json()
|
||||
logger.trace_if("capi.auth.refresh", f"Token Data: {token_data}")
|
||||
tokens[idx] = token_data.get('refresh_token', '')
|
||||
config.set('fdev_apikeys', tokens)
|
||||
config.save()
|
||||
@@ -365,6 +370,7 @@ class Auth:
|
||||
self.verifier = self._generate_verifier()
|
||||
self.state = self._generate_state()
|
||||
challenge = self.base64_url_encode(hashlib.sha256(self.verifier).digest())
|
||||
logger.trace_if('capi.auth.refresh', f"Challenge: {challenge}")
|
||||
|
||||
webbrowser.open(
|
||||
f'{FRONTIER_AUTH_SERVER}{self.FRONTIER_AUTH_PATH_AUTH}?response_type=code'
|
||||
@@ -385,6 +391,7 @@ class Auth:
|
||||
raise CredentialsError('malformed payload')
|
||||
|
||||
data = urllib.parse.parse_qs(payload.split('?', 1)[1])
|
||||
logger.trace_if('capi.auth.refresh', f"OAuth callback params: {data}")
|
||||
if not self.state or data.get('state', [None])[0] != self.state:
|
||||
raise CredentialsError(f'Unexpected response from authorization {payload!r}')
|
||||
|
||||
@@ -409,6 +416,7 @@ class Auth:
|
||||
timeout=auth_timeout
|
||||
)
|
||||
data_token = r.json()
|
||||
logger.trace_if('capi.auth.refresh', f"Token Data: {data_token}")
|
||||
|
||||
# Decode token to validate customer_id
|
||||
r = self.requests_session.get(
|
||||
@@ -420,6 +428,7 @@ class Auth:
|
||||
timeout=auth_timeout
|
||||
)
|
||||
data_decode = r.json()
|
||||
logger.trace_if('capi.auth.refresh', f"Decode Token: {data_decode}")
|
||||
usr = data_decode.get('usr')
|
||||
if not usr or f'F{usr.get("customer_id")}' != monitor.state.get('FID'):
|
||||
# LANG: Frontier auth customer_id doesn't match game session FID
|
||||
|
||||
Reference in new issue
Block a user