fix:删除消息能力

This commit is contained in:
jxxghp
2025-06-22 10:04:21 +08:00
parent bd241a5164
commit 269ab9adfc
4 changed files with 12 additions and 21 deletions

View File

@@ -275,7 +275,8 @@ class MessageChain(ChainBase):
# 保存缓存
self.save_cache(user_cache, self._cache_file)
# 删除原消息
if ChannelCapabilityManager.supports_deletion(channel):
if (original_message_id and original_chat_id and
ChannelCapabilityManager.supports_deletion(channel)):
self.delete_message(
channel=channel,
source=source,
@@ -289,9 +290,7 @@ class MessageChain(ChainBase):
title=mediainfo.title,
items=contexts[:self._page_size],
userid=userid,
total=len(contexts),
original_message_id=original_message_id,
original_chat_id=original_chat_id)
total=len(contexts))
elif cache_type in ["Subscribe", "ReSubscribe"]:
# 订阅或洗版媒体
@@ -490,9 +489,7 @@ class MessageChain(ChainBase):
source=source,
title=meta.name,
items=medias[:self._page_size],
userid=userid, total=len(medias),
original_message_id=original_message_id,
original_chat_id=original_chat_id)
userid=userid, total=len(medias))
else:
# 广播事件
self.eventmanager.send_event(
@@ -541,15 +538,9 @@ class MessageChain(ChainBase):
# 解析系统回调数据
try:
page_text = callback_data.split("_", 1)[1]
if callback_data.startswith('page_'):
# 翻页操作原位更新消息
self.handle_message(channel=channel, source=source, userid=userid, username=username,
text=page_text,
original_message_id=original_message_id, original_chat_id=original_chat_id)
else:
# 处理新消息
self.handle_message(channel=channel, source=source, userid=userid, username=username,
text=page_text)
self.handle_message(channel=channel, source=source, userid=userid, username=username,
text=page_text,
original_message_id=original_message_id, original_chat_id=original_chat_id)
except IndexError:
logger.error(f"回调数据格式错误:{callback_data}")
self.post_message(Notification(

View File

@@ -334,7 +334,7 @@ class SlackModule(_ModuleBase, _MessageBase[Slack]):
success = False
for conf in self.get_configs().values():
if channel != self._channel:
continue
break
if source != conf.name:
continue
client: Slack = self.get_instance(conf.name)

View File

@@ -158,7 +158,7 @@ class Slack:
"emoji": True
},
"url": button["url"],
"action_id": f"actionId-url-{len(elements)}"
"action_id": f"actionId-url-{button.get('text', 'url')}-{len(elements)}"
})
else:
# 回调按钮
@@ -300,7 +300,7 @@ class Slack:
"emoji": True
},
"url": button["url"],
"action_id": f"actionId-url-{len(elements)}"
"action_id": f"actionId-url-{button.get('text', 'url')}-{len(elements)}"
})
else:
elements.append({
@@ -465,7 +465,7 @@ class Slack:
"emoji": True
},
"url": button["url"],
"action_id": f"actionId-url-{len(elements)}"
"action_id": f"actionId-url-{button.get('text', 'url')}-{len(elements)}"
})
else:
elements.append({

View File

@@ -299,7 +299,7 @@ class TelegramModule(_ModuleBase, _MessageBase[Telegram]):
success = False
for conf in self.get_configs().values():
if channel != self._channel:
continue
break
if source != conf.name:
continue
client: Telegram = self.get_instance(conf.name)