From bd9fe38217781f9596d628dcce788a4103e92824 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sat, 16 Aug 2025 10:10:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E7=B1=BB=E6=8A=BD=E8=B1=A1=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 1 + .idea/misc.xml | 5 + python/events/KtEventGenerator.py | 117 ++++++++++ .../KtEventGenerator.cpython-311.pyc | Bin 0 -> 5236 bytes python/events/account/KtGenerator.py | 111 --------- python/events/account/ktg.py | 53 +++++ python/events/file/ktg.py | 28 +++ python/events/group/KtGenerator.py | 111 --------- python/events/group/ktg.py | 44 ++++ python/events/message/KtGenerator.py | 111 --------- python/events/message/group/KtGenerator.py | 111 --------- python/events/message/group/ktg.py | 14 ++ python/events/message/ktg.py | 22 ++ python/events/message/personal/KtGenerator.py | 111 --------- python/events/message/personal/ktg.py | 14 ++ python/events/other/ktg.py | 24 ++ python/events/passkey/ktg.py | 17 ++ python/events/personal/ktg.py | 20 ++ python/events/pycode.sh | 18 ++ python/events/system/ktg.py | 42 ++++ .../kotlin/top/r3944realms/ltdmanager/main.kt | 56 +---- .../ltdmanager/napcat/data/Author.kt | 21 +- .../ltdmanager/napcat/data/CharBoxElement.kt | 38 +++- .../ltdmanager/napcat/data/Character.kt | 25 ++- .../napcat/data/CollectionItemList.kt | 28 ++- .../napcat/data/CollectionSearchList.kt | 10 +- .../ltdmanager/napcat/data/EmojiLikesList.kt | 15 ++ .../ltdmanager/napcat/data/FriendInfo.kt | 29 ++- .../r3944realms/ltdmanager/napcat/data/ID.kt | 3 + .../ltdmanager/napcat/data/MessageType.kt | 18 ++ .../r3944realms/ltdmanager/napcat/data/Qq.kt | 9 + .../ltdmanager/napcat/data/Role.kt | 11 + .../ltdmanager/napcat/data/Sender.kt | 19 ++ .../ltdmanager/napcat/data/SexV2.kt | 14 ++ .../ltdmanager/napcat/data/Summary.kt | 15 +- .../events/account/AbstractAccountEvent.kt | 57 ++++- .../events/account/ArkSharePeerEvent.kt | 2 +- .../events/account/CreateCollectionEvent.kt | 34 +++ .../events/account/DeleteFriendEvent.kt | 34 +++ .../events/account/FetchCustomFaceEvent.kt | 31 +++ .../events/account/GetFriendListEvent.kt | 31 +++ .../account/GetFriendsWithCategoryEvent.kt | 5 +- .../events/account/GetLoginInfoEvent.kt | 36 +++ .../events/account/GetMiniAppArkEvent.kt | 136 +++++++++++ .../events/account/GetModelShowEvent.kt | 31 +++ .../events/account/GetProfileLikeEvent.kt | 123 ++++++++++ .../events/account/GetRecentContactEvent.kt | 212 ++++++++++++++++++ .../napcat/events/account/GetStatusEvent.kt | 36 +++ .../events/account/GetStrangerInfoEvent.kt | 102 +++++++++ .../GetUnidirectionalFriendListEvent.kt | 43 ++++ .../events/account/MarkAllAsReadEvent.kt | 31 +++ .../events/account/MarkGroupMsgAsReadEvent.kt | 31 +++ .../account/MarkPrivateMsgAsReadEvent.kt | 31 +++ .../events/account/NcGetUserStatusEvent.kt | 36 +++ .../napcat/events/account/SendLikeEvent.kt | 31 +++ .../events/account/SetDiyOnlineStatusEvent.kt | 30 +++ .../account/SetFriendAddRequestEvent.kt | 31 +++ .../events/account/SetFriendRemarkEvent.kt | 31 +++ .../events/account/SetModelShowEvent.kt | 33 +++ .../events/account/SetOnlineStatusEvent.kt | 2 +- .../napcat/events/account/SetQqAvatarEvent.kt | 31 +++ .../events/account/SetSelfLongnickEvent.kt | 34 +++ .../napcat/events/file/AbstractFileEvent.kt | 125 ++++++++++- .../napcat/events/file/CleanCacheEvent.kt | 33 +++ .../events/file/CreateGroupFileFolderEvent.kt | 81 +++++++ .../events/file/DeleteGroupFileEvent.kt | 54 +++++ .../events/file/DeleteGroupFolderEvent.kt | 36 +++ .../napcat/events/file/DownloadFileEvent.kt | 33 +++ .../napcat/events/file/GetFileEvent.kt | 56 +++++ .../file/GetGroupFileSystemInfoEvent.kt | 56 +++++ .../events/file/GetGroupFileUrlEvent.kt | 30 +++ .../events/file/GetGroupFilesByFolderEvent.kt | 31 +++ .../events/file/GetGroupRootFilesEvent.kt | 43 ++++ .../events/file/GetPrivateFileUrlEvent.kt | 30 +++ .../napcat/events/file/MoveGroupFileEvent.kt | 30 +++ .../events/file/RenameGroupFileEvent.kt | 30 +++ .../napcat/events/file/TransGroupFileEvent.kt | 30 +++ .../events/file/UploadGroupFileEvent.kt | 31 +++ .../events/file/UploadPrivateFileEvent.kt | 31 +++ .../napcat/events/group/AbstractGroupEvent.kt | 71 +++++- .../events/group/DelGroupNoticeEvent.kt | 34 +++ .../events/group/DeleteEssenceMsgEvent.kt | 49 ++++ .../events/group/GetEssenceMsgListEvent.kt | 96 ++++++++ .../events/group/GetGroupAtAllRemainEvent.kt | 41 ++++ .../events/group/GetGroupDetailInfoEvent.kt | 50 +++++ .../events/group/GetGroupHonorInfoEvent.kt | 91 ++++++++ .../group/GetGroupIgnoredNotifiesEvent.kt | 31 +++ .../napcat/events/group/GetGroupInfoEvent.kt | 31 +++ .../events/group/GetGroupInfoExEvent.kt | 132 +++++++++++ .../napcat/events/group/GetGroupListEvent.kt | 31 +++ .../events/group/GetGroupMemberInfoEvent.kt | 31 +++ .../events/group/GetGroupMemberListEvent.kt | 31 +++ .../events/group/GetGroupNoticeEvent.kt | 31 +++ .../events/group/GetGroupShutListEvent.kt | 100 +++++++++ .../events/group/GetGroupSystemMsgEvent.kt | 67 ++++++ .../events/group/SendGroupNoticeEvent.kt | 31 +++ .../napcat/events/group/SendGroupSignEvent.kt | 21 ++ .../napcat/events/group/SetEssenceMsgEvent.kt | 49 ++++ .../events/group/SetGroupAddOptionEvent.kt | 31 +++ .../events/group/SetGroupAddRequestEvent.kt | 31 +++ .../napcat/events/group/SetGroupAdminEvent.kt | 31 +++ .../napcat/events/group/SetGroupBanEvent.kt | 31 +++ .../napcat/events/group/SetGroupCardEvent.kt | 31 +++ .../napcat/events/group/SetGroupKickEvent.kt | 31 +++ .../events/group/SetGroupKickMembersEvent.kt | 31 +++ .../napcat/events/group/SetGroupLeaveEvent.kt | 31 +++ .../napcat/events/group/SetGroupNameEvent.kt | 31 +++ .../events/group/SetGroupPortraitEvent.kt | 38 ++++ .../events/group/SetGroupRemarkEvent.kt | 31 +++ .../group/SetGroupRobotAddOptionEvent.kt | 31 +++ .../events/group/SetGroupSearchEvent.kt | 31 +++ .../napcat/events/group/SetGroupSignEvent.kt | 18 ++ .../events/group/SetGroupSpecialTitleEvent.kt | 31 +++ .../events/group/SetGroupWholeBanEvent.kt | 31 +++ .../events/message/AbstractMessageEvent.kt | 51 ++++- .../napcat/events/message/DeleteMsgEvent.kt | 32 +++ .../events/message/FetchEmojiLikeEvent.kt | 35 +++ .../events/message/GetForwardMsgEvent.kt | 172 ++++++++++++++ .../message/GetFriendMsgHistoryEvent.kt | 136 +++++++++++ .../events/message/GetGroupMsgHistoryEvent.kt | 31 +++ .../napcat/events/message/GetImageEvent.kt | 57 +++++ .../napcat/events/message/GetMsgEvent.kt | 32 +++ .../napcat/events/message/GetRecordEvent.kt | 31 +++ .../events/message/SendForwardMsgEvent.kt | 32 +++ .../events/message/SendGroupAiRecordEvent.kt | 36 +++ .../napcat/events/message/SendPokeEvent.kt | 32 +++ .../events/message/SetMsgEmojiLikeEvent.kt | 41 ++++ .../group/ForwardGroupSingleMsgEvent.kt | 33 +++ .../events/message/group/GroupPokeEvent.kt | 29 +++ .../message/group/SendGroupForwardMsgEvent.kt | 39 ++++ .../events/message/group/SendGroupMsgEvent.kt | 36 +++ .../personal/ForwardFriendSingleMsgEvent.kt | 32 +++ .../message/personal/FriendPokeEvent.kt | 28 +++ .../personal/SendPrivateForwardMsgEvent.kt | 32 +++ .../message/personal/SendPrivateMsgEvent.kt | 36 +++ .../napcat/events/other/AbstractOtherEvent.kt | 20 +- .../events/passkey/AbstractPassKeyEvent.kt | 19 +- .../events/personal/AbstractPersonalEvent.kt | 21 +- .../events/system/AbstractSystemEvent.kt | 13 +- .../requests/account/ArkShareGroupRequest.kt | 3 + .../account/SetOnlineStatusRequest.kt | 50 +++++ 141 files changed, 5295 insertions(+), 632 deletions(-) create mode 100644 python/events/KtEventGenerator.py create mode 100644 python/events/__pycache__/KtEventGenerator.cpython-311.pyc delete mode 100644 python/events/account/KtGenerator.py create mode 100644 python/events/account/ktg.py create mode 100644 python/events/file/ktg.py delete mode 100644 python/events/group/KtGenerator.py create mode 100644 python/events/group/ktg.py delete mode 100644 python/events/message/KtGenerator.py delete mode 100644 python/events/message/group/KtGenerator.py create mode 100644 python/events/message/group/ktg.py create mode 100644 python/events/message/ktg.py delete mode 100644 python/events/message/personal/KtGenerator.py create mode 100644 python/events/message/personal/ktg.py create mode 100644 python/events/other/ktg.py create mode 100644 python/events/passkey/ktg.py create mode 100644 python/events/personal/ktg.py create mode 100644 python/events/pycode.sh create mode 100644 python/events/system/ktg.py create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/EmojiLikesList.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Qq.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Role.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Sender.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/SexV2.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/CreateCollectionEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/DeleteFriendEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/FetchCustomFaceEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetLoginInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetMiniAppArkEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetModelShowEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetProfileLikeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStatusEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStrangerInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetUnidirectionalFriendListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkAllAsReadEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkGroupMsgAsReadEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkPrivateMsgAsReadEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/NcGetUserStatusEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SendLikeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetDiyOnlineStatusEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendAddRequestEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendRemarkEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetModelShowEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetQqAvatarEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetSelfLongnickEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CleanCacheEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CreateGroupFileFolderEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFolderEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DownloadFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileSystemInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileUrlEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFilesByFolderEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupRootFilesEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetPrivateFileUrlEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/MoveGroupFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/RenameGroupFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/TransGroupFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadGroupFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadPrivateFileEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DelGroupNoticeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DeleteEssenceMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetEssenceMsgListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupAtAllRemainEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupDetailInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupHonorInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupIgnoredNotifiesEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoExEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberInfoEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupNoticeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupShutListEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupSystemMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupNoticeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupSignEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetEssenceMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddOptionEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddRequestEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAdminEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupBanEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupCardEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickMembersEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupLeaveEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupNameEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupPortraitEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRemarkEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRobotAddOptionEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSearchEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSignEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSpecialTitleEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupWholeBanEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/DeleteMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/FetchEmojiLikeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetGroupMsgHistoryEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetImageEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetRecordEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendForwardMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendGroupAiRecordEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendPokeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SetMsgEmojiLikeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/ForwardGroupSingleMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/GroupPokeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupForwardMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/ForwardFriendSingleMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/FriendPokeEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateForwardMsgEvent.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateMsgEvent.kt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 64c916c..9b06c1b 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ + + + + + + diff --git a/python/events/KtEventGenerator.py b/python/events/KtEventGenerator.py new file mode 100644 index 0000000..fc0a19c --- /dev/null +++ b/python/events/KtEventGenerator.py @@ -0,0 +1,117 @@ +# KtEventGenerator.py +import os + +# Kotlin事件类模板 +kotlin_template_common = """ +package top.r3944realms.ltdmanager.napcat.events.{path} + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * {event_description}事件 + * @property data 响应数据 + */ +@Serializable +data class {class_name}( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + +) : {super_class}Event(status0, retcode0, message0, wording0, echo0) {{ + + override fun subtype(): String {{ + return "{original_name}" + }} +}} +""" + +def path_to_class_name(api_path): + """将API路径转换为类名""" + # 移除斜杠和前缀下划线 + clean_path = api_path.lstrip('/').lstrip('_').replace('.','point_') + # 分割单词并转换为驼峰命名 + parts = clean_path.split('_') + return ''.join(part.capitalize() for part in parts) + "Event" + +def path_to_original_name(api_path): + """获取原始API名称(不带斜杠)""" + return api_path.lstrip('/') + +def generate_description(class_name): + """生成事件描述""" + return class_name.replace("Event", "") + +def generate_kotlin_class(api_path, path0, super_class, template): + """生成完整的Kotlin类(通过自通过模板)""" + class_name = path_to_class_name(api_path) + original_name = path_to_original_name(api_path) + event_description = generate_description(class_name) + + return template.format( + path=path0, + class_name=class_name, + original_name=original_name, + event_description=event_description, + super_class=super_class + ) + +def find_project_root(start_path=None, marker='.projectroot'): + """向上查找直到找到标记文件""" + if start_path is None: + start_path = os.path.abspath(__file__) + + current = os.path.dirname(start_path) + while True: + if marker in os.listdir(current): + return current + parent = os.path.dirname(current) + if parent == current: # 到达根目录 + raise FileNotFoundError(f"Project root marker '{marker}' not found") + current = parent + + +def generateEventKt(path0, superclass0, apipaths, template = kotlin_template_common): + """ + 生成事件类文件 + :param path0: 包路径,如"account"或"message" + :param superclass0: 父类名,如"AbstractAccount"或"AbstractMessage" + :param apipaths: API路径列表 + :param template: 自提供模板(不提供则使用默认) + """ + # 创建输出目录 + root_path = find_project_root() + + path_ = path0.replace(".", "/") + output_dir = os.path.join( + root_path, + "src/main/kotlin/top/r3944realms/ltdmanager/napcat/events", + path_, + "wip" + ) + os.makedirs(output_dir, exist_ok=True) + + # 为每个API路径生成Kotlin文件 + for api_path in apipaths: + kotlin_code = generate_kotlin_class(api_path, path0, superclass0, template) + class_name = path_to_class_name(api_path) + filename = os.path.join(output_dir, f"{class_name}.kt") + + with open(filename, "w", encoding="utf-8") as f: + f.write(kotlin_code) + + print(f"Generated: {filename}") + + print(f"\nSuccessfully generated {len(apipaths)} Kotlin event classes in '{output_dir}' directory") + +# 确保方法可以被导入 +__all__ = ['generateEventKt'] \ No newline at end of file diff --git a/python/events/__pycache__/KtEventGenerator.cpython-311.pyc b/python/events/__pycache__/KtEventGenerator.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..810a719b1f989df0a9a7dab3fae6a82146ec57c5 GIT binary patch literal 5236 zcmb6cZEO=qcGurt+bK@s5NL8)5@_NyIDFlOMjQbOq=h4;m*{%UQCW+3lbG0EYj({? zVoO%V9WI3?$E74!4&k2KGIwT+!X zubrKJJG1lV&Ad17Yd&zf7z)bLGdG5~3X1wK?i7k4-*|8U8j}=H@pOplr+7m@%^S~C z{RZ9y(8!wsns^I9GwhN8KnDdJl#uqonK>uJ+WCJ%tX1sFgGZ$ zvKaNDozLysg#<1XmV6z^1jA7g$?UKwhk}u_ zK1o19E)*Q$7Z!dB9?Uu!`ahU`h>J);*a5?|x3)5DD?3UyXPB(bC9 zOXNpAiucNIwx<2n>lu)GnYLiG@OK4B0v3WjonXDF(vx z6Hz1%;d5`vv)slO_-JDbTWn(s%eS$Fw3i(n)rnz&iKhjGg1o>E#3HN|J1L)w3N2nN zJHl5U6=MSF7>clsqaq3p1|wWZKZZs^E0JKJ2I#yo;ExGjBfJlm0ZdYHDh=PYg{P-s z*3II~^jZ}7!y8s%74b{ac_VL{2D`agFiI*x$LVyjSBATaV#2_i(|EsY3O3rf;UF~) zBR7kq<@@2SBQOHyYl}S%jqL27_8)(7`Qv|Ozc|1A`K{dLzc0>xvh?pyv*VW^((M}U ze@Oc@OH>R-WWPq0i4AXIC%g~#0ys+1M0Bs!5=P+9+ETu)-%*n^OleHR&EVUnnW7w$B`g(|eR#0D^Tf+99}wjezv(-;^_cEea5s8R9ugxbbjNZc zuTCd?z7t1fqIBItL_nM@B46~}L;IdV=$?(Dy(3$&3-ZgNuAoFoe0xG-fD1``eMPi3 zSY5(k8J;ASsqBC{Q$4!^tVoE4xPYLU zrD!N9Yo=2mSg%pD0potW8<0Ur;39h4Ot_b@oUvBBFv-fbdq%Y|@C>|C2tblru~3y8 zCmXIbq^lJ77S+Awp1bX?yKSadac@`M+wZxbyX$^#u4!&aad)fk?&OjC&YFA9y1UN0 zsb0moNp)^Y9-4Q!#yT!yPNB|v04S9mDnLhv>gbqjRvh~?rv2zCSa6L_5L3be`{||x z8eoVu!<6N>KF*F^&AxRb`@x%_m!O49AIyI9S!!|aa&~SyclB?%>*;SkdjnyU_0q_# ze?0J!u$|?ForkxkMydUES z%)ZQ=fg@wA5+*H8+{mTI^@x%i8(Y3Ji`Kz!WCH*kU=*VIIBF0TEM=q`>nf|&Bqh{G$7^A4TY1Ldy-1vC+6sO~+xH)c#8*b6lK;dSQ3OWCFps7nMd;3!E?GKmU zIe(O71>lZazD~ZgeCNXQg@5Xe+|0YV>vz0fGj~B6 zB8Ee>f{0YJ42USq$zChM3Z;Sh$wS*vBW~MdAq>X)Rn&&Z2O-%~z@%2|3iSj!rMg#~yhfJ{b}CMn>f))QR>W5Y zzS9&k#0|YaZ@pDC62`bOZWtz#K~*yLsrkYi+|b$+?X(2>h+pqn*lXD z{^!NHi@6)`=ic~Y>Dq_c)GRbGOkY^OJ)66F0W!y)z7fxH{Tx_)5Nw!3!vbQPM;y&; z1o{JFEW&%Onn9FM0}$1$+(`+mn`ZO-2ZABN@7Jt+5aIMuvxb6_3?0pV7)E+T`7oY+ z2q6(cXkj3uLb4t(Ec!Z{H4sAxvMmVQ9R5o9C?2V(dmtF${dq<4;|(Gl#}C3QjR63c zVs&S%8x}n4CtjKKU-7^Hd&T2ZJ-!r^typ(ya7?@?PMuOJylRCv*}Y=0m^aKj+;9JO zqCag_JT0oHCF8(#zG`EtXTe=Hv7SVu^@`i8y1gk2AdkOt*HM>o)GbstWj4PwcNl

E<25E>kx)qa=POu;@%#u*h$!0J8 zQBRe>`Rr15`t?RG5CB`08*{0vjrqJ&zh&g7k#IwDRV0Vvr-^ZAhJLF=NlBCYRrxDcxuxPIa;nD|2Jxi(g#RV`U4ZP$*7PQbAvrA!nvMi3v#o$z+uZZE1M@Z))Nk$P zN=Os{B#(UWq|DayN5`3TALNLNsZ}-MWD%|mp86HaW^N%MWm~9ucIJgyVeSuKwJ0^c zYE5s-vEXT*u_>PIs%LwOS*Y?%bWHBKvM0^VjAYvO>Q$-gQmeXBwyeuN-ZJ(4OmoJy zLvig;T{~7N+P-O)n|Hd#x-WK*A61;J>SQxccEtz-WR!q!G2V9=Jo@*z)(=1Y@VMXK zTPS-)rsA2Y7XUz2Y|W~zIYVmJWX~`I?+0dD-VMJOh9=anM)WU0#Wbjz1~Y{!;l%tu z9W~EyFn_th^nAVjOO^&m4#aEdLHM%bwG%zlYVt>2uswf342Q+Ys`OG { - println(""" - 反序列化成功: - { - "status": ${decoded.status}, - "retcode": ${decoded.retcode}, - "data": { - "result": ${decoded.data.result}, - "errMsg": ${decoded.data.errorMsg} - }, - "message": ${decoded.message}, - "wording": ${decoded.wording}, - "echo": ${decoded.echo} - } - """.trimIndent()) - } - else -> println("未知请求类型") - } - } catch (e: Exception) { - println("反序列化失败: ${e.message}") + """.trimIndent() + val decodeEvent = NapCatEvent.decodeEvent(str, "group/set_group_search") + if (decodeEvent is SetGroupSearchEvent) { + logger.info("data:{}",decodeEvent.data) } } \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Author.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Author.kt index a6f9b4b..b15c805 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Author.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Author.kt @@ -1,4 +1,21 @@ package top.r3944realms.ltdmanager.napcat.data -class Author { -} \ No newline at end of file +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class Author ( + @SerialName("groupId") + val groupID: String, + + val groupName: String, + + @SerialName("numId") + val numID: String, + + @SerialName("strId") + val strID: String, + + val type: Double, + val uid: String +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CharBoxElement.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CharBoxElement.kt index f9f72a3..b3cdab6 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CharBoxElement.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CharBoxElement.kt @@ -1,4 +1,40 @@ package top.r3944realms.ltdmanager.napcat.data -class CharBoxElement { +import kotlinx.serialization.Serializable + +@Serializable +data class CharBoxElement ( + val charBox: CharBoxCharBox, + val charText: String +) { + @Serializable + data class CharBoxCharBox ( + /** + * 顶点坐标 + */ + val pt1: CharBoxPt, + + /** + * 顶点坐标 + */ + val pt2: CharBoxPt, + + /** + * 顶点坐标 + */ + val pt3: CharBoxPt, + + /** + * 顶点坐标 + */ + val pt4: CharBoxPt + ) + /** + * 顶点坐标 + */ + @Serializable + data class CharBoxPt ( + val x: String, + val y: String + ) } \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Character.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Character.kt index f1b9426..c268dbe 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Character.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Character.kt @@ -1,4 +1,25 @@ package top.r3944realms.ltdmanager.napcat.data -class Character { -} \ No newline at end of file +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class Character ( + /** + * 人物ID + */ + @SerialName("character_id") + val characterID: String, + + /** + * 人物名字 + */ + @SerialName("character_name") + val characterName: String, + + /** + * 试听网址 + */ + @SerialName("preview_url") + val previewURL: String +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionItemList.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionItemList.kt index d1552c5..14030cb 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionItemList.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionItemList.kt @@ -1,4 +1,28 @@ package top.r3944realms.ltdmanager.napcat.data -class CollectionItemList { -} \ No newline at end of file +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class CollectionItemList ( + val author: Author, + val bid: Double, + val category: Double, + val cid: String, + val collectTime: String, + val createTime: String, + + @SerialName("customGroupId") + val customGroupID: Double, + + val modifyTime: String, + val securityBeat: Boolean, + val sequence: String, + + @SerialName("shareUrl") + val shareURL: String, + + val status: Double, + val summary: Summary, + val type: Double +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionSearchList.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionSearchList.kt index ffa5a94..ac298dd 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionSearchList.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/CollectionSearchList.kt @@ -1,4 +1,10 @@ package top.r3944realms.ltdmanager.napcat.data -class CollectionSearchList { -} \ No newline at end of file +import kotlinx.serialization.Serializable + +@Serializable +data class CollectionSearchList ( + val bottomTimeStamp: String, + val collectionItemList: List, + val hasMore: Boolean +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/EmojiLikesList.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/EmojiLikesList.kt new file mode 100644 index 0000000..4880352 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/EmojiLikesList.kt @@ -0,0 +1,15 @@ +package top.r3944realms.ltdmanager.napcat.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class EmojiLikesList ( + @SerialName("headUrl") + val headURL: String, + + val nickName: String, + + @SerialName("tinyId") + val tinyID: String +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/FriendInfo.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/FriendInfo.kt index ce7f797..a85c3dd 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/FriendInfo.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/FriendInfo.kt @@ -1,4 +1,29 @@ package top.r3944realms.ltdmanager.napcat.data -class FriendeInfo { -} \ No newline at end of file +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * 好友信息 + */ +@Serializable +data class FriendInfo( + @SerialName("birthday_year") + val birthdayYear: Int, + @SerialName("birthday_month") + val birthdayMonth: Int, + @SerialName("birthday_day") + val birthdayDay: Int, + @SerialName("user_id") + val userId: Long, + val age: Int, + @SerialName("phone_number") + val phoneNum: String, + val email: String, + @SerialName("category_id") + val categoryId: Int, + val nickname: String, + val remark: String, + val sex: String, + val level: Int +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/ID.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/ID.kt index 5bc2198..2a50dec 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/ID.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/ID.kt @@ -2,6 +2,9 @@ package top.r3944realms.ltdmanager.napcat.data import kotlinx.serialization.Serializable +/** + * ID + */ @Serializable sealed class ID { class DoubleValue(val value: Double) : ID() diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt new file mode 100644 index 0000000..100a42e --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt @@ -0,0 +1,18 @@ +package top.r3944realms.ltdmanager.napcat.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class MessageType(val value: String) { + @SerialName("at") At("at"), + @SerialName("face") Face("face"), + @SerialName("file") File("file"), + @SerialName("forward") Forward("forward"), + @SerialName("image") Image("image"), + @SerialName("json") JSON("json"), + @SerialName("record") Record("record"), + @SerialName("reply") Reply("reply"), + @SerialName("text") Text("text"), + @SerialName("video") Video("video"); +} \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Qq.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Qq.kt new file mode 100644 index 0000000..baca230 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Qq.kt @@ -0,0 +1,9 @@ +package top.r3944realms.ltdmanager.napcat.data + +import kotlinx.serialization.Serializable + +@Serializable +sealed class Qq { + class DoubleValue(val value: Double) : Qq() + class StringValue(val value: String) : Qq() +} \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Role.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Role.kt new file mode 100644 index 0000000..82b7ada --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Role.kt @@ -0,0 +1,11 @@ +package top.r3944realms.ltdmanager.napcat.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class Role(val value: String) { + @SerialName("admin") Admin("admin"), + @SerialName("member") Member("member"), + @SerialName("owner") Owner("owner"); +} \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Sender.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Sender.kt new file mode 100644 index 0000000..5204587 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Sender.kt @@ -0,0 +1,19 @@ +package top.r3944realms.ltdmanager.napcat.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * sender + */ +@Serializable +data class Sender ( + val age: Double? = null, + val card: String, + val nickname: String, + val role: Role? = null, + val sex: SexV2? = null, + + @SerialName("user_id") + val userID: Double +) \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/SexV2.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/SexV2.kt new file mode 100644 index 0000000..f473535 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/SexV2.kt @@ -0,0 +1,14 @@ +package top.r3944realms.ltdmanager.napcat.data; + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * 回应格式不统一导致有了第二版本 + */ +@Serializable +enum class SexV2(val value: String) { + @SerialName("female") FEMALE("female"), + @SerialName("male") MALE("male"), + @SerialName("unknown") UNKNOWN("unknown"); +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Summary.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Summary.kt index df0c516..e4e0b51 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Summary.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/Summary.kt @@ -1,4 +1,15 @@ package top.r3944realms.ltdmanager.napcat.data -class Summary { -} \ No newline at end of file +import kotlinx.serialization.Serializable + +@Serializable +data class Summary ( + val audioSummary: String, + val fileSummary: String, + val gallerySummary: String, + val linkSummary: String, + val locationSummary: String, + val richMediaSummary: String, + val textSummary: String, + val videoSummary: String +) diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/AbstractAccountEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/AbstractAccountEvent.kt index 8fe8c6e..c1faa16 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/AbstractAccountEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/AbstractAccountEvent.kt @@ -42,18 +42,43 @@ abstract class AbstractAccountEvent( override fun type(): String { return "account/" + subtype() } - + //TODO 太烦了 也许该考虑反射或代码生成 companion object { val eventTypeMap by lazy { mutableMapOf>().apply { put("account/set_qq_profile", SetQQProfileEvent.serializer()) - put("account/ArkSharePeer", GetArkSharePeerEvent.serializer()) + put("account/ArkSharePeer", ArkSharePeerEvent.serializer()) put("account/get_doubt_friends_add_request", GetDoubtFriendsAddRequestEvent.serializer()) put("account/set_doubt_friends_add_request", SetDoubtFriendsAddRequestEvent.serializer()) put("account/get_online_clients", GetOnlineClientsEvent.serializer()) put("account/mark_msg_as_read", MarkMsgAsReadEvent.serializer()) put("account/set_online_status", SetOnlineStatusEvent.serializer()) put("account/ArkShareGroup", MarkMsgAsReadEvent.serializer()) + put("account/get_friends_with_category",GetFriendsWithCategoryEvent.serializer()) + put("account/create_collection",CreateCollectionEvent.serializer()) + put("account/delete_friend",DeleteFriendEvent.serializer()) + put("account/fetch_custom_face",FetchCustomFaceEvent.serializer()) + put("account/get_friend_list",GetFriendListEvent.serializer()) + put("account/get_login_info",GetLoginInfoEvent.serializer()) + put("account/get_mini_app_ark",GetMiniAppArkEvent.serializer()) + put("account/_get_model_show",GetModelShowEvent.serializer()) + put("account/get_profile_like",GetProfileLikeEvent.serializer()) + put("account/get_recent_contact",GetRecentContactEvent.serializer()) + put("account/get_status",GetStatusEvent.serializer()) + put("account/get_stranger_info",GetStrangerInfoEvent.serializer()) + put("account/get_unidirectional_friend_list",GetUnidirectionalFriendListEvent.serializer()) + put("account/_mark_all_as_read",MarkAllAsReadEvent.serializer()) + put("account/mark_group_msg_as_read",MarkGroupMsgAsReadEvent.serializer()) + put("account/mark_private_msg_as_read",MarkPrivateMsgAsReadEvent.serializer()) + put("account/nc_get_user_status",NcGetUserStatusEvent.serializer()) + put("account/send_like",SendLikeEvent.serializer()) + put("account/set_diy_online_status",SetDiyOnlineStatusEvent.serializer()) + put("account/set_friend_add_request",SetFriendAddRequestEvent.serializer()) + put("account/set_friend_remark",SetFriendRemarkEvent.serializer()) + put("account/_set_model_show",SetModelShowEvent.serializer()) + put("account/set_qq_avatar",SetQqAvatarEvent.serializer()) + put("account/set_self_longnick",SetSelfLongnickEvent.serializer()) + } } internal val json: Json by lazy { @@ -61,12 +86,38 @@ abstract class AbstractAccountEvent( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - subclass(GetArkSharePeerEvent::class) subclass(SetQQProfileEvent::class) + subclass(ArkSharePeerEvent::class) subclass(GetDoubtFriendsAddRequestEvent::class) subclass(SetDoubtFriendsAddRequestEvent::class) subclass(GetOnlineClientsEvent::class) subclass(MarkMsgAsReadEvent::class) + subclass(SetOnlineStatusEvent::class) + subclass(ArkShareGroupEvent::class) + subclass(GetFriendsWithCategoryEvent::class) + subclass(CreateCollectionEvent::class) + subclass(DeleteFriendEvent::class) + subclass(FetchCustomFaceEvent::class) + subclass(GetFriendListEvent::class) + subclass(GetLoginInfoEvent::class) + subclass(GetMiniAppArkEvent::class) + subclass(GetModelShowEvent::class) + subclass(GetProfileLikeEvent::class) + subclass(GetRecentContactEvent::class) + subclass(GetStatusEvent::class) + subclass(GetStrangerInfoEvent::class) + subclass(GetUnidirectionalFriendListEvent::class) + subclass(MarkAllAsReadEvent::class) + subclass(MarkGroupMsgAsReadEvent::class) + subclass(MarkPrivateMsgAsReadEvent::class) + subclass(NcGetUserStatusEvent::class) + subclass(SendLikeEvent::class) + subclass(SetDiyOnlineStatusEvent::class) + subclass(SetFriendAddRequestEvent::class) + subclass(SetFriendRemarkEvent::class) + subclass(SetModelShowEvent::class) + subclass(SetQqAvatarEvent::class) + subclass(SetSelfLongnickEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/ArkSharePeerEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/ArkSharePeerEvent.kt index 5553e37..df02634 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/ArkSharePeerEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/ArkSharePeerEvent.kt @@ -9,7 +9,7 @@ import kotlinx.serialization.Transient * @property data 响应数据 */ @Serializable -data class GetArkSharePeerEvent( +data class ArkSharePeerEvent( @Transient val status0: Status = Status.Ok, @Transient diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/CreateCollectionEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/CreateCollectionEvent.kt new file mode 100644 index 0000000..cb99b69 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/CreateCollectionEvent.kt @@ -0,0 +1,34 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * CreateCollection事件 + * @property data 响应数据 + */ +@Serializable +data class CreateCollectionEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val result: Double, + val errMsg: String + ) + override fun subtype(): String { + return "create_collection" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/DeleteFriendEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/DeleteFriendEvent.kt new file mode 100644 index 0000000..3611c43 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/DeleteFriendEvent.kt @@ -0,0 +1,34 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * DeleteFriend事件 + * @property data 响应数据 + */ +@Serializable +data class DeleteFriendEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val result: Double, + val errMsg: String + ) + override fun subtype(): String { + return "delete_friend" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/FetchCustomFaceEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/FetchCustomFaceEvent.kt new file mode 100644 index 0000000..2e4e4ac --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/FetchCustomFaceEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonArray + +/** + * FetchCustomFace事件 + * @property data 响应数据 + */ +@Serializable +data class FetchCustomFaceEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonArray +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "fetch_custom_face" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendListEvent.kt new file mode 100644 index 0000000..51d2813 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendListEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonArray + +/** + * GetFriendList事件 + * @property data 响应数据 + */ +@Serializable +data class GetFriendListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonArray +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_friend_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendsWithCategoryEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendsWithCategoryEvent.kt index 3733124..8932fae 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendsWithCategoryEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetFriendsWithCategoryEvent.kt @@ -5,7 +5,8 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import top.r3944realms.ltdmanager.napcat.data.FriendInfo -data class GetFriendsWithCategory( +@Serializable +data class GetFriendsWithCategoryEvent( @Transient val status0: Status = Status.Ok, @Transient @@ -19,7 +20,7 @@ data class GetFriendsWithCategory( val data: Datum ) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { - override fun subtype(): String = "/get_friends_with_category" + override fun subtype(): String = "get_friends_with_category" @Serializable data class Datum ( /** diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetLoginInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetLoginInfoEvent.kt new file mode 100644 index 0000000..ffac2b1 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetLoginInfoEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetLoginInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetLoginInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + @SerialName("user_id") + val userId: Double, + val nickname: String + ) + override fun subtype(): String { + return "get_login_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetMiniAppArkEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetMiniAppArkEvent.kt new file mode 100644 index 0000000..e10b9ce --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetMiniAppArkEvent.kt @@ -0,0 +1,136 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * GetMiniAppArk事件 + * @property data 响应数据 + */ +@Serializable +data class GetMiniAppArkEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + /** + * rawArkData = true + * + * rawArkData = false + */ + @Serializable + data class Data ( + val appName: String? = null, + val appView: String? = null, + val config: Config, + val desc: String? = null, + val metaData: MetaData? = null, + val prompt: String, + val ver: String, + val app: String? = null, + val meta: Meta? = null, + val miniappOpenRefer: String? = null, + val miniappShareOrigin: Double? = null, + val view: String? = null + ) + + @Serializable + data class Config ( + val autoSize: Double, + val ctime: Double, + val forward: Double, + val height: Double, + val token: String, + val type: String, + val width: Double + ) + + @Serializable + data class Meta ( + @SerialName("detail_1") + val detail1: MetaDetail1 + ) + + @Serializable + data class MetaDetail1 ( + val appid: String, + val appType: Double, + val desc: String, + val gamePoints: String, + + @SerialName("gamePointsUrl") + val gamePointsURL: String, + + val host: PurpleHost, + val icon: String, + val preview: String, + val scene: Double, + val shareOrigin: Double, + val shareTemplateData: JsonObject, + + @SerialName("shareTemplateId") + val shareTemplateID: String, + + val showLittleTail: String, + val title: String, + val url: String + ) + + @Serializable + data class PurpleHost ( + val nick: String, + val uin: Double + ) + + @Serializable + data class MetaData ( + @SerialName("detail_1") + val detail1: MetaDataDetail1 + ) + + @Serializable + data class MetaDataDetail1 ( + val appid: String, + val appType: Double, + val desc: String, + val gamePoints: String, + + @SerialName("gamePointsUrl") + val gamePointsURL: String, + + val host: FluffyHost, + val icon: String, + val preview: String, + val scene: Double, + val shareOrigin: Double, + val shareTemplateData: JsonObject, + + @SerialName("shareTemplateId") + val shareTemplateID: String, + + val showLittleTail: String, + val title: String, + val url: String + ) + + @Serializable + data class FluffyHost ( + val nick: String, + val uin: Double + ) + override fun subtype(): String { + return "get_mini_app_ark" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetModelShowEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetModelShowEvent.kt new file mode 100644 index 0000000..09ab071 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetModelShowEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * GetModelShow事件 + * @property data 响应数据 + */ +@Serializable +data class GetModelShowEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "_get_model_show" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetProfileLikeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetProfileLikeEvent.kt new file mode 100644 index 0000000..672d4ce --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetProfileLikeEvent.kt @@ -0,0 +1,123 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetProfileLike事件 + * @property data 响应数据 + */ +@Serializable +data class GetProfileLikeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + /** + * 互赞信息 + */ + val favoriteInfo: FavoriteInfo, + + val time: Double, + val uid: String, + + /** + * 点赞信息 + */ + val voteInfo: VoteInfo + ) + + /** + * 互赞信息 + */ + @Serializable + data class FavoriteInfo ( + /** + * 最后点赞时间(不是时间戳) + */ + @SerialName("last_time") + val lastTime: Double, + + /** + * 上次次数 + */ + @SerialName("today_count") + val todayCount: Double, + + /** + * 总次数 + */ + @SerialName("total_count") + val totalCount: Double, + + val userInfos: List + ) + + /** + * 点赞信息 + */ + @Serializable + data class LikeInfo ( + val age: Double, + val bAvailableCnt: Double, + val bTodayVotedCnt: Double, + val count: Double, + + @SerialName("customId") + val customID: Double, + + val gender: Double, + val giftCount: Double, + val isFriend: Boolean, + val isSvip: Boolean, + val isvip: Boolean, + val lastCharged: Double, + val latestTime: Double, + val nick: String, + val src: Double, + val uid: String, + val uin: Double + ) + + /** + * 点赞信息 + */ + @Serializable + data class VoteInfo ( + @SerialName("last_visit_time") + val lastVisitTime: Double, + + /** + * 点赞次数 + */ + @SerialName("new_count") + val newCount: Double, + + @SerialName("new_nearby_count") + val newNearbyCount: Double, + + /** + * 总次数 + */ + @SerialName("total_count") + val totalCount: Double, + + val userInfos: List + ) + override fun subtype(): String { + return "get_profile_like" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt new file mode 100644 index 0000000..33a49ff --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt @@ -0,0 +1,212 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.data.MessageType +import top.r3944realms.ltdmanager.napcat.data.Qq +import top.r3944realms.ltdmanager.napcat.data.Sender + +/** + * GetRecentContact事件 + * @property data 响应数据 + */ +@Serializable +data class GetRecentContactEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: List +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + @Serializable + data class Datum ( + val chatType: Double, + + /** + * 最新消息内容 + */ + val lastestMsg: LastestMsg? = null, + + @SerialName("msgId") + val msgID: String, + + /** + * 消息时间 + */ + val msgTime: String, + + /** + * 对方昵称 + */ + val peerName: String, + + /** + * 对方账号 + */ + val peerUin: String, + + val remark: String, + val sendMemberName: String, + + /** + * 发送人昵称 + */ + val sendNickName: String + ) + + /** + * 最新消息内容 + */ + @Serializable + data class LastestMsg ( + val font: Double, + + @SerialName("group_id") + val groupID: Double? = null, + + val message: List, + + @SerialName("message_format") + val messageFormat: String, + + @SerialName("message_type") + val messageType: String, + + @SerialName("post_type") + val postType: String, + + @SerialName("raw_message") + val rawMessage: String, + + @SerialName("real_seq") + val realSeq: String, + + @SerialName("self_id") + val selfID: Double, + + val sender: Sender, + + @SerialName("sub_type") + val subType: String, + + val time: Double, + + @SerialName("user_id") + val userID: Double + ) + + /** + * 消息详情 + */ + @Serializable + data class SpecificMsg ( + val font: Double, + + @SerialName("group_id") + val groupID: Double? = null, + + val message: List, + + @SerialName("message_format") + val messageFormat: String, + + @SerialName("message_id") + val messageID: Double, + + @SerialName("message_seq") + val messageSeq: Double, + + @SerialName("message_type") + val messageType: String, + + @SerialName("post_type") + val postType: String, + + @SerialName("raw_message") + val rawMessage: String, + + @SerialName("real_id") + val realID: Double, + + @SerialName("real_seq") + val realSeq: String, + + @SerialName("self_id") + val selfID: Double, + + val sender: Sender, + + @SerialName("sub_type") + val subType: String, + + val time: Double, + + @SerialName("user_id") + val userID: Double + ) + + @Serializable + sealed class Content { + class StringValue(val value: String) : Content() + class SpecificMsgList(val value: List) : Content() + } + + @Serializable + data class Data ( + val text: String? = null, + val name: String? = null, + val qq: Qq? = null, + val id: Qq? = null, + val file: String? = null, + + /** + * 外显 + */ + val summary: String? = null, + + val data: String? = null, + val content: Content? = null + ) + + /** + * 文本消息 + * + * 艾特消息 + * + * 表情消息 + * + * 图片消息 + * + * 文件消息 + * + * 回复消息 + * + * JSON消息 + * + * 语音消息 + * + * 视频消息 + * + * markdown消息 + * + * 消息forward + */ + @Serializable + data class TextMsg ( + val data: Data, + val type: MessageType + ) + override fun subtype(): String { + return "get_recent_contact" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStatusEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStatusEvent.kt new file mode 100644 index 0000000..6f59dd1 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStatusEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * GetStatus事件 + * @property data 响应数据 + */ +@Serializable +data class GetStatusEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val good: Boolean, + val online: Boolean, + val stat: JsonObject + ) + override fun subtype(): String { + return "get_status" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStrangerInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStrangerInfoEvent.kt new file mode 100644 index 0000000..4a2f116 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetStrangerInfoEvent.kt @@ -0,0 +1,102 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetStrangerInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetStrangerInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + /** + * 年龄 + */ + val age: Double, + + /** + * 是否会员 + */ + @SerialName("is_vip") + val isVip: Boolean, + + /** + * 是否年费会员 + */ + @SerialName("is_years_vip") + val isYearsVip: Boolean, + + /** + * 连续登录天数 + */ + @SerialName("login_days") + val loginDays: Double, + + /** + * 个性签名 + */ + @SerialName("long_nick") + val longNick: String, + + /** + * 昵称 + */ + val nickname: String, + + val qid: String, + + /** + * 账号等级 + */ + val qqLevel: Double, + + /** + * 注册时间 + */ + @SerialName("reg_time") + val regTime: Double, + + /** + * 备注 + */ + val remark: String, + + /** + * 性别 + */ + val sex: String, + + val status: Double, + val uid: String, + val uin: String, + + @SerialName("user_id") + val userID: Double, + + /** + * 会员等级 + */ + @SerialName("vip_level") + val vipLevel: Double + ) + override fun subtype(): String { + return "get_stranger_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetUnidirectionalFriendListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetUnidirectionalFriendListEvent.kt new file mode 100644 index 0000000..b8c8743 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetUnidirectionalFriendListEvent.kt @@ -0,0 +1,43 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.Developing + +/** + * GetUnidirectionalFriendList事件 + * @property data 响应数据 + */ +@Developing +@Serializable +data class GetUnidirectionalFriendListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: List +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Datum ( + val age: Double, + + @SerialName("nick_name") + val nickName: String, + + val source: String, + val uid: String, + val uin: Double + ) + override fun subtype(): String { + return "get_unidirectional_friend_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkAllAsReadEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkAllAsReadEvent.kt new file mode 100644 index 0000000..5e78b54 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkAllAsReadEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * MarkAllAsRead事件 + * @property data 响应数据 + */ +@Serializable +data class MarkAllAsReadEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "_mark_all_as_read" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkGroupMsgAsReadEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkGroupMsgAsReadEvent.kt new file mode 100644 index 0000000..0e4adcd --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkGroupMsgAsReadEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * MarkGroupMsgAsRead事件 + * @property data 响应数据 + */ +@Serializable +data class MarkGroupMsgAsReadEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "mark_group_msg_as_read" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkPrivateMsgAsReadEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkPrivateMsgAsReadEvent.kt new file mode 100644 index 0000000..d94ffa0 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/MarkPrivateMsgAsReadEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * MarkPrivateMsgAsRead事件 + * @property data 响应数据 + */ +@Serializable +data class MarkPrivateMsgAsReadEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "mark_private_msg_as_read" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/NcGetUserStatusEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/NcGetUserStatusEvent.kt new file mode 100644 index 0000000..ff7cd86 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/NcGetUserStatusEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * NcGetUserStatus事件 + * @property data 响应数据 + */ +@Serializable +data class NcGetUserStatusEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val status:Double, + @SerialName("ext_status") + val extStatus:Double + ) + override fun subtype(): String { + return "nc_get_user_status" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SendLikeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SendLikeEvent.kt new file mode 100644 index 0000000..1fc9962 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SendLikeEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SendLike事件 + * @property data 响应数据 + */ +@Serializable +data class SendLikeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "send_like" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetDiyOnlineStatusEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetDiyOnlineStatusEvent.kt new file mode 100644 index 0000000..ee2b90a --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetDiyOnlineStatusEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * SetDiyOnlineStatus事件 + * @property data 响应数据 + */ +@Serializable +data class SetDiyOnlineStatusEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: String +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_diy_online_status" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendAddRequestEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendAddRequestEvent.kt new file mode 100644 index 0000000..9f6d3cf --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendAddRequestEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetFriendAddRequest事件 + * @property data 响应数据 + */ +@Serializable +data class SetFriendAddRequestEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_friend_add_request" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendRemarkEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendRemarkEvent.kt new file mode 100644 index 0000000..ec94659 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetFriendRemarkEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetFriendRemark事件 + * @property data 响应数据 + */ +@Serializable +data class SetFriendRemarkEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_friend_remark" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetModelShowEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetModelShowEvent.kt new file mode 100644 index 0000000..467200b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetModelShowEvent.kt @@ -0,0 +1,33 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.Developing + +/** + * SetModelShow事件 + * @property data 响应数据 + */ +@Developing +@Serializable +data class SetModelShowEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "_set_model_show" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetOnlineStatusEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetOnlineStatusEvent.kt index c6f63c3..66f7bb1 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetOnlineStatusEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetOnlineStatusEvent.kt @@ -19,6 +19,6 @@ data class SetOnlineStatusEvent( val data: JsonElement? = null, ) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { - override fun subtype(): String = "/set_online_status" + override fun subtype(): String = "set_online_status" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetQqAvatarEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetQqAvatarEvent.kt new file mode 100644 index 0000000..0ef556d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetQqAvatarEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetQqAvatar事件 + * @property data 响应数据 + */ +@Serializable +data class SetQqAvatarEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_qq_avatar" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetSelfLongnickEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetSelfLongnickEvent.kt new file mode 100644 index 0000000..2883ca9 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/SetSelfLongnickEvent.kt @@ -0,0 +1,34 @@ + +package top.r3944realms.ltdmanager.napcat.events.account + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * SetSelfLongnick事件 + * @property data 响应数据 + */ +@Serializable +data class SetSelfLongnickEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val result: Double, + val errMsg: String + ) + override fun subtype(): String { + return "set_self_longnick" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/AbstractFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/AbstractFileEvent.kt index 623cec6..2ca90dc 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/AbstractFileEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/AbstractFileEvent.kt @@ -1,10 +1,12 @@ package top.r3944realms.ltdmanager.napcat.events.file import kotlinx.serialization.KSerializer +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent /** @@ -38,11 +40,115 @@ abstract class AbstractFileEvent( */ open val echo: String? = null ) : NapCatEvent() { + @Serializable + data class OkData( + val ok:Boolean + ) + @Serializable + data class UrlData( + val url: String + ) + /** + * 群文件信息 + */ + @Serializable + data class GroupFileInformation ( + val busid: Double, + + @SerialName("dead_time") + val deadTime: Double, + + @SerialName("download_times") + val downloadTimes: Double, + + @SerialName("file_id") + val fileID: String, + + @SerialName("file_name") + val fileName: String, + + @SerialName("file_size") + val fileSize: Double, + + @SerialName("group_id") + val groupID: Double, + + @SerialName("modify_time") + val modifyTime: Double, + + val size: Double, + + @SerialName("upload_time") + val uploadTime: Double, + + val uploader: Double, + + @SerialName("uploader_name") + val uploaderName: String + ) + + /** + * 群文件夹信息 + */ + @Serializable + data class GroupFolderInformation ( + /** + * 创建时间 + */ + @SerialName("create_time") + val createTime: Double, + + /** + * 创建人账号 + */ + val creator: Double, + + /** + * 创建人昵称 + */ + @SerialName("creator_name") + val creatorName: String, + + val folder: String, + + @SerialName("folder_id") + val folderID: String, + + /** + * 文件夹名称 + */ + @SerialName("folder_name") + val folderName: String, + + @SerialName("group_id") + val groupID: Double, + + /** + * 文件数量 + */ + @SerialName("total_file_count") + val totalFileCount: Double + ) override fun type(): String = "file/" + subtype() companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("file/move_group_file", MoveGroupFileEvent.serializer()) + put("file/trans_group_file", TransGroupFileEvent.serializer()) + put("file/rename_group_file", RenameGroupFileEvent.serializer()) + put("file/upload_group_file",UploadGroupFileEvent.serializer()) + put("file/create_group_file_folder",CreateGroupFileFolderEvent.serializer()) + put("file/delete_group_file", DeleteGroupFileEvent.serializer()) + put("file/delete_group_folder", DeleteGroupFolderEvent.serializer()) + put("file/get_group_file_system_info", GetGroupFileSystemInfoEvent.serializer()) + put("file/get_group_root_files", GetGroupRootFilesEvent.serializer()) + put("file/get_group_files_by_folder", GetGroupFilesByFolderEvent.serializer()) + put("file/get_group_file_url",GetGroupFileUrlEvent.serializer()) + put("file/upload_private_file", UploadGroupFileEvent.serializer()) + put("file/get_private_file_url", GetPrivateFileUrlEvent.serializer()) + put("file/get_file", GetFileEvent.serializer()) + put("file/download_file", DownloadFileEvent.serializer()) + put("file/clean_cache", CleanCacheEvent.serializer()) } } internal val json: Json by lazy { @@ -50,7 +156,22 @@ abstract class AbstractFileEvent( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(MoveGroupFileEvent::class) + subclass(TransGroupFileEvent::class) + subclass(RenameGroupFileEvent::class) + subclass(UploadGroupFileEvent::class) + subclass(CreateGroupFileFolderEvent::class) + subclass(DeleteGroupFileEvent::class) + subclass(DeleteGroupFolderEvent::class) + subclass(GetGroupFileSystemInfoEvent::class) + subclass(GetGroupRootFilesEvent::class) + subclass(GetGroupFilesByFolderEvent::class) + subclass(GetGroupFileUrlEvent::class) + subclass(UploadGroupFileEvent::class) + subclass(GetPrivateFileUrlEvent::class) + subclass(GetFileEvent::class) + subclass(DownloadFileEvent::class) + subclass(CleanCacheEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CleanCacheEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CleanCacheEvent.kt new file mode 100644 index 0000000..775c97c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CleanCacheEvent.kt @@ -0,0 +1,33 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.Developing + +/** + * CleanCache事件 + * @property data 响应数据 + */ +@Developing +@Serializable +data class CleanCacheEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "clean_cache" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CreateGroupFileFolderEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CreateGroupFileFolderEvent.kt new file mode 100644 index 0000000..19747f5 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/CreateGroupFileFolderEvent.kt @@ -0,0 +1,81 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * CreateGroupFileFolder事件 + * @property data 响应数据 + */ +@Serializable +data class CreateGroupFileFolderEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val groupItem: GroupItem, + val result: Result + ) + + @Serializable + data class GroupItem ( + val fileInfo: String? = null, + + /** + * 文件夹信息 + */ + val folderInfo: FolderInfo, + + @SerialName("peerId") + val peerID: String, + + val type: Double + ) + + /** + * 文件夹信息 + */ + @Serializable + data class FolderInfo ( + val createTime: Double, + val createUin: String, + val creatorName: String, + + @SerialName("folderId") + val folderID: String, + + val folderName: String, + val modifyName: String, + val modifyTime: Double, + val modifyUin: String, + + @SerialName("parentFolderId") + val parentFolderID: String, + + val totalFileCount: Double, + val usedSpace: String + ) + + @Serializable + data class Result ( + val clientWording: String, + val retCode: Double, + val retMsg: String + ) + override fun subtype(): String { + return "create_group_file_folder" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFileEvent.kt new file mode 100644 index 0000000..a265a0f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFileEvent.kt @@ -0,0 +1,54 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * DeleteGroupFile事件 + * @property data 响应数据 + */ +@Serializable +data class DeleteGroupFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val errMsg: String, + val result: Double, + val transGroupFileResult: TransGroupFileResult + ) + + @Serializable + data class TransGroupFileResult ( + @SerialName("failFileIdList") + val failFileIDList: List, + + val result: Result, + + @SerialName("successFileIdList") + val successFileIDList: List + ) + + @Serializable + data class Result ( + val clientWording: String, + val retCode: Double, + val retMsg: String + ) + override fun subtype(): String { + return "delete_group_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFolderEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFolderEvent.kt new file mode 100644 index 0000000..665146b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DeleteGroupFolderEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * DeleteGroupFolder事件 + * @property data 响应数据 + */ +@Serializable +data class DeleteGroupFolderEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val clientWording: String, + val retCode: Double, + val retMsg: String + ) + + override fun subtype(): String { + return "delete_group_folder" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DownloadFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DownloadFileEvent.kt new file mode 100644 index 0000000..6e4683f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/DownloadFileEvent.kt @@ -0,0 +1,33 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * DownloadFile事件 + * @property data 响应数据 + */ +@Serializable +data class DownloadFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val file: String + ) + override fun subtype(): String { + return "download_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetFileEvent.kt new file mode 100644 index 0000000..ad76f13 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetFileEvent.kt @@ -0,0 +1,56 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetFile事件 + * @property data 响应数据 + */ +@Serializable +data class GetFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val base64: String, + + /** + * 路径或链接 + */ + val file: String, + + /** + * 文件名 + */ + @SerialName("file_name") + val fileName: String, + + /** + * 文件大小 + */ + @SerialName("file_size") + val fileSize: String, + + /** + * 路径或链接 + */ + val url: String + ) + override fun subtype(): String { + return "get_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileSystemInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileSystemInfoEvent.kt new file mode 100644 index 0000000..9dca6d0 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileSystemInfoEvent.kt @@ -0,0 +1,56 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupFileSystemInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupFileSystemInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + /** + * 文件总数 + */ + @SerialName("file_count") + val fileCount: Double, + + /** + * 文件上限 + */ + @SerialName("limit_count") + val limitCount: Double, + + /** + * 空间上限 + */ + @SerialName("total_space") + val totalSpace: Double, + + /** + * 已使用空间 + */ + @SerialName("used_space") + val usedSpace: Double + ) + override fun subtype(): String { + return "get_group_file_system_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileUrlEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileUrlEvent.kt new file mode 100644 index 0000000..c8e3315 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFileUrlEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupFileUrl事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupFileUrlEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: UrlData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_file_url" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFilesByFolderEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFilesByFolderEvent.kt new file mode 100644 index 0000000..505e3fe --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupFilesByFolderEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.file.GetGroupRootFilesEvent.FileData + +/** + * GetGroupFilesByFolder事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupFilesByFolderEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: FileData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_files_by_folder" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupRootFilesEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupRootFilesEvent.kt new file mode 100644 index 0000000..4efc1df --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetGroupRootFilesEvent.kt @@ -0,0 +1,43 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupRootFiles事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupRootFilesEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: FileData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class FileData ( + /** + * 文件列表 + */ + val files: List, + + /** + * 文件夹列表 + */ + val folders: List + ) + + + override fun subtype(): String { + return "get_group_root_files" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetPrivateFileUrlEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetPrivateFileUrlEvent.kt new file mode 100644 index 0000000..ae8812c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/GetPrivateFileUrlEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetPrivateFileUrl事件 + * @property data 响应数据 + */ +@Serializable +data class GetPrivateFileUrlEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: UrlData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_private_file_url" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/MoveGroupFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/MoveGroupFileEvent.kt new file mode 100644 index 0000000..10952e7 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/MoveGroupFileEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * MoveGroupFile事件 + * @property okData 响应数据 + */ +@Serializable +data class MoveGroupFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: OkData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "move_group_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/RenameGroupFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/RenameGroupFileEvent.kt new file mode 100644 index 0000000..bcd26fb --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/RenameGroupFileEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * RenameGroupFile事件 + * @property data 响应数据 + */ +@Serializable +data class RenameGroupFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: OkData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "rename_group_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/TransGroupFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/TransGroupFileEvent.kt new file mode 100644 index 0000000..8be47ec --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/TransGroupFileEvent.kt @@ -0,0 +1,30 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * TransGroupFile事件 + * @property data 响应数据 + */ +@Serializable +data class TransGroupFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: OkData +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "trans_group_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadGroupFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadGroupFileEvent.kt new file mode 100644 index 0000000..85b26f9 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadGroupFileEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * UploadGroupFile事件 + * @property data 响应数据 + */ +@Serializable +data class UploadGroupFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "upload_group_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadPrivateFileEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadPrivateFileEvent.kt new file mode 100644 index 0000000..730563e --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/file/UploadPrivateFileEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.file + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * UploadPrivateFile事件 + * @property data 响应数据 + */ +@Serializable +data class UploadPrivateFileEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "upload_private_file" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/AbstractGroupEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/AbstractGroupEvent.kt index 9c8bc53..5f9c94b 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/AbstractGroupEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/AbstractGroupEvent.kt @@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent /** @@ -43,7 +44,40 @@ open val echo: String? = null companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("group/get_group_info",GetGroupInfoEvent.serializer()) + put("group/get_group_info_ex",GetGroupInfoExEvent.serializer()) + put("group/get_group_detail_info",GetGroupDetailInfoEvent.serializer()) + put("group/get_group_list",GetGroupListEvent.serializer()) + put("group/get_group_member_info",GetGroupMemberInfoEvent.serializer()) + put("group/get_group_member_list",GetGroupMemberListEvent.serializer()) + put("group/get_group_honor_info",GetGroupHonorInfoEvent.serializer()) + put("group/get_group_at_all_remain",GetGroupAtAllRemainEvent.serializer()) + put("group/get_group_shut_list",GetGroupShutListEvent.serializer()) + put("group/get_group_ignored_notifies",GetGroupIgnoredNotifiesEvent.serializer()) + put("group/get_group_system_msg",GetGroupSystemMsgEvent.serializer()) + put("group/get_essence_msg_list",GetEssenceMsgListEvent.serializer()) + put("group/set_group_name",SetGroupNameEvent.serializer()) + put("group/set_group_portrait",SetGroupPortraitEvent.serializer()) + put("group/set_group_search",SetGroupSearchEvent.serializer()) + put("group/set_group_add_option",SetGroupAddOptionEvent.serializer()) + put("group/set_group_robot_add_option",SetGroupRobotAddOptionEvent.serializer()) + put("group/set_group_remark",SetGroupRemarkEvent.serializer()) + put("group/set_group_card",SetGroupCardEvent.serializer()) + put("group/set_group_special_title",SetGroupSpecialTitleEvent.serializer()) + put("group/set_group_admin",SetGroupAdminEvent.serializer()) + put("group/set_group_leave",SetGroupLeaveEvent.serializer()) + put("group/set_essence_msg",SetEssenceMsgEvent.serializer()) + put("group/delete_essence_msg", DeleteEssenceMsgEvent.serializer()) + put("group/_send_group_notice",SendGroupNoticeEvent.serializer()) + put("group/_get_group_notice",GetGroupNoticeEvent.serializer()) + put("group/_del_group_notice",DelGroupNoticeEvent.serializer()) + put("group/set_group_kick",SetGroupKickEvent.serializer()) + put("group/set_group_kick_members",SetGroupKickMembersEvent.serializer()) + put("group/set_group_ban",SetGroupBanEvent.serializer()) + put("group/set_group_whole_ban",SetGroupWholeBanEvent.serializer()) + put("group/set_group_sign",SetGroupSignEvent.serializer()) + put("group/send_group_sign",SendGroupSignEvent.serializer()) + put("group/set_group_add_request",SetGroupAddRequestEvent.serializer()) } } internal val json: Json by lazy { @@ -51,7 +85,40 @@ open val echo: String? = null ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(GetGroupInfoEvent::class) + subclass(GetGroupInfoExEvent::class) + subclass(GetGroupDetailInfoEvent::class) + subclass(GetGroupListEvent::class) + subclass(GetGroupMemberInfoEvent::class) + subclass(GetGroupMemberListEvent::class) + subclass(GetGroupHonorInfoEvent::class) + subclass(GetGroupAtAllRemainEvent::class) + subclass(GetGroupShutListEvent::class) + subclass(GetGroupIgnoredNotifiesEvent::class) + subclass(GetGroupSystemMsgEvent::class) + subclass(GetEssenceMsgListEvent::class) + subclass(SetGroupNameEvent::class) + subclass(SetGroupPortraitEvent::class) + subclass(SetGroupSearchEvent::class) + subclass(SetGroupAddOptionEvent::class) + subclass(SetGroupRobotAddOptionEvent::class) + subclass(SetGroupRemarkEvent::class) + subclass(SetGroupCardEvent::class) + subclass(SetGroupSpecialTitleEvent::class) + subclass(SetGroupAdminEvent::class) + subclass(SetGroupLeaveEvent::class) + subclass(SetEssenceMsgEvent::class) + subclass(DeleteEssenceMsgEvent::class) + subclass(SendGroupNoticeEvent::class) + subclass(GetGroupNoticeEvent::class) + subclass(DelGroupNoticeEvent::class) + subclass(SetGroupKickEvent::class) + subclass(SetGroupKickMembersEvent::class) + subclass(SetGroupBanEvent::class) + subclass(SetGroupWholeBanEvent::class) + subclass(SetGroupSignEvent::class) + subclass(SendGroupSignEvent::class) + subclass(SetGroupAddRequestEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DelGroupNoticeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DelGroupNoticeEvent.kt new file mode 100644 index 0000000..683ea9d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DelGroupNoticeEvent.kt @@ -0,0 +1,34 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * DelGroupNotice事件 + * @property data 响应数据 + */ +@Serializable +data class DelGroupNoticeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val result: Double, + val errMsg: String + ) + override fun subtype(): String { + return "_del_group_notice" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DeleteEssenceMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DeleteEssenceMsgEvent.kt new file mode 100644 index 0000000..3ab70e1 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/DeleteEssenceMsgEvent.kt @@ -0,0 +1,49 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * DeleteEssenceMsg事件 + * @property data 响应数据 + */ +@Serializable +data class DeleteEssenceMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val errCode: String, + val errMsg: String, + val result: Result + ) + + @Serializable + data class Result ( + val digestTime: String, + val digestUin: String, + val msg: JsonObject, + + /** + * 正常为空,异常有文本提示 + */ + val wording: String + ) + override fun subtype(): String { + return "delete_essence_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetEssenceMsgListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetEssenceMsgListEvent.kt new file mode 100644 index 0000000..ddbebb6 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetEssenceMsgListEvent.kt @@ -0,0 +1,96 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetEssenceMsgList事件 + * @property data 响应数据 + */ +@Serializable +data class GetEssenceMsgListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: List +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Datum ( + /** + * 消息内容 + */ + val content: List, + + @SerialName("message_id") + val messageID: Double, + + @SerialName("msg_random") + val msgRandom: Double, + + @SerialName("msg_seq") + val msgSeq: Double, + + /** + * 设精人账号 + */ + @SerialName("operator_id") + val operatorID: Double, + + /** + * 设精人昵称 + */ + @SerialName("operator_nick") + val operatorNick: String, + + /** + * 设精时间 + */ + @SerialName("operator_time") + val operatorTime: Double, + + /** + * 发送人账号 + */ + @SerialName("sender_id") + val senderID: Double, + + /** + * 发送人昵称 + */ + @SerialName("sender_nick") + val senderNick: String + ) + /** + * 文本消息 + */ + @Serializable + data class Content ( + val data: Data, + val type: Type + ) + + @Serializable + data class Data ( + val text: String? = null, + val url: String? = null + ) + + @Serializable + enum class Type(val value: String) { + @SerialName("image") Image("image"), + @SerialName("text") Text("text"); + } + override fun subtype(): String { + return "get_essence_msg_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupAtAllRemainEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupAtAllRemainEvent.kt new file mode 100644 index 0000000..b1902ea --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupAtAllRemainEvent.kt @@ -0,0 +1,41 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupAtAllRemain事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupAtAllRemainEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + @SerialName("can_at_all") + val canAtAll: Boolean, + + @SerialName("remain_at_all_count_for_group") + val remainAtAllCountForGroup: Double, + + @SerialName("remain_at_all_count_for_uin") + val remainAtAllCountForUin: Double + ) + override fun subtype(): String { + return "get_group_at_all_remain" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupDetailInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupDetailInfoEvent.kt new file mode 100644 index 0000000..2674a40 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupDetailInfoEvent.kt @@ -0,0 +1,50 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupDetailInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupDetailInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + @SerialName("group_all_shut") + val groupAllShut: Double, + + @SerialName("group_id") + val groupID: Double, + + @SerialName("group_name") + val groupName: String, + + @SerialName("group_remark") + val groupRemark: String, + + @SerialName("max_member_count") + val maxMemberCount: Double, + + @SerialName("member_count") + val memberCount: Double + ) + override fun subtype(): String { + return "get_group_detail_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupHonorInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupHonorInfoEvent.kt new file mode 100644 index 0000000..8ff26ac --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupHonorInfoEvent.kt @@ -0,0 +1,91 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupHonorInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupHonorInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + /** + * 当前龙王 + */ + @SerialName("current_talkative") + val currentTalkative: GroupHonorInfo, + + /** + * 快乐源泉 + */ + @SerialName("emotion_list") + val emotionList: List, + + @SerialName("group_id") + val groupID: String, + + /** + * 龙王 + */ + @SerialName("legend_list") + val legendList: List, + + /** + * 群聊炽焰 + */ + @SerialName("performer_list") + val performerList: List, + + /** + * 冒尖小春笋 + */ + @SerialName("strong_newbie_list") + val strongNewbieList: List, + + /** + * 群聊之火 + */ + @SerialName("talkative_list") + val talkativeList: List + ) + + /** + * 当前龙王 + * + * 群荣誉信息 + */ + @Serializable + data class GroupHonorInfo ( + val avatar: Double? = null, + + /** + * 说明 + */ + val description: String? = null, + + val nickname: String? = null, + + @SerialName("user_id") + val userID: Double? = null + ) + override fun subtype(): String { + return "get_group_honor_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupIgnoredNotifiesEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupIgnoredNotifiesEvent.kt new file mode 100644 index 0000000..da61e0e --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupIgnoredNotifiesEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupIgnoredNotifies事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupIgnoredNotifiesEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: GetGroupSystemMsgEvent.Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_ignored_notifies" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoEvent.kt new file mode 100644 index 0000000..db3c017 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * GetGroupInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonObject +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoExEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoExEvent.kt new file mode 100644 index 0000000..40a8da4 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupInfoExEvent.kt @@ -0,0 +1,132 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupInfoEx事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupInfoExEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val extInfo: EXTInfo, + val groupCode: String, + val resultCode: Double + ) + + @Serializable + data class EXTInfo ( + @SerialName("bindGuildId") + val bindGuildID: String, + + val blacklistExpireTime: Double, + + @SerialName("companyId") + val companyID: Double, + + val essentialMsgPrivilege: Double, + val essentialMsgSwitch: Double, + val fullGroupExpansionSeq: String, + val fullGroupExpansionSwitch: Double, + + @SerialName("gangUpId") + val gangUpID: String, + + @SerialName("groupAioBindGuildId") + val groupAioBindGuildID: String, + + @SerialName("groupBindGuildIds") + val groupBindGuildIDS: GroupBindGuildIDS, + + val groupBindGuildSwitch: Double, + + @SerialName("groupExcludeGuildIds") + val groupExcludeGuildIDS: GroupExcludeGuildIDS, + + @SerialName("groupExtFlameData") + val groupEXTFlameData: GroupEXTFlameData, + + val groupFlagPro1: String, + + @SerialName("groupInfoExtSeq") + val groupInfoEXTSeq: Double, + + @SerialName("groupOwnerId") + val groupOwnerID: GroupOwnerID, + + val groupSquareSwitch: Double, + val hasGroupCustomPortrait: Double, + val inviteRobotMemberExamine: Double, + val inviteRobotMemberSwitch: Double, + val inviteRobotSwitch: Double, + + @SerialName("isLimitGroupRtc") + val isLimitGroupRTC: Double, + + val lightCharNum: Double, + val luckyWord: String, + + @SerialName("luckyWordId") + val luckyWordID: String, + + val msgEventSeq: String, + val qqMusicMedalSwitch: Double, + val reserve: Double, + val showPlayTogetherSwitch: Double, + + @SerialName("starId") + val starID: Double, + + val todoSeq: Double, + val viewedMsgDisappearTime: String + ) + + @Serializable + data class GroupBindGuildIDS ( + @SerialName("guildIds") + val guildIDS: List + ) + + @Serializable + data class GroupEXTFlameData ( + val dayNums: List, + val isDisplayDayNum: Boolean, + val state: Long, + val switchState: Long, + val updateTime: String, + val version: Long + ) + + @Serializable + data class GroupExcludeGuildIDS ( + @SerialName("guildIds") + val guildIDS: List + ) + + @Serializable + data class GroupOwnerID ( + val memberQid: String, + val memberUid: String, + val memberUin: String + ) + override fun subtype(): String { + return "get_group_info_ex" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupListEvent.kt new file mode 100644 index 0000000..f3f7d4d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupListEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonArray + +/** + * GetGroupList事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonArray +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberInfoEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberInfoEvent.kt new file mode 100644 index 0000000..9b6d548 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberInfoEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * GetGroupMemberInfo事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupMemberInfoEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonObject +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_member_info" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberListEvent.kt new file mode 100644 index 0000000..f9e50ad --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupMemberListEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonArray + +/** + * GetGroupMemberList事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupMemberListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonArray +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_member_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupNoticeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupNoticeEvent.kt new file mode 100644 index 0000000..806a452 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupNoticeEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * GetGroupNotice事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupNoticeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "_get_group_notice" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupShutListEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupShutListEvent.kt new file mode 100644 index 0000000..d86b26e --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupShutListEvent.kt @@ -0,0 +1,100 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * GetGroupShutList事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupShutListEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: List +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Datum ( + val autoRemark: String, + val avatarPath: String, + val bigClubFlag: Double, + val bigClubLevel: Double, + val cardName: String, + + @SerialName("cardNameId") + val cardNameID: Double, + + val cardType: Double, + val creditLevel: Double, + val globalGroupLevel: Double, + val globalGroupPoint: Double, + val groupHonor: JsonObject, + val isDelete: Boolean, + val isRobot: Boolean, + val isSpecialConcerned: Boolean, + val isSpecialShield: Boolean, + val isSpecialShielded: Boolean, + + /** + * 入群时间 + */ + val joinTime: Double, + + /** + * 最后发言时间 + */ + val lastSpeakTime: Double, + + val memberFlag: Double, + + @SerialName("memberFlagExt") + val memberFlagEXT: Double, + + val memberFlagExt2: Double, + val memberLevel: Double, + val memberMobileFlag: Double, + + /** + * 群聊等级 + */ + val memberRealLevel: Double, + + val memberSpecialTitle: String, + + @SerialName("memberTitleId") + val memberTitleID: Double, + + val mssVipType: Double, + val nick: String, + val qid: String, + val remark: String, + val richFlag: Double, + val role: Double, + + /** + * 解禁时间 + */ + val shutUpTime: Double, + + val specialTitleExpireTime: String, + val uid: String, + val uin: String, + val userShowFlag: Double, + val userShowFlagNew: Double + ) + override fun subtype(): String { + return "get_group_shut_list" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupSystemMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupSystemMsgEvent.kt new file mode 100644 index 0000000..423d21d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/GetGroupSystemMsgEvent.kt @@ -0,0 +1,67 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * GetGroupSystemMsg事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupSystemMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + @SerialName("InvitedRequest") + val invitedRequest: List, + + @SerialName("join_requests") + val joinRequests: List + ) + + /** + * 系统信息 + */ + @Serializable + data class SystemInfo ( + val actor: Double, + val checked: Boolean, + + @SerialName("group_id") + val groupID: Double, + + @SerialName("group_name") + val groupName: String, + + @SerialName("invitor_nick") + val invitorNick: String, + + @SerialName("invitor_uin") + val invitorUin: Double, + + val message: String, + + @SerialName("request_id") + val requestID: Double, + + @SerialName("requester_nick") + val requesterNick: String + ) + override fun subtype(): String { + return "get_group_system_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupNoticeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupNoticeEvent.kt new file mode 100644 index 0000000..978ed5b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupNoticeEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SendGroupNotice事件 + * @property data 响应数据 + */ +@Serializable +data class SendGroupNoticeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "_send_group_notice" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupSignEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupSignEvent.kt new file mode 100644 index 0000000..f30f9fd --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SendGroupSignEvent.kt @@ -0,0 +1,21 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.NapCatEvent + +/** + * SendGroupSign事件 + */ +@Serializable +class SendGroupSignEvent: NapCatEvent() { + override fun type(): String { + return "group/" + subtype() + } + + override fun subtype(): String { + return "send_group_sign" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetEssenceMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetEssenceMsgEvent.kt new file mode 100644 index 0000000..1cfa7d3 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetEssenceMsgEvent.kt @@ -0,0 +1,49 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject + +/** + * SetEssenceMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SetEssenceMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val errCode: String, + val errMsg: String, + val result: Result + ) + + @Serializable + data class Result ( + val digestTime: Double, + val digestUin: String, + val errorCode: Double, + val msg: JsonObject, + + /** + * 正常为空,异常有文本提示 + */ + val wording: String + ) + override fun subtype(): String { + return "set_essence_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddOptionEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddOptionEvent.kt new file mode 100644 index 0000000..7b762fc --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddOptionEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupAddOption事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupAddOptionEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_add_option" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddRequestEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddRequestEvent.kt new file mode 100644 index 0000000..848e916 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAddRequestEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupAddRequest事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupAddRequestEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_add_request" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAdminEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAdminEvent.kt new file mode 100644 index 0000000..7e17c7d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupAdminEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupAdmin事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupAdminEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_admin" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupBanEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupBanEvent.kt new file mode 100644 index 0000000..050dbd5 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupBanEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupBan事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupBanEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_ban" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupCardEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupCardEvent.kt new file mode 100644 index 0000000..2a08494 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupCardEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupCard事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupCardEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_card" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickEvent.kt new file mode 100644 index 0000000..475bf27 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupKick事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupKickEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_kick" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickMembersEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickMembersEvent.kt new file mode 100644 index 0000000..d9ea2c9 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupKickMembersEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupKickMembers事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupKickMembersEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_kick_members" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupLeaveEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupLeaveEvent.kt new file mode 100644 index 0000000..095de87 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupLeaveEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupLeave事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupLeaveEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_leave" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupNameEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupNameEvent.kt new file mode 100644 index 0000000..0dd58af --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupNameEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupName事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupNameEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_name" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupPortraitEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupPortraitEvent.kt new file mode 100644 index 0000000..f18ad97 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupPortraitEvent.kt @@ -0,0 +1,38 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient + +/** + * SetGroupPortrait事件 + * @property data 响应数据 + */ + +@Serializable +data class SetGroupPortraitEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + @Serializable + data class Data( + //TODO: 文档里Data result字段类型存疑(返回响应与示例不一致),需验证 + // https://napcat.apifox.cn/226658669e0 + val result: String, + val errMsg: String + ) + override fun subtype(): String { + return "set_group_portrait" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRemarkEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRemarkEvent.kt new file mode 100644 index 0000000..c85133c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRemarkEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupRemark事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupRemarkEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_remark" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRobotAddOptionEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRobotAddOptionEvent.kt new file mode 100644 index 0000000..f41f3ca --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupRobotAddOptionEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupRobotAddOption事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupRobotAddOptionEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_robot_add_option" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSearchEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSearchEvent.kt new file mode 100644 index 0000000..8c8d0f5 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSearchEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupSearch事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupSearchEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_search" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSignEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSignEvent.kt new file mode 100644 index 0000000..82fde77 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSignEvent.kt @@ -0,0 +1,18 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import top.r3944realms.ltdmanager.napcat.events.NapCatEvent + +/** + * SetGroupSign事件 + */ +@Serializable +class SetGroupSignEvent : NapCatEvent() { + override fun type(): String { + return "group/" + subtype() + } + override fun subtype(): String { + return "set_group_sign" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSpecialTitleEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSpecialTitleEvent.kt new file mode 100644 index 0000000..97c6dd4 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupSpecialTitleEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupSpecialTitle事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupSpecialTitleEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_special_title" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupWholeBanEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupWholeBanEvent.kt new file mode 100644 index 0000000..c67a423 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/SetGroupWholeBanEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement + +/** + * SetGroupWholeBan事件 + * @property data 响应数据 + */ +@Serializable +data class SetGroupWholeBanEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "set_group_whole_ban" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/AbstractMessageEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/AbstractMessageEvent.kt index 38220b5..d8a45de 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/AbstractMessageEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/AbstractMessageEvent.kt @@ -5,7 +5,16 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent +import top.r3944realms.ltdmanager.napcat.events.message.group.ForwardGroupSingleMsgEvent +import top.r3944realms.ltdmanager.napcat.events.message.group.GroupPokeEvent +import top.r3944realms.ltdmanager.napcat.events.message.group.SendGroupForwardMsgEvent +import top.r3944realms.ltdmanager.napcat.events.message.personal.ForwardFriendSingleMsgEvent +import top.r3944realms.ltdmanager.napcat.events.message.personal.FriendPokeEvent +import top.r3944realms.ltdmanager.napcat.events.message.personal.SendPrivateForwardMsgEvent +import top.r3944realms.ltdmanager.napcat.events.other.SendGroupMsgEvent +import top.r3944realms.ltdmanager.napcat.events.other.SendPrivateMsgEvent /** * QQ 消息相关响应抽象 @@ -43,7 +52,26 @@ abstract class AbstractMessageEvent ( companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("message/send_group_msg", SendGroupMsgEvent.serializer()) + put("message/send_group_forward_msg", SendGroupForwardMsgEvent.serializer()) + put("message/forward_group_single_msg", ForwardGroupSingleMsgEvent.serializer()) + put("message/group_poke", GroupPokeEvent.serializer()) + put("message/send_private_msg", SendPrivateMsgEvent.serializer()) + put("message/send_private_forward_msg", SendPrivateForwardMsgEvent.serializer()) + put("message/forward_friend_single_msg", ForwardFriendSingleMsgEvent.serializer()) + put("message/friend_poke", FriendPokeEvent.serializer()) + put("message/send_poke", SendPokeEvent.serializer()) + put("message/delete_msg", DeleteMsgEvent.serializer()) + put("message/get_group_msg_history", GetGroupMsgHistoryEvent.serializer()) + put("message/get_friend_msg_history", GetFriendMsgHistoryEvent.serializer()) + put("message/get_msg", GetMsgEvent.serializer()) + put("message/get_forward_msg", GetForwardMsgEvent.serializer()) + put("message/send_forward_msg", SendForwardMsgEvent.serializer()) + put("message/set_msg_emoji_like", SetMsgEmojiLikeEvent.serializer()) + put("message/fetch_emoji_like", FetchEmojiLikeEvent.serializer()) + put("message/get_record", GetRecordEvent.serializer()) + put("message/get_image", GetImageEvent.serializer()) + put("message/send_group_ai_record", SendGroupAiRecordEvent.serializer()) } } internal val json: Json by lazy { @@ -51,7 +79,26 @@ abstract class AbstractMessageEvent ( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(SendGroupMsgEvent::class) + subclass(SendGroupForwardMsgEvent::class) + subclass(ForwardGroupSingleMsgEvent::class) + subclass(GroupPokeEvent::class) + subclass(SendPrivateMsgEvent::class) + subclass(SendPrivateForwardMsgEvent::class) + subclass(ForwardFriendSingleMsgEvent::class) + subclass(FriendPokeEvent::class) + subclass(SendPokeEvent::class) + subclass(DeleteMsgEvent::class) + subclass(GetGroupMsgHistoryEvent::class) + subclass(GetFriendMsgHistoryEvent::class) + subclass(GetMsgEvent::class) + subclass(GetForwardMsgEvent::class) + subclass(SendForwardMsgEvent::class) + subclass(SetMsgEmojiLikeEvent::class) + subclass(FetchEmojiLikeEvent::class) + subclass(GetRecordEvent::class) + subclass(GetImageEvent::class) + subclass(SendGroupAiRecordEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/DeleteMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/DeleteMsgEvent.kt new file mode 100644 index 0000000..6b3aa32 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/DeleteMsgEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * DeleteMsg事件 + * @property data 响应数据 + */ +@Serializable +data class DeleteMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, + ) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "delete_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/FetchEmojiLikeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/FetchEmojiLikeEvent.kt new file mode 100644 index 0000000..fcf39db --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/FetchEmojiLikeEvent.kt @@ -0,0 +1,35 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * FetchEmojiLike事件 + * @property data 响应数据 + */ +@Serializable +data class FetchEmojiLikeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + val result: Double, + val errMsg: String? = null, + ) + override fun subtype(): String { + return "fetch_emoji_like" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt new file mode 100644 index 0000000..69fdf64 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt @@ -0,0 +1,172 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.data.MessageType +import top.r3944realms.ltdmanager.napcat.data.Qq +import top.r3944realms.ltdmanager.napcat.data.Sender +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetForwardMsg事件 + * @property data 响应数据 + */ +@Serializable +data class GetForwardMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val messages: List + ) + /** + * 获取合并转发消息 + */ + @Serializable + data class Msg ( + val font: Double, + + @SerialName("group_id") + val groupID: Double? = null, + + val message: List, + + @SerialName("message_format") + val messageFormat: String, + + @SerialName("message_id") + val messageID: Double, + + @SerialName("message_seq") + val messageSeq: Double, + + @SerialName("message_type") + val messageType: String, + + @SerialName("post_type") + val postType: String, + + @SerialName("raw_message") + val rawMessage: String, + + @SerialName("real_id") + val realID: Double, + + @SerialName("real_seq") + val realSeq: String, + + @SerialName("self_id") + val selfID: Double, + + val sender: Sender, + + @SerialName("sub_type") + val subType: String, + + val time: Double, + + @SerialName("user_id") + val userID: Double + ) + /** + * 文本消息 + * + * 艾特消息 + * + * 表情消息 + * + * 图片消息 + * + * 回复消息 + * + * JSON消息 + * + * 语音消息 + * + * 视频消息 + * + * markdown消息 + * + * 获取合并转发消息 + */ + @Serializable + data class Message ( + val data: MessageData? = null, + val type: MessageType? = null, + val font: Double? = null, + + @SerialName("group_id") + val groupID: Double? = null, + + val message: List? = null, + + @SerialName("message_format") + val messageFormat: String? = null, + + @SerialName("message_id") + val messageID: Double? = null, + + @SerialName("message_seq") + val messageSeq: Double? = null, + + @SerialName("message_type") + val messageType: String? = null, + + @SerialName("post_type") + val postType: String? = null, + + @SerialName("raw_message") + val rawMessage: String? = null, + + @SerialName("real_id") + val realID: Double? = null, + + @SerialName("real_seq") + val realSeq: String? = null, + + @SerialName("self_id") + val selfID: Double? = null, + + val sender: Sender? = null, + + @SerialName("sub_type") + val subType: String? = null, + + val time: Double? = null, + + @SerialName("user_id") + val userID: Double? = null + ) + @Serializable + data class MessageData ( + val text: String? = null, + val name: String? = null, + val qq: Qq? = null, + val id: Qq? = null, + val file: String? = null, + + /** + * 外显 + */ + val summary: String? = null, + + val data: String? = null, + val content: String? = null + ) + override fun subtype(): String { + return "get_forward_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt new file mode 100644 index 0000000..139a51d --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt @@ -0,0 +1,136 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.data.MessageType +import top.r3944realms.ltdmanager.napcat.data.Qq +import top.r3944realms.ltdmanager.napcat.data.Sender +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetFriendMsgHistory事件 + * @property data 响应数据 + */ +@Serializable +data class GetFriendMsgHistoryEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val messages: List + ) + @Serializable + sealed class Content { + class StringValue(val value: String) : Content() + class SpecificMsgList(val value: List) : Content() + } + @Serializable + data class MessageData ( + val text: String? = null, + val name: String? = null, + val qq: Qq? = null, + val id: Qq? = null, + val file: String? = null, + + /** + * 外显 + */ + val summary: String? = null, + + val data: String? = null, + val content: Content? = null + ) + /** + * 文本消息 + * + * 艾特消息 + * + * 表情消息 + * + * 图片消息 + * + * 文件消息 + * + * 回复消息 + * + * JSON消息 + * + * 语音消息 + * + * 视频消息 + * + * markdown消息 + * + * 消息forward + */ + @Serializable + data class Message ( + val data: MessageData, + val type: MessageType + ) + /** + * 消息详情 + */ + @Serializable + data class SpecificMsg ( + val font: Double, + + @SerialName("group_id") + val groupID: Double? = null, + + val message: List, + + @SerialName("message_format") + val messageFormat: String, + + @SerialName("message_id") + val messageID: Double, + + @SerialName("message_seq") + val messageSeq: Double, + + @SerialName("message_type") + val messageType: String, + + @SerialName("post_type") + val postType: String, + + @SerialName("raw_message") + val rawMessage: String, + + @SerialName("real_id") + val realID: Double, + + @SerialName("real_seq") + val realSeq: String, + + @SerialName("self_id") + val selfID: Double, + + val sender: Sender, + + @SerialName("sub_type") + val subType: String, + + val time: Double, + + @SerialName("user_id") + val userID: Double + ) + override fun subtype(): String { + return "get_friend_msg_history" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetGroupMsgHistoryEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetGroupMsgHistoryEvent.kt new file mode 100644 index 0000000..f1c8526 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetGroupMsgHistoryEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetGroupMsgHistory事件 + * @property data 响应数据 + */ +@Serializable +data class GetGroupMsgHistoryEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: GetFriendMsgHistoryEvent.Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_group_msg_history" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetImageEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetImageEvent.kt new file mode 100644 index 0000000..62263a5 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetImageEvent.kt @@ -0,0 +1,57 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetImage事件 + * @property data 响应数据 + */ +@Serializable +data class GetImageEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val base64: String, + + /** + * 本地路径 + */ + val file: String, + + /** + * 文件名 + */ + @SerialName("file_name") + val fileName: String, + + /** + * 文件大小 + */ + @SerialName("file_size") + val fileSize: String, + + /** + * 网络路径 + */ + val url: String + ) + override fun subtype(): String { + return "get_image" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetMsgEvent.kt new file mode 100644 index 0000000..7f0393f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetMsgEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetMsg事件 + * @property data 响应数据 + */ +@Serializable +data class GetMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonObject +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetRecordEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetRecordEvent.kt new file mode 100644 index 0000000..5bd07ee --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetRecordEvent.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GetRecord事件 + * @property data 响应数据 + */ +@Serializable +data class GetRecordEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: GetImageEvent.Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "get_record" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendForwardMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendForwardMsgEvent.kt new file mode 100644 index 0000000..b422454 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendForwardMsgEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonObject +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendForwardMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SendForwardMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonObject +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "send_forward_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendGroupAiRecordEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendGroupAiRecordEvent.kt new file mode 100644 index 0000000..1368f50 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendGroupAiRecordEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendGroupAiRecord事件 + * @property data 响应数据 + */ +@Serializable +data class SendGroupAiRecordEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + @SerialName("message_id") + val messageID: String + ) + override fun subtype(): String { + return "send_group_ai_record" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendPokeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendPokeEvent.kt new file mode 100644 index 0000000..1057271 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SendPokeEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendPoke事件 + * @property data 响应数据 + */ +@Serializable +data class SendPokeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "send_poke" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SetMsgEmojiLikeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SetMsgEmojiLikeEvent.kt new file mode 100644 index 0000000..84c53d2 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/SetMsgEmojiLikeEvent.kt @@ -0,0 +1,41 @@ + +package top.r3944realms.ltdmanager.napcat.events.message + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.data.EmojiLikesList +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SetMsgEmojiLike事件 + * @property data 响应数据 + */ +@Serializable +data class SetMsgEmojiLikeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data ( + val cookie: String, + val emojiLikesList: List, + val errMsg: String, + val isFirstPage: Boolean, + val isLastPage: Boolean, + val result: Double + ) + + override fun subtype(): String { + return "set_msg_emoji_like" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/ForwardGroupSingleMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/ForwardGroupSingleMsgEvent.kt new file mode 100644 index 0000000..e6f35d3 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/ForwardGroupSingleMsgEvent.kt @@ -0,0 +1,33 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.NapCatEvent +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * ForwardGroupSingleMsg事件 + * @property data 响应数据 + */ +@Serializable +data class ForwardGroupSingleMsgEvent( + @Transient + val status0: NapCatEvent.Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, + ) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "forward_group_single_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/GroupPokeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/GroupPokeEvent.kt new file mode 100644 index 0000000..6c03f27 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/GroupPokeEvent.kt @@ -0,0 +1,29 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.group + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * GroupPoke事件 + */ +@Serializable +data class GroupPokeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "group_poke" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupForwardMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupForwardMsgEvent.kt new file mode 100644 index 0000000..0b2aba6 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupForwardMsgEvent.kt @@ -0,0 +1,39 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.NapCatEvent +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendGroupForwardMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SendGroupForwardMsgEvent( + @Transient + val status0: NapCatEvent.Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data + ) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + @SerialName("message_id") + val messageId: Double, + @SerialName("res_id") + val resId:String + ) + override fun subtype(): String { + return "send_group_forward_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupMsgEvent.kt new file mode 100644 index 0000000..a83d31b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/group/SendGroupMsgEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.group + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendGroupMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SendGroupMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data + ) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + @SerialName("message_id") + val messageId: Double, + ) + override fun subtype(): String { + return "send_group_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/ForwardFriendSingleMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/ForwardFriendSingleMsgEvent.kt new file mode 100644 index 0000000..0b289b0 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/ForwardFriendSingleMsgEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * ForwardFriendSingleMsg事件 + * @property data 响应数据 + */ +@Serializable +data class ForwardFriendSingleMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "forward_friend_single_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/FriendPokeEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/FriendPokeEvent.kt new file mode 100644 index 0000000..0123594 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/FriendPokeEvent.kt @@ -0,0 +1,28 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * FriendPoke事件 + */ +@Serializable +data class FriendPokeEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "friend_poke" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateForwardMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateForwardMsgEvent.kt new file mode 100644 index 0000000..fe1a2e4 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateForwardMsgEvent.kt @@ -0,0 +1,32 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import kotlinx.serialization.json.JsonElement +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendPrivateForwardMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SendPrivateForwardMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: JsonElement? = null, +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + + override fun subtype(): String { + return "send_private_forward_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateMsgEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateMsgEvent.kt new file mode 100644 index 0000000..d0422f1 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/personal/SendPrivateMsgEvent.kt @@ -0,0 +1,36 @@ + +package top.r3944realms.ltdmanager.napcat.events.message.personal + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.Transient +import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent + +/** + * SendPrivateMsg事件 + * @property data 响应数据 + */ +@Serializable +data class SendPrivateMsgEvent( + @Transient + val status0: Status = Status.Ok, + @Transient + val retcode0: Double = 0.0, + @Transient + val message0: String = "", + @Transient + val wording0: String = "", + @Transient + val echo0: String? = null, + + val data: Data +) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) { + @Serializable + data class Data( + @SerialName("message_id") + val messageId: Double, + ) + override fun subtype(): String { + return "send_private_msg" + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/other/AbstractOtherEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/other/AbstractOtherEvent.kt index de7796f..05a686f 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/other/AbstractOtherEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/other/AbstractOtherEvent.kt @@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent /** * QQ 其它相关响应抽象 @@ -42,7 +43,15 @@ abstract class AbstractOtherEvent ( companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("/send_private_msg",SendPrivateMsgEvent.serializer()) + put("/send_group_msg",SendGroupMsgEvent.serializer()) + put("/send_msg",SendMsgEvent.serializer()) + put("/unknown",UnknownEvent.serializer()) + put("/get_guild_list", GetGuildListEvent.serializer()) + put("/get_guild_service_profile", GetGuildServiceProfileEvent.serializer()) + put("/check_url_safely", CheckUrlSafelyEvent.serializer()) + put("/get_collection_list", GetCollectionListEvent.serializer()) + put("/get_group_ignore_add_request", GetGroupIgnoreAddRequestEvent.serializer()) } } internal val json: Json by lazy { @@ -50,6 +59,15 @@ abstract class AbstractOtherEvent ( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { + subclass(SendPrivateMsgEvent::class) + subclass(SendGroupMsgEvent::class) + subclass(SendMsgEvent::class) + subclass(UnknownEvent::class) + subclass(GetGuildListEvent::class) + subclass(GetGuildServiceProfileEvent::class) + subclass(CheckUrlSafelyEvent::class) + subclass(GetCollectionListEvent::class) + subclass(GetGroupIgnoreAddRequestEvent::class) } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/passkey/AbstractPassKeyEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/passkey/AbstractPassKeyEvent.kt index 6a6783a..0096e56 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/passkey/AbstractPassKeyEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/passkey/AbstractPassKeyEvent.kt @@ -1,9 +1,11 @@ package top.r3944realms.ltdmanager.napcat.events.passkey import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent /** @@ -14,6 +16,7 @@ import top.r3944realms.ltdmanager.napcat.events.NapCatEvent * @property wording 文字描述 * @property echo 回显字段 (可空) */ +@Serializable abstract class AbstractPassKeyEvent ( /** * 状态字符串 @@ -41,7 +44,13 @@ abstract class AbstractPassKeyEvent ( companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("passkey/get_clientkey", GetClientkeyEvent.serializer()) + put("passkey/get_cookies", GetCookiesEvent.serializer()) + put ("passkey/get_csrf_token", GetCsrfTokenEvent.serializer()) + put("passkey/get_credentials", GetCredentialsEvent.serializer()) + put("passkey/get_rkey", GetRkeyEvent.serializer()) + put("passkey/nc_get_rkey", NcGetRkeyEvent.serializer()) + put("passkey/get_rkey_server", GetRkeyServerEvent.serializer()) } } internal val json: Json by lazy { @@ -49,7 +58,13 @@ abstract class AbstractPassKeyEvent ( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(GetClientkeyEvent::class) + subclass(GetCookiesEvent::class) + subclass(GetCsrfTokenEvent::class) + subclass(GetCredentialsEvent::class) + subclass(GetRkeyEvent::class) + subclass(NcGetRkeyEvent::class) + subclass(GetRkeyServerEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/personal/AbstractPersonalEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/personal/AbstractPersonalEvent.kt index 82a4aaa..c56d99d 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/personal/AbstractPersonalEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/personal/AbstractPersonalEvent.kt @@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent /** @@ -43,7 +44,15 @@ abstract class AbstractPersonalEvent ( companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("personal/ocr_image", OcrImageEvent.serializer()) + put("personal/.ocr_image", PointOcrImageEvent.serializer()) + put("personal/translate_en2zh", TranslateEn2zhEvent.serializer()) + put("personal/.handle_quick_operation", PointHandleQuickOperationEvent.serializer()) + put("personal/can_send_image", CanSendImageEvent.serializer()) + put("personal/can_send_record", CanSendRecordEvent.serializer()) + put("personal/get_ai_characters", GetAiCharactersEvent.serializer()) + put("personal/click_inline_keyboard_button", ClickInlineKeyboardButtonEvent.serializer()) + put("personal/get_ai_record", GetAiRecordEvent.serializer()) } } internal val json: Json by lazy { @@ -51,7 +60,15 @@ abstract class AbstractPersonalEvent ( ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(OcrImageEvent::class) + subclass(PointOcrImageEvent::class) + subclass(TranslateEn2zhEvent::class) + subclass(PointHandleQuickOperationEvent::class) + subclass(CanSendImageEvent::class) + subclass(CanSendRecordEvent::class) + subclass(GetAiCharactersEvent::class) + subclass(ClickInlineKeyboardButtonEvent::class) + subclass(GetAiRecordEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/system/AbstractSystemEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/system/AbstractSystemEvent.kt index cd9f730..0ca55d9 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/system/AbstractSystemEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/system/AbstractSystemEvent.kt @@ -4,6 +4,7 @@ import kotlinx.serialization.KSerializer import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass import top.r3944realms.ltdmanager.napcat.events.NapCatEvent abstract class AbstractSystemEvent @@ -12,7 +13,11 @@ abstract class AbstractSystemEvent companion object { val eventTypeMap by lazy { mutableMapOf>().apply { - + put("system/get_robot_uin_range", GetRobotUinRangeEvent.serializer()) + put("system/bot_exit",BotExitEvent.serializer()) + put("system/send_packet", SendPacketEvent.serializer()) + put("system/nc_get_packet_status", NcGetPacketStatusEvent.serializer()) + put("system/get_version_info", GetVersionInfoEvent.serializer()) } } internal val json: Json by lazy { @@ -20,7 +25,11 @@ abstract class AbstractSystemEvent ignoreUnknownKeys = true serializersModule = SerializersModule { polymorphic(NapCatEvent::class) { - + subclass(GetRobotUinRangeEvent::class) + subclass(BotExitEvent::class) + subclass(SendPacketEvent::class) + subclass(NcGetPacketStatusEvent::class) + subclass(GetVersionInfoEvent::class) } } } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/ArkShareGroupRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/ArkShareGroupRequest.kt index 17c0765..81399ac 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/ArkShareGroupRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/ArkShareGroupRequest.kt @@ -5,6 +5,9 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json +/** + * 获取推荐群聊卡片 + */ @Serializable data class ArkShareGroupRequest( @SerialName("group_id") diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/SetOnlineStatusRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/SetOnlineStatusRequest.kt index 58d7c8d..9f48287 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/SetOnlineStatusRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/SetOnlineStatusRequest.kt @@ -24,5 +24,55 @@ data class SetOnlineStatusRequest( override fun toJSON(): String = Json.encodeToString(this) override fun path(): String = "/set_online_status" + companion object { + // Basic statuses + val ONLINE = SetOnlineStatusRequest(0.0, 0.0, 10.0) + val Q_ME = SetOnlineStatusRequest(0.0, 0.0, 60.0) + val AWAY = SetOnlineStatusRequest(0.0, 0.0, 30.0) + val BUSY = SetOnlineStatusRequest(0.0, 0.0, 50.0) + val DO_NOT_DISTURB = SetOnlineStatusRequest(0.0, 0.0, 70.0) + val INVISIBLE = SetOnlineStatusRequest(0.0, 0.0, 40.0) + // Extended statuses (all with status = 10.0) + val LISTENING_TO_MUSIC = SetOnlineStatusRequest(0.0, 1028.0, 10.0) + val SPRING_LIMITED = SetOnlineStatusRequest(0.0, 2037.0, 10.0) + val PLAYING_YUANMENG = SetOnlineStatusRequest(0.0, 2025.0, 10.0) + val LOOKING_FOR_STAR_PARTNER = SetOnlineStatusRequest(0.0, 2026.0, 10.0) + val DRAINED = SetOnlineStatusRequest(0.0, 2014.0, 10.0) + val TODAYS_WEATHER = SetOnlineStatusRequest(0.0, 1030.0, 10.0) + val I_CRASHED = SetOnlineStatusRequest(0.0, 2019.0, 10.0) + val LOVE_YOU = SetOnlineStatusRequest(0.0, 2006.0, 10.0) + val IN_LOVE = SetOnlineStatusRequest(0.0, 1051.0, 10.0) + val GOOD_LUCK_KOI = SetOnlineStatusRequest(0.0, 1071.0, 10.0) + val MERCURY_RETROGRADE = SetOnlineStatusRequest(0.0, 1201.0, 10.0) + val HAVING_FUN = SetOnlineStatusRequest(0.0, 1056.0, 10.0) + val FULL_OF_ENERGY = SetOnlineStatusRequest(0.0, 1058.0, 10.0) + val BABY_CERTIFIED = SetOnlineStatusRequest(0.0, 1070.0, 10.0) + val COMPLICATED = SetOnlineStatusRequest(0.0, 1063.0, 10.0) + val RARE_CONFUSION = SetOnlineStatusRequest(0.0, 2001.0, 10.0) + val EMO = SetOnlineStatusRequest(0.0, 1401.0, 10.0) + val LIFE_IS_HARD = SetOnlineStatusRequest(0.0, 1062.0, 10.0) + val I_UNDERSTAND = SetOnlineStatusRequest(0.0, 2013.0, 10.0) + val IM_OKAY = SetOnlineStatusRequest(0.0, 1052.0, 10.0) + val WANT_SILENCE = SetOnlineStatusRequest(0.0, 1061.0, 10.0) + val LEISURELY = SetOnlineStatusRequest(0.0, 1059.0, 10.0) + val TRAVELING = SetOnlineStatusRequest(0.0, 2015.0, 10.0) + val WEAK_SIGNAL = SetOnlineStatusRequest(0.0, 1011.0, 10.0) + val GOING_OUT = SetOnlineStatusRequest(0.0, 2003.0, 10.0) + val DOING_HOMEWORK = SetOnlineStatusRequest(0.0, 2012.0, 10.0) + val STUDYING = SetOnlineStatusRequest(0.0, 1018.0, 10.0) + val WORKING_HARD = SetOnlineStatusRequest(0.0, 2023.0, 10.0) + val SLACKING_OFF = SetOnlineStatusRequest(0.0, 1300.0, 10.0) + val BORED = SetOnlineStatusRequest(0.0, 1060.0, 10.0) + val PLAYING_GAMES = SetOnlineStatusRequest(0.0, 1027.0, 10.0) + val SLEEPING = SetOnlineStatusRequest(0.0, 1016.0, 10.0) + val STAYING_UP_LATE = SetOnlineStatusRequest(0.0, 1032.0, 10.0) + val WATCHING_DRAMA = SetOnlineStatusRequest(0.0, 1021.0, 10.0) + val BATTERY_STATUS = SetOnlineStatusRequest(0.0, 1000.0, 10.0) + + // Helper function to create custom battery status + fun withBatteryLevel(batteryLevel: Double, baseStatus: SetOnlineStatusRequest): SetOnlineStatusRequest { + return baseStatus.copy(batteryStatus = batteryLevel) + } + } } \ No newline at end of file