mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-11-04 08:56:42 +00:00 
			
		
		
		
	🚸 add support of rule to_me in mirai adapter
				
					
				
			This commit is contained in:
		@@ -80,8 +80,8 @@ class Event(BaseEvent):
 | 
			
		||||
                return event_class.parse_obj(data)
 | 
			
		||||
            except ValidationError as e:
 | 
			
		||||
                logger.info(
 | 
			
		||||
                    f'Failed to parse {data} to class {event_class.__name__}: {e}. '
 | 
			
		||||
                    'Fallback to parent class.')
 | 
			
		||||
                    f'Failed to parse {data} to class {event_class.__name__}: '
 | 
			
		||||
                    f'{e.errors()!r}. Fallback to parent class.')
 | 
			
		||||
                event_class = event_class.__base__
 | 
			
		||||
 | 
			
		||||
        raise ValueError(f'Failed to serialize {data}.')
 | 
			
		||||
 
 | 
			
		||||
@@ -33,11 +33,20 @@ class MessageEvent(Event):
 | 
			
		||||
class GroupMessage(MessageEvent):
 | 
			
		||||
    """群消息事件"""
 | 
			
		||||
    sender: GroupChatInfo
 | 
			
		||||
    to_me: bool = False
 | 
			
		||||
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def get_session_id(self) -> str:
 | 
			
		||||
        return f'group_{self.sender.group.id}_' + self.get_user_id()
 | 
			
		||||
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def get_user_id(self) -> str:
 | 
			
		||||
        return str(self.sender.id)
 | 
			
		||||
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def is_tome(self) -> bool:
 | 
			
		||||
        return self.to_me
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FriendMessage(MessageEvent):
 | 
			
		||||
    """好友消息事件"""
 | 
			
		||||
@@ -47,15 +56,23 @@ class FriendMessage(MessageEvent):
 | 
			
		||||
    def get_user_id(self) -> str:
 | 
			
		||||
        return str(self.sender.id)
 | 
			
		||||
 | 
			
		||||
    @overrides
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def get_session_id(self) -> str:
 | 
			
		||||
        return 'friend_' + self.get_user_id()
 | 
			
		||||
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def is_tome(self) -> bool:
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TempMessage(MessageEvent):
 | 
			
		||||
    """临时会话消息事件"""
 | 
			
		||||
    sender: GroupChatInfo
 | 
			
		||||
 | 
			
		||||
    @overrides
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def get_session_id(self) -> str:
 | 
			
		||||
        return f'temp_{self.sender.group.id}_' + self.get_user_id()
 | 
			
		||||
 | 
			
		||||
    @overrides(MessageEvent)
 | 
			
		||||
    def is_tome(self) -> bool:
 | 
			
		||||
        return True
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user