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 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):