mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
⚡️ 优化截图逻辑
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
from nonebot import get_plugin_config
|
from nonebot import get_plugin_config
|
||||||
from playwright.async_api import TimeoutError
|
from playwright.async_api import TimeoutError, ViewportSize
|
||||||
|
|
||||||
from ..config.config import Config
|
from ..config.config import Config
|
||||||
from .browser import BrowserManager
|
from .browser import BrowserManager
|
||||||
@@ -12,10 +12,18 @@ config = get_plugin_config(Config)
|
|||||||
async def screenshot(url: str) -> bytes:
|
async def screenshot(url: str) -> bytes:
|
||||||
browser = await BrowserManager.get_browser()
|
browser = await BrowserManager.get_browser()
|
||||||
async with (
|
async with (
|
||||||
await browser.new_page(
|
await browser.new_page(device_scale_factor=config.tetris_screenshot_quality) as page,
|
||||||
viewport={'width': 3000, 'height': 3000}, device_scale_factor=config.tetris_screenshot_quality
|
|
||||||
) as page,
|
|
||||||
):
|
):
|
||||||
await page.goto(url)
|
await page.goto(url)
|
||||||
await page.wait_for_load_state('networkidle')
|
await page.wait_for_load_state('networkidle')
|
||||||
|
size: ViewportSize = await page.evaluate("""
|
||||||
|
() => {
|
||||||
|
const element = document.querySelector('#content');
|
||||||
|
return {
|
||||||
|
width: element.offsetWidth,
|
||||||
|
height: element.offsetHeight,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
""")
|
||||||
|
await page.set_viewport_size(size)
|
||||||
return await page.locator('id=content').screenshot(timeout=5000, type='png')
|
return await page.locator('id=content').screenshot(timeout=5000, type='png')
|
||||||
|
|||||||
Reference in New Issue
Block a user