41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
from __future__ import annotations
|
||
|
||
import threading
|
||
from typing import Optional
|
||
|
||
from app_logger import get_logger
|
||
from browser_installer import check_and_install_browser
|
||
from playwright_automation import PlaywrightBrowserManager
|
||
|
||
logger = get_logger("browser_manager")
|
||
|
||
_browser_manager: Optional[PlaywrightBrowserManager] = None
|
||
_lock = threading.Lock()
|
||
|
||
|
||
def get_browser_manager() -> Optional[PlaywrightBrowserManager]:
|
||
return _browser_manager
|
||
|
||
|
||
def init_browser_manager() -> bool:
|
||
global _browser_manager
|
||
|
||
with _lock:
|
||
if _browser_manager is not None:
|
||
return True
|
||
|
||
logger.info("正在初始化Playwright浏览器管理器...")
|
||
if not check_and_install_browser(log_callback=lambda msg, account_id=None: logger.info(str(msg))):
|
||
logger.error("浏览器环境检查失败!")
|
||
return False
|
||
|
||
_browser_manager = PlaywrightBrowserManager(
|
||
headless=True,
|
||
log_callback=lambda msg, account_id=None: logger.info(str(msg)),
|
||
)
|
||
logger.info("Playwright浏览器管理器创建成功!")
|
||
return True
|
||
|