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 False
|
||||||
return self._thread is not None and self._thread.is_alive()
|
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:
|
async def start(self) -> None:
|
||||||
if self._running:
|
if self._running:
|
||||||
return
|
return
|
||||||
@@ -187,7 +195,7 @@ class FeishuChannel(Channel):
|
|||||||
# thread's uvloop.
|
# thread's uvloop.
|
||||||
_ws_client_mod.loop = loop
|
_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(
|
ws_client = lark.ws.Client(
|
||||||
app_id=app_id,
|
app_id=app_id,
|
||||||
app_secret=app_secret,
|
app_secret=app_secret,
|
||||||
@@ -201,6 +209,9 @@ class FeishuChannel(Channel):
|
|||||||
logger.exception("Feishu WebSocket error")
|
logger.exception("Feishu WebSocket error")
|
||||||
self._running = False
|
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:
|
async def stop(self) -> None:
|
||||||
self._running = False
|
self._running = False
|
||||||
self.bus.unsubscribe_outbound(self._on_outbound)
|
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
|
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():
|
def test_feishu_on_message_rich_text():
|
||||||
bus = MessageBus()
|
bus = MessageBus()
|
||||||
config = {"app_id": "test", "app_secret": "test"}
|
config = {"app_id": "test", "app_secret": "test"}
|
||||||
|
|||||||
Reference in New Issue
Block a user