split up application
Build and Push Docker Images / build-and-push (push) Successful in 33s

This commit is contained in:
2025-05-02 21:15:30 +02:00
parent 2b893ca47a
commit de3919a4b5
15 changed files with 1020 additions and 1 deletions
@@ -0,0 +1 @@
# This file is intentionally left empty to make the directory a Python package
@@ -0,0 +1,43 @@
from pyppeteer import launch
from app.config import CUSTOM_USER_AGENT
async def wait_for_network_idle(page):
"""Wait until no network requests are in flight"""
await page.waitForNetworkIdle(idleTime=500, timeout=30000)
async def safe_browser_operation(url, operation_func):
"""Safely perform browser operations with proper cleanup"""
browser = None
try:
browser = await launch(
headless=True,
executablePath='/usr/bin/google-chrome',
args=['--no-sandbox', '--disable-setuid-sandbox'],
handleSIGINT=False,
handleSIGTERM=False,
handleSIGHUP=False
)
# Create new page with timeout
page = await browser.newPage()
page.setDefaultNavigationTimeout(30000)
# Set custom user agent
await page.setUserAgent(CUSTOM_USER_AGENT)
# Call the operation function that uses the page
result = await operation_func(page)
# Explicitly close the page
await page.close()
return result
finally:
# Ensure browser is closed properly
if browser:
try:
await browser.close()
except Exception as e:
print(f"Error closing browser: {e}")
# We don't re-raise here to avoid masking the original error