[#1633] Add Refresh Trace_If Handlers

This commit is contained in:
David Sangrey committed 2026-01-06 21:18:02 -05:00
1 parent 8041b7b1cf
commit cebf32264e
2 files changed
+12 -2

No files matched your search

+3 -2
View File
@@ -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
+9
View File
@@ -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