mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-07-11 18:03:02 +08:00
stop playwright when finish
This commit is contained in:
parent
4aeff4ad95
commit
fcb12b93ef
@ -12,7 +12,7 @@ import nonebot
|
|||||||
from nonebot.adapters.cqhttp.message import MessageSegment
|
from nonebot.adapters.cqhttp.message import MessageSegment
|
||||||
from nonebot.log import logger
|
from nonebot.log import logger
|
||||||
from playwright._impl._driver import compute_driver_executable
|
from playwright._impl._driver import compute_driver_executable
|
||||||
from playwright.async_api import Browser, Page, async_playwright
|
from playwright.async_api import Browser, Page, async_playwright, Playwright
|
||||||
|
|
||||||
from .plugin_config import plugin_config
|
from .plugin_config import plugin_config
|
||||||
|
|
||||||
@ -40,8 +40,7 @@ class Render(metaclass=Singleton):
|
|||||||
self.interval_log = ''
|
self.interval_log = ''
|
||||||
self.remote_browser = False
|
self.remote_browser = False
|
||||||
|
|
||||||
async def get_browser(self) -> Browser:
|
async def get_browser(self, playwright: Playwright) -> Browser:
|
||||||
playwright = await async_playwright().start()
|
|
||||||
if plugin_config.bison_browser:
|
if plugin_config.bison_browser:
|
||||||
if plugin_config.bison_browser.startswith('local:'):
|
if plugin_config.bison_browser.startswith('local:'):
|
||||||
path = plugin_config.bison_browser.split('local:', 1)[1]
|
path = plugin_config.bison_browser.split('local:', 1)[1]
|
||||||
@ -81,7 +80,8 @@ class Render(metaclass=Singleton):
|
|||||||
async def do_render(self, url: str, viewport: Optional[dict] = None, target: Optional[str] = None,
|
async def do_render(self, url: str, viewport: Optional[dict] = None, target: Optional[str] = None,
|
||||||
operation: Optional[Callable[[Page], Awaitable[None]]] = None) -> Optional[bytes]:
|
operation: Optional[Callable[[Page], Awaitable[None]]] = None) -> Optional[bytes]:
|
||||||
async with self.lock:
|
async with self.lock:
|
||||||
self.browser = await self.get_browser()
|
async with async_playwright() as playwright:
|
||||||
|
self.browser = await self.get_browser(playwright)
|
||||||
self._inter_log('open browser')
|
self._inter_log('open browser')
|
||||||
if viewport:
|
if viewport:
|
||||||
constext = await self.browser.new_context(
|
constext = await self.browser.new_context(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user