4
4
5
5
from lagrange .client .client import Client , BotFriend
6
6
from lagrange .client .message .elems import Text
7
+ from lagrange .client .message .types import Element
7
8
from lagrange .pb .service .group import GetGrpMemberInfoRspBody
8
9
9
10
from onebot .utils .message_segment import MessageSegment
@@ -33,7 +34,7 @@ async def send_group_msg(self, group_id: int, message: list | str, echo: str, us
33
34
message = self .message_converter .parse_message (message , MessageSegment )
34
35
message_ = await self .message_converter .convert_to_elements (message , group_id )
35
36
elif isinstance (message , str ):
36
- message_ = [Text (message )]
37
+ message_ : List [ Element ] = [Text (message )]
37
38
message = message_
38
39
try :
39
40
seq = await self .client .send_grp_msg (msg_chain = message_ , grp_id = group_id ) # type: ignore
@@ -46,7 +47,7 @@ async def send_group_msg(self, group_id: int, message: list | str, echo: str, us
46
47
uid = self .client .uid ,
47
48
seq = seq ,
48
49
grp_id = group_id ,
49
- msg_chain = [json . dumps ( element . __dict__ , ensure_ascii = False ) for element in message ]
50
+ msg_chain = [segment . __dict__ for segment in ( await self . message_converter . convert_to_segments ( message_ , "grp" , group_id = group_id )) ]
50
51
)
51
52
db .save (msg_content )
52
53
return {"status" : "ok" , "retcode" : 0 , "data" : {"message_id" : message_id }, "echo" : echo }
@@ -59,7 +60,7 @@ async def send_private_msg(self, user_id: int, message: list | str, echo: str, g
59
60
message = self .message_converter .parse_message (message , MessageSegment )
60
61
message_ = await self .message_converter .convert_to_elements (message , 0 , str (uid ))
61
62
elif isinstance (message , str ):
62
- message_ = [Text (message )]
63
+ message_ : List [ Element ] = [Text (message )]
63
64
try :
64
65
seq = await self .client .send_friend_msg (msg_chain = message_ , uid = str (uid )) # type: ignore
65
66
except AssertionError :
@@ -71,7 +72,7 @@ async def send_private_msg(self, user_id: int, message: list | str, echo: str, g
71
72
uid = self .client .uid ,
72
73
seq = seq ,
73
74
grp_id = group_id ,
74
- msg_chain = [( json . dumps ( element . __dict__ , ensure_ascii = False ) for element in message )]
75
+ msg_chain = [segment . __dict__ for segment in ( await self . message_converter . convert_to_segments ( message_ , "grp" , uid = str ( uid )) )]
75
76
)
76
77
db .save (msg_content )
77
78
return {"status" : "ok" , "retcode" : 0 , "data" : {"message_id" : seq }, "echo" : echo }
@@ -125,16 +126,19 @@ async def get_msg(self, message_id: int, echo: str) -> dict:
125
126
if message_event is None :
126
127
return {"status" : "failed" , "retcode" : - 1 , "data" : None , "echo" : echo }
127
128
data = {
128
- "message_type" : "private" ,
129
+ "message_type" : "private" if message_event . grp_id == 0 else "group" ,
129
130
"message_id" : message_event .msg_id ,
130
131
"real_id" : message_event .msg_id ,
131
- "sender" : GroupMessageSender (
132
- user_id = message_event .uin ,
133
- nickname = message_event .nickname
134
- ).model_dump (),
135
- "message" : [json .loads (chain ) for chain in message_event .msg_chain ]
132
+ "sender" : self .message_converter .convert_to_dict (
133
+ GroupMessageSender (
134
+ user_id = message_event .uin ,
135
+ nickname = message_event .nickname
136
+ )
137
+ ),
138
+ "message" : message_event .msg_chain ,
139
+ "time" : message_event .time
136
140
}
137
- return {"status" : "failed " , "retcode" : 0 , "data" : data , "echo" : echo }
141
+ return {"status" : "ok " , "retcode" : 0 , "data" : data , "echo" : echo }
138
142
139
143
async def get_forward_msg (self , id : str , echo : str ) -> dict :
140
144
# Not Impl
0 commit comments