mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-08 13:20:01 +08:00
update 0.0.6.2
This commit is contained in:
Regular → Executable
+14
-10
@@ -38,12 +38,15 @@ ALC_PATH.mkdir(parents=True, exist_ok=True)
|
||||
@almanac.handle()
|
||||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||
alc_img = await get_alc_image(ALC_PATH)
|
||||
mes = alc_img + "\n ※ 黄历数据来源于 genshin.pub"
|
||||
await almanac.send(mes)
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
|
||||
f" 发送查看原神黄历"
|
||||
)
|
||||
if alc_img:
|
||||
mes = alc_img + "\n ※ 黄历数据来源于 genshin.pub"
|
||||
await almanac.send(mes)
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
|
||||
f" 发送查看原神黄历"
|
||||
)
|
||||
else:
|
||||
await almanac.send("黄历图片下载失败...")
|
||||
|
||||
|
||||
@scheduler.scheduled_job(
|
||||
@@ -58,7 +61,8 @@ async def _():
|
||||
gl = await bot.get_group_list()
|
||||
gl = [g["group_id"] for g in gl]
|
||||
alc_img = await get_alc_image(ALC_PATH)
|
||||
mes = alc_img + "\n ※ 黄历数据来源于 genshin.pub"
|
||||
for gid in gl:
|
||||
if await group_manager.check_group_task_status(gid, "genshin_alc"):
|
||||
await bot.send_group_msg(group_id=int(gid), message=mes)
|
||||
if alc_img:
|
||||
mes = alc_img + "\n ※ 黄历数据来源于 genshin.pub"
|
||||
for gid in gl:
|
||||
if await group_manager.check_group_task_status(gid, "genshin_alc"):
|
||||
await bot.send_group_msg(group_id=int(gid), message=mes)
|
||||
|
||||
Regular → Executable
+26
-43
@@ -1,43 +1,26 @@
|
||||
from utils.browser import get_browser
|
||||
from utils.message_builder import image
|
||||
from datetime import datetime
|
||||
from services.log import logger
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
url = "https://genshin.pub"
|
||||
|
||||
|
||||
async def get_alc_image(path: Path):
|
||||
date = datetime.now().date()
|
||||
for file in os.listdir(path):
|
||||
if f'{date}.png' != file:
|
||||
file = path / file
|
||||
file.unlink()
|
||||
if f'{date}.png' in os.listdir(path):
|
||||
return image(f'{date}.png', 'genshin/alc')
|
||||
page = None
|
||||
try:
|
||||
browser = await get_browser()
|
||||
page = await browser.new_page()
|
||||
await page.goto(url, wait_until="networkidle", timeout=10000)
|
||||
await page.set_viewport_size({"width": 2560, "height": 1080})
|
||||
card = await page.query_selector('.GSAlmanacs_gs_almanacs__3qT_A')
|
||||
await card.screenshot(path=path / f'{date}.png', timeout=100000)
|
||||
except Exception as e:
|
||||
logger.error(f'获取原神黄历发生错误..{type(e)}: {e}')
|
||||
finally:
|
||||
if page:
|
||||
await page.close()
|
||||
return image(f'{date}.png', 'genshin/alc')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
from utils.message_builder import image
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from utils.http_utils import AsyncPlaywright
|
||||
from nonebot.adapters.cqhttp import MessageSegment
|
||||
from typing import Optional
|
||||
import os
|
||||
|
||||
url = "https://genshin.pub"
|
||||
|
||||
|
||||
async def get_alc_image(path: Path) -> Optional[MessageSegment]:
|
||||
"""
|
||||
截取黄历
|
||||
:param path: 存储路径
|
||||
"""
|
||||
date = datetime.now().date()
|
||||
for file in os.listdir(path):
|
||||
if f"{date}.png" != file:
|
||||
file = path / file
|
||||
file.unlink()
|
||||
if f"{date}.png" in os.listdir(path):
|
||||
return image(f"{date}.png", "genshin/alc")
|
||||
return await AsyncPlaywright.screenshot(
|
||||
url, path / f"{date}.png", ".GSAlmanacs_gs_almanacs__3qT_A"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user