From ef259bd73cdfe3e1d1f78d8f27de4a785a3bfcb7 Mon Sep 17 00:00:00 2001 From: XiaM-Admin <1424473282@qq.com> Date: Sun, 25 Jan 2026 19:54:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9A=E4=B8=BA=20danding?= =?UTF-8?q?=5Fqqpush=20=E6=B6=88=E6=81=AF=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E4=BB=A5=E6=94=AF=E6=8C=81=E8=87=AA=E5=8A=A8=E6=92=A4?= =?UTF-8?q?=E5=9B=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- danding_bot/plugins/auto_recall/__init__.py | 9 +++++++++ danding_bot/plugins/auto_recall/config.py | 3 ++- danding_bot/plugins/danding_qqpush/sender.py | 10 ++++++---- data/onmyoji_gacha/gacha.db | Bin 1679360 -> 1691648 bytes 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/danding_bot/plugins/auto_recall/__init__.py b/danding_bot/plugins/auto_recall/__init__.py index 001e592..4769a68 100644 --- a/danding_bot/plugins/auto_recall/__init__.py +++ b/danding_bot/plugins/auto_recall/__init__.py @@ -38,6 +38,15 @@ async def handle_api_result( # 获取撤回延迟时间 recall_delay = plugin_config.recall_delay + # 检查是否为 danding_qqpush 发送的消息 + # danding_qqpush 消息会在 data 中包含 __qqpush_source 标记 + is_qqpush_message = data.get("__qqpush_source") == "danding_qqpush" + + if is_qqpush_message: + # 使用 danding_qqpush 专用的撤回时间 + recall_delay = plugin_config.qqpush_recall_delay + logger.info(f"danding_qqpush 消息将在 {recall_delay} 秒后撤回") + # 启动异步任务,延迟撤回消息 asyncio.create_task(recall_message_after_delay(bot, message_id, recall_delay)) diff --git a/danding_bot/plugins/auto_recall/config.py b/danding_bot/plugins/auto_recall/config.py index e57a695..66866cb 100644 --- a/danding_bot/plugins/auto_recall/config.py +++ b/danding_bot/plugins/auto_recall/config.py @@ -1,4 +1,5 @@ from pydantic import BaseModel, Field class Config(BaseModel): - recall_delay: int = Field(default=110, env="RECALL_DELAY") # 撤回延迟时间,默认 110 秒 \ No newline at end of file + recall_delay: int = Field(default=110, env="RECALL_DELAY") # 撤回延迟时间,默认 110 秒 + qqpush_recall_delay: int = Field(default=3600, env="QQPUSH_RECALL_DELAY") # danding_qqpush 消息撤回延迟时间,默认 3600 秒(1小时) \ No newline at end of file diff --git a/danding_bot/plugins/danding_qqpush/sender.py b/danding_bot/plugins/danding_qqpush/sender.py index f8c750a..6231ff1 100644 --- a/danding_bot/plugins/danding_qqpush/sender.py +++ b/danding_bot/plugins/danding_qqpush/sender.py @@ -73,11 +73,12 @@ class MessageSender: message.append(MessageSegment.at(qq)) message.append(MessageSegment.image(image_base64)) - # 发送群消息 + # 发送群消息,添加 __qqpush_source 标记供 auto_recall 识别 result = await bot.call_api( "send_group_msg", group_id=group_id, - message=message + message=message, + __qqpush_source="danding_qqpush" # 添加标记 ) return { @@ -121,11 +122,12 @@ class MessageSender: message.append(MessageSegment.at(qq)) message.append(MessageSegment.text(text)) - # 发送群消息 + # 发送群消息,添加 __qqpush_source 标记供 auto_recall 识别 result = await bot.call_api( "send_group_msg", group_id=group_id, - message=message + message=message, + __qqpush_source="danding_qqpush" # 添加标记 ) return { diff --git a/data/onmyoji_gacha/gacha.db b/data/onmyoji_gacha/gacha.db index 9146408d315b9b91eebe11fd2a3c839086656834..bb8cdc30cfb65201eba9e9cdc4f8cd309df11a2e 100644 GIT binary patch delta 18559 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