mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-06-11 18:05:58 +00:00
Ignore Feishu message read events
This commit is contained in:
@@ -94,6 +94,14 @@ class FeishuChannel(Channel):
|
||||
return False
|
||||
return self._thread is not None and self._thread.is_alive()
|
||||
|
||||
def _build_event_handler(self, lark):
|
||||
return (
|
||||
lark.EventDispatcherHandler.builder("", "")
|
||||
.register_p2_im_message_receive_v1(self._on_message)
|
||||
.register_p2_im_message_message_read_v1(self._on_message_read)
|
||||
.build()
|
||||
)
|
||||
|
||||
async def start(self) -> None:
|
||||
if self._running:
|
||||
return
|
||||
@@ -187,7 +195,7 @@ class FeishuChannel(Channel):
|
||||
# thread's uvloop.
|
||||
_ws_client_mod.loop = loop
|
||||
|
||||
event_handler = lark.EventDispatcherHandler.builder("", "").register_p2_im_message_receive_v1(self._on_message).build()
|
||||
event_handler = self._build_event_handler(lark)
|
||||
ws_client = lark.ws.Client(
|
||||
app_id=app_id,
|
||||
app_secret=app_secret,
|
||||
@@ -201,6 +209,9 @@ 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__)
|
||||
|
||||
async def stop(self) -> None:
|
||||
self._running = False
|
||||
self.bus.unsubscribe_outbound(self._on_outbound)
|
||||
|
||||
@@ -83,6 +83,18 @@ 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():
|
||||
import lark_oapi as lark
|
||||
|
||||
bus = MessageBus()
|
||||
channel = FeishuChannel(bus, {"app_id": "test", "app_secret": "test"})
|
||||
|
||||
event_handler = channel._build_event_handler(lark)
|
||||
|
||||
assert "p2.im.message.receive_v1" in event_handler._processorMap
|
||||
assert "p2.im.message.message_read_v1" in event_handler._processorMap
|
||||
|
||||
|
||||
def test_feishu_on_message_rich_text():
|
||||
bus = MessageBus()
|
||||
config = {"app_id": "test", "app_secret": "test"}
|
||||
|
||||
Reference in New Issue
Block a user