mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-30 22:46:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			174 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import TYPE_CHECKING
 | ||
| 
 | ||
| from pydantic import Field
 | ||
| from typing_extensions import Literal
 | ||
| 
 | ||
| from .base import Event
 | ||
| 
 | ||
| if TYPE_CHECKING:
 | ||
|     from ..bot import Bot
 | ||
| 
 | ||
| 
 | ||
| class RequestEvent(Event):
 | ||
|     """请求事件基类"""
 | ||
|     event_id: int = Field(alias='eventId')
 | ||
|     message: str
 | ||
|     nick: str
 | ||
| 
 | ||
| 
 | ||
| class NewFriendRequestEvent(RequestEvent):
 | ||
|     """添加好友申请"""
 | ||
|     from_id: int = Field(alias='fromId')
 | ||
|     group_id: int = Field(0, alias='groupId')
 | ||
| 
 | ||
|     async def approve(self, bot: "Bot"):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           通过此人的好友申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|         """
 | ||
|         return await bot.api.post('/resp/newFriendRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': 0,
 | ||
|                                       'message': ''
 | ||
|                                   })
 | ||
| 
 | ||
|     async def reject(self,
 | ||
|                      bot: "Bot",
 | ||
|                      operate: Literal[1, 2] = 1,
 | ||
|                      message: str = ''):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           拒绝此人的好友申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|           * ``operate: Literal[1, 2]``: 响应的操作类型
 | ||
| 
 | ||
|             * ``1``: 拒绝添加好友
 | ||
|             * ``2``: 拒绝添加好友并添加黑名单,不再接收该用户的好友申请
 | ||
| 
 | ||
|           * ``message: str``: 回复的信息
 | ||
|         """
 | ||
|         assert operate > 0
 | ||
|         return await bot.api.post('/resp/newFriendRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': operate,
 | ||
|                                       'message': message
 | ||
|                                   })
 | ||
| 
 | ||
| 
 | ||
| class MemberJoinRequestEvent(RequestEvent):
 | ||
|     """用户入群申请(Bot需要有管理员权限)"""
 | ||
|     from_id: int = Field(alias='fromId')
 | ||
|     group_id: int = Field(alias='groupId')
 | ||
|     group_name: str = Field(alias='groupName')
 | ||
| 
 | ||
|     async def approve(self, bot: "Bot"):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           通过此人的加群申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|         """
 | ||
|         return await bot.api.post('/resp/memberJoinRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': 0,
 | ||
|                                       'message': ''
 | ||
|                                   })
 | ||
| 
 | ||
|     async def reject(self,
 | ||
|                      bot: "Bot",
 | ||
|                      operate: Literal[1, 2, 3, 4] = 1,
 | ||
|                      message: str = ''):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           拒绝(忽略)此人的加群申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|           * ``operate: Literal[1, 2, 3, 4]``: 响应的操作类型
 | ||
| 
 | ||
|             * ``1``: 拒绝入群
 | ||
|             * ``2``: 忽略请求
 | ||
|             * ``3``: 拒绝入群并添加黑名单,不再接收该用户的入群申请
 | ||
|             * ``4``: 忽略入群并添加黑名单,不再接收该用户的入群申请
 | ||
| 
 | ||
|           * ``message: str``: 回复的信息
 | ||
|         """
 | ||
|         assert operate > 0
 | ||
|         return await bot.api.post('/resp/memberJoinRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': operate,
 | ||
|                                       'message': message
 | ||
|                                   })
 | ||
| 
 | ||
| 
 | ||
| class BotInvitedJoinGroupRequestEvent(RequestEvent):
 | ||
|     """Bot被邀请入群申请"""
 | ||
|     from_id: int = Field(alias='fromId')
 | ||
|     group_id: int = Field(alias='groupId')
 | ||
|     group_name: str = Field(alias='groupName')
 | ||
| 
 | ||
|     async def approve(self, bot: "Bot"):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           通过这份被邀请入群申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|         """
 | ||
|         return await bot.api.post('/resp/botInvitedJoinGroupRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': 0,
 | ||
|                                       'message': ''
 | ||
|                                   })
 | ||
| 
 | ||
|     async def reject(self, bot: "Bot", message: str = ""):
 | ||
|         """
 | ||
|         :说明:
 | ||
| 
 | ||
|           拒绝这份被邀请入群申请
 | ||
| 
 | ||
|         :参数:
 | ||
| 
 | ||
|           * ``bot: Bot``: 当前的 ``Bot`` 对象
 | ||
|           * ``message: str``: 邀请消息
 | ||
|         """
 | ||
|         return await bot.api.post('/resp/botInvitedJoinGroupRequestEvent',
 | ||
|                                   params={
 | ||
|                                       'eventId': self.event_id,
 | ||
|                                       'groupId': self.group_id,
 | ||
|                                       'fromId': self.from_id,
 | ||
|                                       'operate': 1,
 | ||
|                                       'message': message
 | ||
|                                   })
 |