mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-28 16:51:26 +00:00
🚧 add some support for mirai basic events
This commit is contained in:
65
nonebot/adapters/mirai/event/base.py
Normal file
65
nonebot/adapters/mirai/event/base.py
Normal file
@ -0,0 +1,65 @@
|
||||
from enum import Enum
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing_extensions import Literal
|
||||
|
||||
from nonebot.adapters import Event as BaseEvent
|
||||
from nonebot.adapters import Message as BaseMessage
|
||||
from nonebot.typing import overrides
|
||||
|
||||
from .constants import EVENT_TYPES
|
||||
|
||||
|
||||
class SenderPermission(str, Enum):
|
||||
OWNER = 'OWNER'
|
||||
ADMINISTRATOR = 'ADMINISTRATOR'
|
||||
MEMBER = 'MEMBER'
|
||||
|
||||
|
||||
class SenderGroup(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
permission: SenderPermission
|
||||
|
||||
|
||||
class SenderInfo(BaseModel):
|
||||
id: int
|
||||
name: str = Field(alias='memberName')
|
||||
permission: SenderPermission
|
||||
group: SenderGroup
|
||||
|
||||
|
||||
class Event(BaseEvent):
|
||||
type: str
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_type(self) -> Literal["message", "notice", "request", "meta_event"]:
|
||||
return EVENT_TYPES.get(self.type, 'meta_event')
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_event_name(self) -> str:
|
||||
return self.type
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_event_description(self) -> str:
|
||||
return str(self.dict())
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_message(self) -> BaseMessage:
|
||||
raise ValueError("Event has no message!")
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_plaintext(self) -> str:
|
||||
raise ValueError("Event has no message!")
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_user_id(self) -> str:
|
||||
raise ValueError("Event has no message!")
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def get_session_id(self) -> str:
|
||||
raise ValueError("Event has no message!")
|
||||
|
||||
@overrides(BaseEvent)
|
||||
def is_tome(self) -> bool:
|
||||
return False
|
Reference in New Issue
Block a user