14
14
RichText ,
15
15
QQMessage ,
16
16
AudioAction ,
17
+ FriendAuthor ,
17
18
MessageDelete ,
18
19
MessageAudited ,
19
20
ForumSourceInfo ,
20
21
MessageReaction ,
21
22
ForumAuditResult ,
22
23
ButtonInteraction ,
24
+ GroupMemberAuthor ,
23
25
)
24
26
25
27
E = TypeVar ("E" , bound = "Event" )
@@ -348,14 +350,6 @@ class DirectMessageDeleteEvent(MessageDeleteEvent):
348
350
class QQMessageEvent (MessageEvent , QQMessage ):
349
351
_reply_seq : int = - 1
350
352
351
- @override
352
- def get_user_id (self ) -> str :
353
- return self .author .id
354
-
355
- @override
356
- def get_session_id (self ) -> str :
357
- return self .author .id
358
-
359
353
@override
360
354
def get_message (self ) -> Message :
361
355
if not hasattr (self , "_message" ):
@@ -367,37 +361,48 @@ def get_message(self) -> Message:
367
361
class C2CMessageCreateEvent (QQMessageEvent ):
368
362
__type__ = EventType .C2C_MESSAGE_CREATE
369
363
364
+ author : FriendAuthor
370
365
to_me : bool = True
371
366
367
+ @override
368
+ def get_user_id (self ) -> str :
369
+ return self .author .user_openid
370
+
371
+ @override
372
+ def get_session_id (self ) -> str :
373
+ return f"friend_{ self .author .user_openid } "
374
+
372
375
@override
373
376
def get_event_description (self ) -> str :
374
377
return escape_tag (
375
378
f"Message { self .id } from { self .author .id } : { self .get_message ()!r} "
376
379
)
377
380
378
- @override
379
- def get_session_id (self ) -> str :
380
- return f"friend_{ self .author .id } "
381
-
382
381
383
382
@register_event_class
384
383
class GroupAtMessageCreateEvent (QQMessageEvent ):
385
384
__type__ = EventType .GROUP_AT_MESSAGE_CREATE
386
385
386
+ author : GroupMemberAuthor
387
387
group_id : str
388
388
to_me : bool = True
389
389
390
+ @override
391
+ def get_user_id (self ) -> str :
392
+ return self .author .member_openid
393
+
394
+ @override
395
+ def get_session_id (self ) -> str :
396
+ return f"group_{ self .group_id } _{ self .author .member_openid } "
397
+
390
398
@override
391
399
def get_event_description (self ) -> str :
392
400
return escape_tag (
393
- f"Message { self .id } from { self .author .id } @[Group:{ self .group_id } ]: "
401
+ f"Message { self .id } from "
402
+ f"{ self .author .member_openid } @[Group:{ self .group_id } ]: "
394
403
f"{ self .get_message ()!r} "
395
404
)
396
405
397
- @override
398
- def get_session_id (self ) -> str :
399
- return f"group_{ self .group_id } _{ self .author .id } "
400
-
401
406
402
407
@register_event_class
403
408
class InteractionCreateEvent (NoticeEvent , ButtonInteraction ):
0 commit comments