zhenxun_bot/utils/browser.py

47 lines
1.2 KiB
Python
Raw Normal View History

2021-11-23 21:44:59 +08:00
from typing import Optional
from nonebot.log import logger
from playwright.async_api import Browser, async_playwright
import nonebot
from nonebot import Driver
from services.log import logger
import platform
driver: Driver = nonebot.get_driver()
_browser: Optional[Browser] = None
async def init(**kwargs) -> Optional[Browser]:
2022-04-26 14:45:04 +08:00
global _browser
2021-11-23 21:44:59 +08:00
try:
browser = await async_playwright().start()
_browser = await browser.chromium.launch(**kwargs)
return _browser
except NotImplementedError:
2021-12-16 11:16:28 +08:00
logger.warning("win环境下 初始化playwright失败相关功能将被限制....")
2022-04-26 14:45:04 +08:00
except Exception as e:
logger.warning(f"启动chromium发生错误 {type(e)}{e}")
if _browser:
await _browser.close()
return None
2021-11-23 21:44:59 +08:00
async def get_browser(**kwargs) -> Browser:
return _browser or await init(**kwargs)
2022-02-19 18:20:19 +08:00
# @driver.on_startup
2021-11-23 21:44:59 +08:00
def install():
"""自动安装、更新 Chromium"""
logger.info("正在检查 Chromium 更新")
import sys
from playwright.__main__ import main
sys.argv = ["", "install", "chromium"]
2022-02-19 18:20:19 +08:00
try:
main()
except SystemExit:
pass