Merge pull request #1154 from Yi-Lyu/master

将微信消息时间戳传递给 dify,便于 dify 通过消息时间戳来做业务逻辑。
This commit is contained in:
Junyan Qin (Chin)
2025-03-02 20:21:08 +08:00
committed by GitHub
4 changed files with 26 additions and 5 deletions
+2 -2
View File
@@ -77,7 +77,7 @@ class DingTalkEventConverter(adapter.EventConverter):
remark="" remark=""
), ),
message_chain = message_chain, message_chain = message_chain,
time = datetime.datetime.now(), time = event.incoming_message.create_at,
source_platform_object=event, source_platform_object=event,
) )
elif event.conversation == 'GroupMessage': elif event.conversation == 'GroupMessage':
@@ -95,7 +95,7 @@ class DingTalkEventConverter(adapter.EventConverter):
last_speak_timestamp=0, last_speak_timestamp=0,
mute_time_remaining=0 mute_time_remaining=0
) )
time = datetime.datetime.now(), time = event.incoming_message.create_at
return platform_events.GroupMessage( return platform_events.GroupMessage(
sender =sender, sender =sender,
message_chain = message_chain, message_chain = message_chain,
+15 -3
View File
@@ -74,7 +74,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
remark = "", remark = "",
) )
return platform_events.FriendMessage( return platform_events.FriendMessage(
sender = friend,message_chain = yiri_chain,time = event.timestamp, sender = friend,message_chain = yiri_chain,time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
),
source_platform_object=event source_platform_object=event
) )
@@ -105,7 +109,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
last_speak_timestamp=0, last_speak_timestamp=0,
mute_time_remaining=0 mute_time_remaining=0
) )
time = event.timestamp time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
)
return platform_events.GroupMessage( return platform_events.GroupMessage(
sender = sender, sender = sender,
message_chain=yiri_chain, message_chain=yiri_chain,
@@ -128,7 +136,11 @@ class QQOfficialEventConverter(adapter.EventConverter):
last_speak_timestamp=0, last_speak_timestamp=0,
mute_time_remaining=0 mute_time_remaining=0
) )
time = event.timestamp, time = int(
datetime.datetime.strptime(
event.timestamp, "%Y-%m-%dT%H:%M:%S%z"
).timestamp()
),
return platform_events.GroupMessage( return platform_events.GroupMessage(
sender =sender, sender =sender,
message_chain = yiri_chain, message_chain = yiri_chain,
+3
View File
@@ -57,6 +57,9 @@ class MessageEvent(Event):
message_chain: platform_message.MessageChain message_chain: platform_message.MessageChain
"""消息内容。""" """消息内容。"""
time: float | None = None
"""消息发送时间戳。"""
source_platform_object: typing.Optional[typing.Any] = None source_platform_object: typing.Optional[typing.Any] = None
"""原消息平台对象。 """原消息平台对象。
供消息平台适配器开发者使用,如果回复用户时需要使用原消息事件对象的信息, 供消息平台适配器开发者使用,如果回复用户时需要使用原消息事件对象的信息,
+6
View File
@@ -5,6 +5,7 @@ import json
import uuid import uuid
import re import re
import base64 import base64
import datetime
import aiohttp import aiohttp
@@ -69,6 +70,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
""" """
plain_text = "" plain_text = ""
image_ids = [] image_ids = []
if isinstance(query.user_message.content, list): if isinstance(query.user_message.content, list):
for ce in query.user_message.content: for ce in query.user_message.content:
if ce.type == "text": if ce.type == "text":
@@ -230,6 +232,9 @@ class DifyServiceAPIRunner(runner.RequestRunner):
plain_text, image_ids = await self._preprocess_user_message(query) plain_text, image_ids = await self._preprocess_user_message(query)
# 尝试获取 CreateTime
create_time = int(query.message_event.time) if query.message_event.time else int(datetime.datetime.now().timestamp())
files = [ files = [
{ {
"type": "image", "type": "image",
@@ -246,6 +251,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
"langbot_user_message_text": plain_text, "langbot_user_message_text": plain_text,
"langbot_session_id": f"{query.session.launcher_type.value}_{query.session.launcher_id}", "langbot_session_id": f"{query.session.launcher_type.value}_{query.session.launcher_id}",
"langbot_conversation_id": cov_id, "langbot_conversation_id": cov_id,
"langbot_msg_create_time": create_time,
}, },
user=f"{query.session.launcher_type.value}_{query.session.launcher_id}", user=f"{query.session.launcher_type.value}_{query.session.launcher_id}",
files=files, files=files,