This commit is contained in:
2026-01-31 19:00:04 -08:00
parent dcf16e0cc4
commit 6513a3ad04
25 changed files with 617 additions and 397 deletions

View File

@@ -48,7 +48,8 @@ def _resolve_out_dir(arg_outdir: Optional[Union[str, Path]]) -> Path:
try:
p.mkdir(parents=True, exist_ok=True)
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to create resolved output dir %s", p)
return p
except Exception:
return Path(tempfile.mkdtemp(prefix="pwdl_"))
@@ -425,17 +426,20 @@ def config_schema() -> List[Dict[str, Any]]:
if context is not None:
context.close()
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to close Playwright context")
try:
if browser is not None:
browser.close()
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to close Playwright browser")
try:
if pw is not None:
pw.stop()
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to stop Playwright engine")
def goto(self, page: Any, url: str) -> None:
"""Navigate with configured timeout."""
@@ -564,7 +568,8 @@ def config_schema() -> List[Dict[str, Any]]:
page.mouse.move(box['x'] + box['width'] / 2, box['y'] + box['height'] / 2)
page.mouse.click(box['x'] + box['width'] / 2, box['y'] + box['height'] / 2)
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to perform mouse click for selector '%s'", selector)
resp = page.wait_for_response(
lambda r: r.status == 200 and any(k.lower() == 'content-disposition' for k in r.headers.keys()),
@@ -583,7 +588,8 @@ def config_schema() -> List[Dict[str, Any]]:
try:
debug(f"[playwright] attempt failed (headless={mode}): {traceback.format_exc()}")
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to emit debug info for Playwright attempt failure")
continue
return PlaywrightDownloadResult(ok=False, error=last_error or "no download captured")
@@ -596,7 +602,8 @@ def config_schema() -> List[Dict[str, Any]]:
f"nav_timeout_ms={self.defaults.navigation_timeout_ms}"
)
except Exception:
pass
from SYS.logger import logger
logger.exception("Failed to debug_dump Playwright defaults")
def _wait_for_block_clear(self, page: Any, timeout_ms: int = 8000) -> bool:
try: