From fbc94fa8e1ad189bd748da390184cdc65cbe7fc4 Mon Sep 17 00:00:00 2001 From: Mikhail Kucherenko Date: Fri, 8 Aug 2025 00:58:36 +0300 Subject: [PATCH 1/2] Hotfix bug with captions messages --- bot/bot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/bot.py b/bot/bot.py index 59a7887..2172b3e 100644 --- a/bot/bot.py +++ b/bot/bot.py @@ -644,7 +644,7 @@ def __init__(self, cache): def check(self, event, dispatcher): if super(SkipDuplicateMessageHandler, self).check(event=event, dispatcher=dispatcher): - if self.cache.get(event.data["msgId"]) == event.data["text"]: + if self.cache.get(event.data["msgId"]) == event.data.get("text", False): raise StopDispatching From f7e8348bd8968703ef35b68dfd831796844874d0 Mon Sep 17 00:00:00 2001 From: Mikhail Kucherenko Date: Fri, 8 Aug 2025 01:02:11 +0300 Subject: [PATCH 2/2] Add capturing of messages with captions to MessageFilter --- bot/filter.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bot/filter.py b/bot/filter.py index d3159a2..f8980fe 100644 --- a/bot/filter.py +++ b/bot/filter.py @@ -75,7 +75,9 @@ def filter(self, event): class MessageFilter(FilterBase): def filter(self, event): - return "text" in event.data and isinstance(event.data["text"], six.string_types) + return ("text" in event.data and isinstance(event.data["text"], six.string_types)) or ( + "parts" in event.data and any(p.get("payload", {}).get("caption") for p in event.data["parts"]) + ) class CommandFilter(MessageFilter):