# session.py
from playwright.async_api import async_playwright, Browser, Page
_browser: Browser | None = None
_page: Page | None = None
_playwright = None
async def get_session(token: str, profile_id: str):
global _browser, _page, _playwright
if _browser and _browser.is_connected():
return _browser, _page
url = f'https://cloudbrowser.gologin.com/connect?token={token}&profile={profile_id}'
_playwright = await async_playwright().start()
_browser = await _playwright.chromium.connect_over_cdp(url)
pages = _browser.contexts[0].pages if _browser.contexts else []
_page = pages[0] if pages else await _browser.new_page()
return _browser, _page
async def close_session():
global _browser, _page, _playwright
if _browser:
await _browser.close()
if _playwright:
await _playwright.stop()
_browser = None
_page = None
_playwright = None