diff --git a/backend/app/channels/feishu.py b/backend/app/channels/feishu.py index d540a5dba..fa1c4a5d3 100644 --- a/backend/app/channels/feishu.py +++ b/backend/app/channels/feishu.py @@ -98,7 +98,10 @@ class FeishuChannel(Channel): return ( lark.EventDispatcherHandler.builder("", "") .register_p2_im_message_receive_v1(self._on_message) - .register_p2_im_message_message_read_v1(self._on_message_read) + .register_p2_im_message_message_read_v1(self._on_ignored_message_event) + .register_p2_im_message_reaction_created_v1(self._on_ignored_message_event) + .register_p2_im_message_reaction_deleted_v1(self._on_ignored_message_event) + .register_p2_im_message_recalled_v1(self._on_ignored_message_event) .build() ) @@ -209,8 +212,8 @@ class FeishuChannel(Channel): logger.exception("Feishu WebSocket error") self._running = False - def _on_message_read(self, event) -> None: - logger.debug("[Feishu] ignoring message read event: %s", type(event).__name__) + def _on_ignored_message_event(self, event) -> None: + logger.debug("[Feishu] ignoring non-content message event: %s", type(event).__name__) async def stop(self) -> None: self._running = False diff --git a/backend/tests/test_feishu_parser.py b/backend/tests/test_feishu_parser.py index fa0701fe5..34afb107d 100644 --- a/backend/tests/test_feishu_parser.py +++ b/backend/tests/test_feishu_parser.py @@ -83,7 +83,7 @@ def test_feishu_is_not_running_when_ws_thread_exits(): assert channel.is_running is False -def test_feishu_event_handler_ignores_message_read_events(): +def test_feishu_event_handler_ignores_non_content_message_events(): import lark_oapi as lark bus = MessageBus() @@ -93,6 +93,9 @@ def test_feishu_event_handler_ignores_message_read_events(): assert "p2.im.message.receive_v1" in event_handler._processorMap assert "p2.im.message.message_read_v1" in event_handler._processorMap + assert "p2.im.message.reaction.created_v1" in event_handler._processorMap + assert "p2.im.message.reaction.deleted_v1" in event_handler._processorMap + assert "p2.im.message.recalled_v1" in event_handler._processorMap def test_feishu_on_message_rich_text():