diff --git a/backend/pashub_fetcher/handler/handler.py b/backend/pashub_fetcher/handler/handler.py index 2fe2af1d..3d22ef44 100644 --- a/backend/pashub_fetcher/handler/handler.py +++ b/backend/pashub_fetcher/handler/handler.py @@ -1,6 +1,6 @@ -from typing import Any, Mapping +from typing import Any, Dict, Mapping -from playwright.sync_api import sync_playwright +from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError from utils.logger import setup_logger @@ -8,13 +8,47 @@ from utils.logger import setup_logger logger = setup_logger() -def handler(event: Mapping[str, Any], context: Any) -> None: +def handler(event: Mapping[str, Any], context: Any) -> Dict[str, str]: logger.info("Starting Playwright flow") + email = "random@test.com" + password = "my_fake_password" + with sync_playwright() as p: - browser = p.chromium.launch(headless=True) + browser = p.chromium.launch( + headless=True, + args=["--no-sandbox", "--disable-dev-shm-usage"], + ) page = browser.new_page() - page.goto("https://pashub.net/") + try: + logger.info("Navigating to site...") + page.goto("https://pashub.net/", timeout=30000) - logger.info(f"Page title: {page.title()}") + logger.info("Filling login form...") + page.fill("#email", email) + page.fill("#password", password) + + logger.info("Submitting login...") + page.click("#btn-login") + + page.wait_for_timeout(3000) + + if "login" in page.url.lower(): + logger.error("Login failed (still on login page)") + return {"status": "error", "message": "Login failed"} + + logger.info(f"Login likely successful. URL: {page.url}") + + return {"status": "ok"} + + except PlaywrightTimeoutError as e: + logger.error(f"Timeout during login flow: {str(e)}") + return {"status": "error", "message": "Timeout during login"} + + except Exception as e: + logger.error(f"Unexpected error: {str(e)}") + return {"status": "error", "message": str(e)} + + finally: + browser.close() diff --git a/backend/pashub_fetcher/local_handler/docker-compose.yml b/backend/pashub_fetcher/local_handler/docker-compose.yml index 0ee53283..34ba9277 100644 --- a/backend/pashub_fetcher/local_handler/docker-compose.yml +++ b/backend/pashub_fetcher/local_handler/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: - categorisation-lambda: + pashub-fetcher-lambda: build: context: ../../../ dockerfile: backend/pashub_fetcher/handler/Dockerfile