zhenxun_bot/utils/browser.py

42 lines
1.0 KiB
Python
Raw Normal View History

2021-06-30 19:50:55 +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
2021-09-05 02:21:38 +08:00
import platform
2021-06-30 19:50:55 +08:00
driver: Driver = nonebot.get_driver()
_browser: Optional[Browser] = None
async def init(**kwargs) -> Optional[Browser]:
2021-09-05 02:21:38 +08:00
if platform.system() == "Windows":
return None
try:
global _browser
browser = await async_playwright().start()
_browser = await browser.chromium.launch(**kwargs)
return _browser
except NotImplementedError:
logger.warning("win环境下 初始化playwright失败....请替换环境至linux")
return None
2021-06-30 19:50:55 +08:00
async def get_browser(**kwargs) -> Browser:
return _browser or await init(**kwargs)
@driver.on_startup
def install():
"""自动安装、更新 Chromium"""
logger.info("正在检查 Chromium 更新")
import sys
from playwright.__main__ import main
2021-07-30 21:21:51 +08:00
sys.argv = ["", "install", "chromium"]
main()