From 8963a2117baf7a9c33c9e6c5085d5ff7d969ea8c Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Sun, 2 Mar 2025 20:16:34 +0800 Subject: [PATCH] feat: add field `time` in `MessageEvent` --- pkg/platform/sources/dingtalk.py | 4 ++-- pkg/platform/sources/qqofficial.py | 18 +++++++++++++++--- pkg/platform/types/events.py | 3 +++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pkg/platform/sources/dingtalk.py b/pkg/platform/sources/dingtalk.py index 505ab9a2..97df77d6 100644 --- a/pkg/platform/sources/dingtalk.py +++ b/pkg/platform/sources/dingtalk.py @@ -77,7 +77,7 @@ class DingTalkEventConverter(adapter.EventConverter): remark="" ), message_chain = message_chain, - time = datetime.datetime.now(), + time = event.incoming_message.create_at, source_platform_object=event, ) elif event.conversation == 'GroupMessage': @@ -95,7 +95,7 @@ class DingTalkEventConverter(adapter.EventConverter): last_speak_timestamp=0, mute_time_remaining=0 ) - time = datetime.datetime.now(), + time = event.incoming_message.create_at return platform_events.GroupMessage( sender =sender, message_chain = message_chain, diff --git a/pkg/platform/sources/qqofficial.py b/pkg/platform/sources/qqofficial.py index 518dfdb8..1e08b435 100644 --- a/pkg/platform/sources/qqofficial.py +++ b/pkg/platform/sources/qqofficial.py @@ -74,7 +74,11 @@ class QQOfficialEventConverter(adapter.EventConverter): remark = "", ) 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 ) @@ -105,7 +109,11 @@ class QQOfficialEventConverter(adapter.EventConverter): last_speak_timestamp=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( sender = sender, message_chain=yiri_chain, @@ -128,7 +136,11 @@ class QQOfficialEventConverter(adapter.EventConverter): last_speak_timestamp=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( sender =sender, message_chain = yiri_chain, diff --git a/pkg/platform/types/events.py b/pkg/platform/types/events.py index 867f8a83..57a84f24 100644 --- a/pkg/platform/types/events.py +++ b/pkg/platform/types/events.py @@ -57,6 +57,9 @@ class MessageEvent(Event): message_chain: platform_message.MessageChain """消息内容。""" + time: float + """消息发送时间戳。""" + source_platform_object: typing.Optional[typing.Any] = None """原消息平台对象。 供消息平台适配器开发者使用,如果回复用户时需要使用原消息事件对象的信息,