Files
zhenxun_bot/utils/browser.py
T

50 lines
1.1 KiB
Python
Raw Normal View History

2022-06-18 14:31:44 +08:00
import asyncio
2021-11-23 21:44:59 +08:00
from typing import Optional
from nonebot import get_driver
2021-11-23 21:44:59 +08:00
from nonebot.log import logger
from playwright.async_api import Browser, Playwright, async_playwright
2021-11-23 21:44:59 +08:00
from services.log import logger
driver = get_driver()
2021-11-23 21:44:59 +08:00
_playwright: Optional[Playwright] = None
2021-11-23 21:44:59 +08:00
_browser: Optional[Browser] = None
@driver.on_startup
async def start_browser():
global _playwright
2022-04-26 14:45:04 +08:00
global _browser
_playwright = await async_playwright().start()
_browser = await _playwright.chromium.launch()
2021-11-23 21:44:59 +08:00
@driver.on_shutdown
async def shutdown_browser():
if _browser:
await _browser.close()
if _playwright:
_playwright.stop()
def get_browser() -> Browser:
if not _browser:
raise RuntimeError("playwright is not initalized")
return _browser
2021-11-23 21:44:59 +08:00
def install():
"""自动安装、更新 Chromium"""
logger.info("正在检查 Chromium 更新")
import sys
2021-11-23 21:44:59 +08:00
from playwright.__main__ import main
sys.argv = ["", "install", "chromium"]
2022-02-19 18:20:19 +08:00
try:
main()
except SystemExit:
pass