async def ensure_authenticated_page(page, context, debug: bool = False) -> bool: if 'login' in page.url.lower() or 'sessiontimeout=y' in page.url.lower(): if debug: print("DEBUG: Detected session timeout, attempting re-authentication...") from ..core.config import load_config, get_schwab_credentials # adjusted after refactor from .auth import login_to_schwab config = load_config() username, password = get_schwab_credentials(config) if username and password: fresh_cookies = await login_to_schwab(username, password) if fresh_cookies: await context.clear_cookies() await context.add_cookies(fresh_cookies) if debug: print("DEBUG: Re-authentication successful") return True else: if debug: print("DEBUG: Re-authentication failed") return False else: if debug: print("DEBUG: No credentials available for re-authentication") return False return True async def goto_with_auth_check(page, context, url: str, debug: bool = False, timeout: int = 60000): await page.goto(url, timeout=timeout) await page.wait_for_load_state('domcontentloaded') if not await ensure_authenticated_page(page, context, debug=debug): return False if 'login' in page.url.lower() or 'sessiontimeout=y' in page.url.lower(): await page.goto(url, timeout=timeout) await page.wait_for_load_state('domcontentloaded') return True