perf👌: 广播与全局插件/被动管理

This commit is contained in:
HibiKier
2024-02-29 03:07:31 +08:00
parent 88bda9ce2c
commit a2d6c7f951
8 changed files with 433 additions and 138 deletions
+69 -22
View File
@@ -1,28 +1,75 @@
import nonebot
from nonebot.plugin import PluginMetadata
from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_saa import Image
# TODO: 消息发送
from zhenxun.configs.config import NICKNAME
from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.configs.utils import PluginExtraData, Task
from zhenxun.models.group_console import GroupConsole
from zhenxun.models.task_info import TaskInfo
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.platform import broadcast_group
# # 早上好
# @scheduler.scheduled_job(
# "cron",
# hour=6,
# minute=1,
# )
# async def _():
# img = image(IMAGE_PATH / "zhenxun" / "zao.jpg")
# await broadcast_group("[[_task|zwa]]早上好" + img, log_cmd="被动早晚安")
# logger.info("每日早安发送...")
__plugin_meta__ = PluginMetadata(
name="早晚安被动技能",
description="早晚安被动技能",
usage="",
extra=PluginExtraData(
author="HibiKier",
version="0.1",
plugin_type=PluginType.HIDDEN,
tasks=[
Task(module="group_welcome", name="进群欢迎"),
Task(module="refund_group_remind", name="退群提醒"),
],
).dict(),
)
driver = nonebot.get_driver()
@driver.on_startup
async def _():
if not await TaskInfo.exists(module="morning_goodnight"):
await TaskInfo.create(
module="morning_goodnight",
name="早晚安",
status=True,
)
async def check(group_id: str, channel_id: str | None) -> bool:
task = await TaskInfo.get_or_none(module="morning_goodnight")
if not task or not task.status:
return False
return await GroupConsole.is_block_task(group_id, "morning_goodnight")
# 早上好
@scheduler.scheduled_job(
"cron",
hour=6,
minute=1,
)
async def _():
img = Image(IMAGE_PATH / "zhenxun" / "zao.jpg")
await broadcast_group("早上好" + img, log_cmd="被动早晚安", check_func=check)
logger.info("每日早安发送...")
# # 睡觉了
# @scheduler.scheduled_job(
# "cron",
# hour=23,
# minute=59,
# )
# async def _():
# img = image(IMAGE_PATH / "zhenxun" / "sleep.jpg")
# await broadcast_group(
# f"[[_task|zwa]]{NICKNAME}要睡觉了,你们也要早点睡呀" + img, log_cmd="被动早晚安"
# )
# logger.info("每日晚安发送...")
@scheduler.scheduled_job(
"cron",
hour=23,
minute=59,
)
async def _():
img = Image(IMAGE_PATH / "zhenxun" / "sleep.jpg")
await broadcast_group(
f"{NICKNAME}要睡觉了,你们也要早点睡呀" + img,
log_cmd="被动早晚安",
check_func=check,
)
logger.info("每日晚安发送...")