zhenxun_bot/utils/browser.py

45 lines
1.1 KiB
Python
Raw Permalink 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]:
if platform.system() == "Windows":
return None
try:
global _browser
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失败相关功能将被限制....")
2021-11-23 21:44:59 +08:00
return None
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