From 6d9caadffcb4cfb3fb615c65e846831e78092b40 Mon Sep 17 00:00:00 2001 From: Mix <32300164+mnixry@users.noreply.github.com> Date: Sat, 2 Oct 2021 14:30:02 +0800 Subject: [PATCH 1/3] :zap: add support for mirai adapter `NudgeEvent`, fix #494 --- .../nonebot/adapters/mirai/event/base.py | 18 ++++++++++++++++++ .../nonebot/adapters/mirai/event/notice.py | 11 ++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py index 6c33ba5a..a91e5044 100644 --- a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py +++ b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py @@ -27,6 +27,19 @@ class UserPermission(str, Enum): MEMBER = 'MEMBER' +class NudgeSubjectKind(str, Enum): + """ + :说明: + + 戳一戳类型枚举类 + + * ``Group``: 群 + * ``Friend``: 好友 + """ + Group = 'Group' + Friend = 'Friend' + + class GroupInfo(BaseModel): id: int name: str @@ -46,6 +59,11 @@ class PrivateChatInfo(BaseModel): remark: str +class NudgeSubject(BaseModel): + id: int + kind: NudgeSubjectKind + + class Event(BaseEvent): """ mirai-api-http 协议事件,字段与 mirai-api-http 一致。各事件字段参考 `mirai-api-http 事件类型`_ diff --git a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/notice.py b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/notice.py index 276b12d1..8726d58e 100644 --- a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/notice.py +++ b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/notice.py @@ -2,7 +2,7 @@ from typing import Any, Optional from pydantic import Field -from .base import Event, GroupChatInfo, GroupInfo, UserPermission +from .base import Event, GroupChatInfo, GroupInfo, NudgeSubject, UserPermission class NoticeEvent(Event): @@ -154,3 +154,12 @@ class MemberPermissionChangeEvent(MemberStateChangeEvent): """成员权限改变的事件(该成员不是Bot)""" origin: UserPermission current: UserPermission + + +class NudgeEvent(NoticeEvent): + """戳一戳触发事件""" + from_id: int = Field(alias='fromId') + target: int + subject: NudgeSubject + action: str + suffix: str From bac56635c044648273e3ba45047150d23c8a95fe Mon Sep 17 00:00:00 2001 From: nonebot Date: Sat, 2 Oct 2021 06:42:39 +0000 Subject: [PATCH 2/3] :memo: update api docs --- docs/api/adapters/mirai.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/api/adapters/mirai.md b/docs/api/adapters/mirai.md index 46e40856..a3e7bcc0 100644 --- a/docs/api/adapters/mirai.md +++ b/docs/api/adapters/mirai.md @@ -1444,6 +1444,23 @@ Bot被邀请入群申请 +## _class_ `NudgeSubjectKind` + +基类:`str`, `enum.Enum` + + +* **说明** + + 戳一戳类型枚举类 + + > + > * `Group`: 群 + + + > * `Friend`: 好友 + + + ## _class_ `Event` 基类:[`nonebot.adapters._event.Event`](README.md#nonebot.adapters._event.Event) @@ -1718,6 +1735,13 @@ Bot在群里的权限被改变 成员权限改变的事件(该成员不是Bot) + +## _class_ `NudgeEvent` + +基类:`nonebot.adapters.mirai.event.notice.NoticeEvent` + +戳一戳触发事件 + # NoneBot.adapters.mirai.event.request 模块 From 1280cf9ba3a1f49983220ec7bff31936a9f8b5a0 Mon Sep 17 00:00:00 2001 From: yanyongyu Date: Sat, 2 Oct 2021 15:07:32 +0800 Subject: [PATCH 3/3] :art: fix docstring format --- docs/api/adapters/mirai.md | 22 +++++++++---------- .../nonebot/adapters/mirai/event/base.py | 22 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/api/adapters/mirai.md b/docs/api/adapters/mirai.md index a3e7bcc0..87c8eca2 100644 --- a/docs/api/adapters/mirai.md +++ b/docs/api/adapters/mirai.md @@ -1044,14 +1044,14 @@ mirai-api-http 协议事件,字段与 mirai-api-http 一致。各事件字段 用户权限枚举类 - > - > * `OWNER`: 群主 + + * `OWNER`: 群主 - > * `ADMINISTRATOR`: 群管理 + * `ADMINISTRATOR`: 群管理 - > * `MEMBER`: 普通群成员 + * `MEMBER`: 普通群成员 @@ -1433,14 +1433,14 @@ Bot被邀请入群申请 用户权限枚举类 - > - > * `OWNER`: 群主 + + * `OWNER`: 群主 - > * `ADMINISTRATOR`: 群管理 + * `ADMINISTRATOR`: 群管理 - > * `MEMBER`: 普通群成员 + * `MEMBER`: 普通群成员 @@ -1453,11 +1453,11 @@ Bot被邀请入群申请 戳一戳类型枚举类 - > - > * `Group`: 群 + + * `Group`: 群 - > * `Friend`: 好友 + * `Friend`: 好友 diff --git a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py index a91e5044..fd95f4e8 100644 --- a/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py +++ b/packages/nonebot-adapter-mirai/nonebot/adapters/mirai/event/base.py @@ -1,15 +1,15 @@ import json from enum import Enum -from typing import Any, Dict, Optional, Type - -from pydantic import BaseModel, Field, ValidationError from typing_extensions import Literal +from typing import Any, Dict, Type, Optional + +from pydantic import Field, BaseModel, ValidationError -from nonebot.adapters import Event as BaseEvent -from nonebot.adapters import Message as BaseMessage from nonebot.log import logger from nonebot.typing import overrides from nonebot.utils import escape_tag +from nonebot.adapters import Event as BaseEvent +from nonebot.adapters import Message as BaseMessage class UserPermission(str, Enum): @@ -18,9 +18,9 @@ class UserPermission(str, Enum): 用户权限枚举类 - * ``OWNER``: 群主 - * ``ADMINISTRATOR``: 群管理 - * ``MEMBER``: 普通群成员 + * ``OWNER``: 群主 + * ``ADMINISTRATOR``: 群管理 + * ``MEMBER``: 普通群成员 """ OWNER = 'OWNER' ADMINISTRATOR = 'ADMINISTRATOR' @@ -33,8 +33,8 @@ class NudgeSubjectKind(str, Enum): 戳一戳类型枚举类 - * ``Group``: 群 - * ``Friend``: 好友 + * ``Group``: 群 + * ``Friend``: 好友 """ Group = 'Group' Friend = 'Friend' @@ -107,7 +107,7 @@ class Event(BaseEvent): @overrides(BaseEvent) def get_type(self) -> Literal["message", "notice", "request", "meta_event"]: - from . import message, meta, notice, request + from . import meta, notice, message, request if isinstance(self, message.MessageEvent): return 'message' elif isinstance(self, notice.NoticeEvent):