From bf6c5b9a465b79ab5288cf50e8cb39ce7777e484 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sat, 16 Aug 2025 20:53:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E8=AF=B7=E6=B1=82?= =?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 --- python/events/message/group/ktg.py | 2 +- python/events/message/ktg.py | 2 +- python/events/message/personal/ktg.py | 10 +- python/events/personal/ktg.py | 2 +- python/events/pycode.bat | 4 +- .../KtRequestGenerator.cpython-311.pyc | Bin 0 -> 5020 bytes python/requests/account/ktg.py | 4 +- python/requests/file/ktg.py | 2 +- python/requests/group/ktg.py | 2 +- python/requests/message/group/ktg.py | 4 +- python/requests/message/ktg.py | 4 +- python/requests/message/personal/ktg.py | 4 +- python/requests/other/ktg.py | 2 +- python/requests/passkey/ktg.py | 2 +- python/requests/personal/ktg.py | 4 +- python/requests/pycode.bat | 4 +- python/requests/pycode.sh | 2 + python/requests/system/ktg.py | 26 +-- .../kotlin/top/r3944realms/ltdmanager/main.kt | 1 - .../ltdmanager/napcat/data/MessageElement.kt | 163 +++++++++++++++++- .../ltdmanager/napcat/data/MessageType.kt | 6 +- .../r3944realms/ltdmanager/napcat/data/QQ.kt | 6 +- .../events/account/GetRecentContactEvent.kt | 6 +- .../events/message/GetForwardMsgEvent.kt | 6 +- .../message/GetFriendMsgHistoryEvent.kt | 6 +- .../requests/account/GetFriendListRequest.kt | 2 +- .../account/GetFriendsWithCategoryRequest.kt | 2 +- .../requests/account/GetLoginInfoRequest.kt | 2 +- .../account/GetOnlineClientRequest.kt | 10 +- .../GetUnidirectionalFriendListRequest.kt | 2 +- .../requests/account/MarkAllAsReadRequest.kt | 2 +- .../requests/account/MarkMsgAsReadRequest.kt | 1 - .../requests/group/SetEssenceMsgRequest.kt | 2 +- ...eyRequest.kt => AbstractPassKeyRequest.kt} | 2 +- .../requests/passkey/GetClientkeyRequest.kt | 14 ++ .../requests/passkey/GetCookiesRequest.kt | 18 ++ .../requests/passkey/GetCredentialsRequest.kt | 18 ++ .../requests/passkey/GetCsrfTokenRequest.kt | 14 ++ .../napcat/requests/passkey/GetRkeyRequest.kt | 14 ++ .../requests/passkey/GetRkeyServerRequest.kt | 14 ++ .../requests/passkey/NcGetRkeyRequest.kt | 14 ++ .../requests/personal/CanSendImageRequest.kt | 14 ++ .../requests/personal/CanSendRecordRequest.kt | 14 ++ .../ClickInlineKeyboardButtonRequest.kt | 33 ++++ .../personal/GetAiCharactersRequest.kt | 27 +++ .../requests/personal/GetAiRecordRequest.kt | 31 ++++ .../requests/personal/OcrImageRequest.kt | 18 ++ .../PointHandleQuickOperationRequest.kt | 27 +++ .../requests/personal/PointOcrImageRequest.kt | 18 ++ .../personal/SetInputStatusRequest.kt | 29 ++++ .../personal/TranslateEn2zhRequest.kt | 21 +++ .../napcat/requests/system/BotExitRequest.kt | 16 ++ .../system/GetRobotUinRangeRequest.kt | 14 ++ .../requests/system/GetVersionInfoRequest.kt | 14 ++ .../system/NcGetPacketStatusRequest.kt | 14 ++ .../requests/system/SendPacketRequest.kt | 16 ++ 56 files changed, 634 insertions(+), 77 deletions(-) create mode 100644 python/requests/__pycache__/KtRequestGenerator.cpython-311.pyc rename src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/{AbstractPasskeyRequest.kt => AbstractPassKeyRequest.kt} (87%) create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetClientkeyRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCookiesRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCredentialsRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCsrfTokenRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyServerRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/NcGetRkeyRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendImageRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendRecordRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/ClickInlineKeyboardButtonRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiCharactersRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiRecordRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/OcrImageRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointHandleQuickOperationRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointOcrImageRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/SetInputStatusRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/TranslateEn2zhRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/BotExitRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetRobotUinRangeRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetVersionInfoRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/NcGetPacketStatusRequest.kt create mode 100644 src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/SendPacketRequest.kt diff --git a/python/events/message/group/ktg.py b/python/events/message/group/ktg.py index ef83550..bc60e65 100644 --- a/python/events/message/group/ktg.py +++ b/python/events/message/group/ktg.py @@ -9,6 +9,6 @@ def main(): "/forward_group_single_msg", # 转发单条消息到群 "/group_poke" # 发送群聊戳一戳 ] - kg.generateEventKt("message.group", "AbstractGroup", api_paths) + kg.generateEventKt("message.group", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/events/message/ktg.py b/python/events/message/ktg.py index ee9c88a..9228154 100644 --- a/python/events/message/ktg.py +++ b/python/events/message/ktg.py @@ -17,6 +17,6 @@ def main(): "/get_image", # 获取图片消息详情 "/send_group_ai_record" # 发送群AI语音 ] - kg.generateEventKt("message", "AbstractGroup", api_paths) + kg.generateEventKt("message", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/events/message/personal/ktg.py b/python/events/message/personal/ktg.py index 2a4bf82..2532d54 100644 --- a/python/events/message/personal/ktg.py +++ b/python/events/message/personal/ktg.py @@ -4,11 +4,11 @@ sys.path.append("../..") # 添加父目录到模块搜索路径 import KtEventGenerator as kg def main(): api_paths = [ - "/send_private_msg", # 发送私聊消息(文本、图片、表情、JSON、语音、视频、回复、音乐卡片等) - "/send_private_forward_msg", # 发送私聊合并转发消息 - "/forward_friend_single_msg", # 转发单条消息到私聊 - "/friend_poke" # 发送私聊戳一戳 + "/send_private_msg", # 发送私聊消息(文本、图片、表情、JSON、语音、视频、回复、音乐卡片等) + "/send_private_forward_msg", # 发送私聊合并转发消息 + "/forward_friend_single_msg", # 转发单条消息到私聊 + "/friend_poke" # 发送私聊戳一戳 ] - kg.generateEventKt("message.personal", "AbstractGroup", api_paths) + kg.generateEventKt("message.personal", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/events/personal/ktg.py b/python/events/personal/ktg.py index 7970e90..83d740e 100644 --- a/python/events/personal/ktg.py +++ b/python/events/personal/ktg.py @@ -12,7 +12,7 @@ def main(): "/can_send_record", # 检查是否可以发送语音 "/get_ai_characters", # 获取AI语音人物 "/click_inline_keyboard_button", # 点击按钮 - "/get_ai_record" # 获取AI语音 + "/get_ai_record", # 获取AI语音 "/set_input_status" # 设置输入状态 ] kg.generateEventKt("personal", "AbstractPersonal", api_paths) diff --git a/python/events/pycode.bat b/python/events/pycode.bat index 95e0b84..0dd2945 100644 --- a/python/events/pycode.bat +++ b/python/events/pycode.bat @@ -8,7 +8,9 @@ cd ../message/personal python ktg.py cd ../group python ktg.py -cd ../../personal +cd .. +python ktg.py +cd ../personal python ktg.py cd ../passkey python ktg.py diff --git a/python/requests/__pycache__/KtRequestGenerator.cpython-311.pyc b/python/requests/__pycache__/KtRequestGenerator.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e20191b917e9c05b6e3ae9e9bada310232d5208e GIT binary patch literal 5020 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 SqI)UiYtA#x85g-s!T$?`kSS9D literal 0 HcmV?d00001 diff --git a/python/requests/account/ktg.py b/python/requests/account/ktg.py index 9f8c76c..32c119b 100644 --- a/python/requests/account/ktg.py +++ b/python/requests/account/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import KtEventGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ # 账号信息管理 @@ -48,6 +48,6 @@ def main(): "/ArkShareGroup", # 获取推荐群聊卡片 "/get_mini_app_ark", # 获取小程序卡片 ] - kg.generateEventKt("account", "AbstractAccount", api_paths) + kg.generateRequestKt("account", "AbstractAccount", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/requests/file/ktg.py b/python/requests/file/ktg.py index 602bde1..651b4ff 100644 --- a/python/requests/file/ktg.py +++ b/python/requests/file/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/move_group_file", # 移动群文件 diff --git a/python/requests/group/ktg.py b/python/requests/group/ktg.py index 20e7e1a..c1009f4 100644 --- a/python/requests/group/ktg.py +++ b/python/requests/group/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ # 群信息获取 diff --git a/python/requests/message/group/ktg.py b/python/requests/message/group/ktg.py index 3c789af..9401dcd 100644 --- a/python/requests/message/group/ktg.py +++ b/python/requests/message/group/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("../..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/send_group_msg", # 发送群消息(文本、图片、表情、JSON、语音、视频、回复、音乐卡片等) @@ -9,6 +9,6 @@ def main(): "/forward_group_single_msg", # 转发单条消息到群 "/group_poke" # 发送群聊戳一戳 ] - kg.generateRequestKt("message.group", "AbstractGroup", api_paths) + kg.generateRequestKt("message.group", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/requests/message/ktg.py b/python/requests/message/ktg.py index 23c5a7b..06a58b5 100644 --- a/python/requests/message/ktg.py +++ b/python/requests/message/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/send_poke", # 发送戳一戳(通用版,可能同时适用于群和私聊) @@ -17,6 +17,6 @@ def main(): "/get_image", # 获取图片消息详情 "/send_group_ai_record" # 发送群AI语音 ] - kg.generateRequestKt("message", "AbstractGroup", api_paths) + kg.generateRequestKt("message", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/requests/message/personal/ktg.py b/python/requests/message/personal/ktg.py index e3c843f..20c63a8 100644 --- a/python/requests/message/personal/ktg.py +++ b/python/requests/message/personal/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("../..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/send_private_msg", # 发送私聊消息(文本、图片、表情、JSON、语音、视频、回复、音乐卡片等) @@ -9,6 +9,6 @@ def main(): "/forward_friend_single_msg", # 转发单条消息到私聊 "/friend_poke" # 发送私聊戳一戳 ] - kg.generateRequestKt("message.personal", "AbstractGroup", api_paths) + kg.generateRequestKt("message.personal", "AbstractMessage", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/python/requests/other/ktg.py b/python/requests/other/ktg.py index 4ee4b16..ef40138 100644 --- a/python/requests/other/ktg.py +++ b/python/requests/other/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ # 保留 diff --git a/python/requests/passkey/ktg.py b/python/requests/passkey/ktg.py index 1a72e13..0113607 100644 --- a/python/requests/passkey/ktg.py +++ b/python/requests/passkey/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/get_clientkey", # 获取 clientkey diff --git a/python/requests/personal/ktg.py b/python/requests/personal/ktg.py index ac289d8..7cdf1a4 100644 --- a/python/requests/personal/ktg.py +++ b/python/requests/personal/ktg.py @@ -1,7 +1,7 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import requests.KtRequestGenerator as kg +import KtRequestGenerator as kg def main(): api_paths = [ "/ocr_image", # OCR 图片识别 @@ -12,7 +12,7 @@ def main(): "/can_send_record", # 检查是否可以发送语音 "/get_ai_characters", # 获取AI语音人物 "/click_inline_keyboard_button", # 点击按钮 - "/get_ai_record" # 获取AI语音 + "/get_ai_record", # 获取AI语音 "/set_input_status" # 设置输入状态 ] kg.generateRequestKt("personal", "AbstractPersonal", api_paths) diff --git a/python/requests/pycode.bat b/python/requests/pycode.bat index 95e0b84..0dd2945 100644 --- a/python/requests/pycode.bat +++ b/python/requests/pycode.bat @@ -8,7 +8,9 @@ cd ../message/personal python ktg.py cd ../group python ktg.py -cd ../../personal +cd .. +python ktg.py +cd ../personal python ktg.py cd ../passkey python ktg.py diff --git a/python/requests/pycode.sh b/python/requests/pycode.sh index 95e0b84..5fed80c 100644 --- a/python/requests/pycode.sh +++ b/python/requests/pycode.sh @@ -8,6 +8,8 @@ cd ../message/personal python ktg.py cd ../group python ktg.py +cd .. +python ktg.py cd ../../personal python ktg.py cd ../passkey diff --git a/python/requests/system/ktg.py b/python/requests/system/ktg.py index 8166ce4..16f50de 100644 --- a/python/requests/system/ktg.py +++ b/python/requests/system/ktg.py @@ -1,30 +1,8 @@ # ktg.py import sys sys.path.append("..") # 添加父目录到模块搜索路径 -import KtEventGenerator as kg +import KtRequestGenerator as kg def main(): - # Kotlin事件类模板 - kotlin_template_system = """ -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}( - -) : {super_class}Event() {{ - - override fun subtype(): String {{ - return "{original_name}" - }} -}} - """ api_paths = [ # 账号控制 "/get_robot_uin_range", # 获取机器人可操作的账号范围(多账号托管时使用) @@ -37,6 +15,6 @@ data class {class_name}( # 系统信息 "/get_version_info" # 获取机器人框架/客户端的版本信息 ] - kg.generateEventKt("system", "AbstractSystem", api_paths, kotlin_template_system) + kg.generateRequestKt("system", "AbstractSystem", api_paths) if __name__ == "__main__": main() \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/main.kt b/src/main/kotlin/top/r3944realms/ltdmanager/main.kt index d33db5e..16973ee 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/main.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/main.kt @@ -5,7 +5,6 @@ import top.r3944realms.ltdmanager.napcat.events.NapCatEvent import top.r3944realms.ltdmanager.napcat.events.group.SetGroupPortraitEvent import top.r3944realms.ltdmanager.napcat.events.group.SetGroupSearchEvent import top.r3944realms.ltdmanager.napcat.events.personal.CanSendImageEvent -import top.r3944realms.ltdmanager.napcat.requests.account.SetOnlineStatusRequest fun main() { val logger = LoggerFactory.getLogger("log") diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageElement.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageElement.kt index cc41410..a03cea6 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageElement.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageElement.kt @@ -1,4 +1,165 @@ package top.r3944realms.ltdmanager.napcat.data -class MessageElement { +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +class MessageElement( + val type: MessageType, + val data: Message? = null +) { + companion object { + fun text(text: String): MessageElement = MessageElement(MessageType.Text, TextMessage(text)) + fun at(qq: ID, name: String?): MessageElement = MessageElement(MessageType.At, AtMessage(qq, name)) + fun image(file: String, summary: String?): MessageElement = MessageElement(MessageType.Image, ImageMessage(file, summary)) + fun json(json: String): MessageElement = MessageElement(MessageType.JSON, JSONMessage(json)) + fun face(id: Int): MessageElement = MessageElement(MessageType.Face, FaceMessage(id)) + fun record(file: String): MessageElement = MessageElement(MessageType.Record, RecordMessage(file)) + fun markdown(text: String): MessageElement = MessageElement(MessageType.Record, RecordMessage(text)) + fun video(video: String): MessageElement = MessageElement(MessageType.Video, VideoMessage(video)) + fun reply(id: ID, text: String):List = ArrayList(2).apply{ + add(MessageElement(MessageType.Reply, ReplyMessage(id))) + add(text(text)) + } + fun qqMusic(id: String): MessageElement = MessageElement(MessageType.Music, MusicMessage(MusicMessage.Type.QQ, id)) + fun neteaseMusic(id: String): MessageElement = MessageElement(MessageType.Music, MusicMessage(MusicMessage.Type.NETEASE, id)) + fun customMusic(url: String, audio: String, title: String, image: String): MessageElement = MessageElement(MessageType.Music, CustomMusicMessage(CustomMusicMessage.Type.Custom, url, audio, title, image)) + fun dice(): MessageElement = MessageElement(MessageType.Dice) + fun rps(): MessageElement = MessageElement(MessageType.Rps) + + } + @Serializable + abstract class Message + + /** + * 文本 + */ + @Serializable + data class TextMessage( + val text: String + ) : Message() + + /** + * At + */ + @Serializable + data class AtMessage( + val qq: ID, + val name: String? = null + ) : Message() { + fun isAtAll():Boolean { + if (qq is ID.StringValue) { + return qq.value == "all" + } + return false + } + } + + /** + * 图片 + */ + @Serializable + data class ImageMessage( + val file: String, + val summary: String? = "[图片]" + ) : Message() + + /** + * JSON + */ + @Serializable + data class JSONMessage( + val data: String + ) : Message() + + /** + * 语音 && MarkDown(在其它/保留接口里) + */ + @Serializable + data class RecordMessage( + val file: String + ) : Message() + /** + * 视频 + */ + @Serializable + data class VideoMessage( + val file: String + ) : Message() + /** + * 系统表情 + */ + @Serializable + data class FaceMessage( + val id: Int + ) : Message() + + /** + * 回复 + */ + @Serializable + data class ReplyMessage( + val id: ID + ) : Message() + + /** + * 音乐 + */ + @Serializable + data class MusicMessage( + val type: Type, + val id: String, + ): Message() { + @Serializable + enum class Type(val string: String) { + @SerialName("163")NETEASE("netease"), + @SerialName("qq")QQ("qq") + } + } + /** + * 音乐 + */ + @Serializable + data class CustomMusicMessage( + val type: Type, + /** + * 链接 + */ + val url: String, + /** + * 音频 + */ + val audio: String, + /** + * 标题 + */ + val title: String, + /** + * 图片 + */ + val image: String, + ) : Message() { + @Serializable + enum class Type(val string: String) { + @SerialName("custom")Custom("custom") + } + } + + @Serializable + data class DiceMessage ( + /** + * 该参数暂不可用 + */ + val result: Type + ) : Message() { + @Serializable + enum class Type(val value: Int) { + @SerialName("1")ONE(1), + @SerialName("2")TWO(2), + @SerialName("3")THREE(3), + @SerialName("4")FOUR(4), + @SerialName("5")FIVE(5), + @SerialName("6")SIX(6), + } + } } \ No newline at end of file diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt index 100a42e..86fb6c6 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/MessageType.kt @@ -14,5 +14,9 @@ enum class MessageType(val value: String) { @SerialName("record") Record("record"), @SerialName("reply") Reply("reply"), @SerialName("text") Text("text"), - @SerialName("video") Video("video"); + @SerialName("video") Video("video"), + @SerialName("music") Music("music"), + @SerialName("dice") Dice("dice"), + @SerialName("rps") Rps("rps"), + @SerialName("node") Node("node"); } \ 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 index baca230..a65806e 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/QQ.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/data/QQ.kt @@ -3,7 +3,7 @@ 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() +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/events/account/GetRecentContactEvent.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt index 33a49ff..4f49b2a 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/GetRecentContactEvent.kt @@ -5,7 +5,7 @@ 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.QQ import top.r3944realms.ltdmanager.napcat.data.Sender /** @@ -165,8 +165,8 @@ data class GetRecentContactEvent( data class Data ( val text: String? = null, val name: String? = null, - val qq: Qq? = null, - val id: Qq? = null, + val qq: QQ? = null, + val id: QQ? = null, val file: String? = null, /** 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 index 69fdf64..558e1d8 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetForwardMsgEvent.kt @@ -5,7 +5,7 @@ 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.QQ import top.r3944realms.ltdmanager.napcat.data.Sender import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent @@ -154,8 +154,8 @@ data class GetForwardMsgEvent( data class MessageData ( val text: String? = null, val name: String? = null, - val qq: Qq? = null, - val id: Qq? = null, + val qq: QQ? = null, + val id: QQ? = null, val file: String? = null, /** 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 index 139a51d..f0092c5 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/message/GetFriendMsgHistoryEvent.kt @@ -5,7 +5,7 @@ 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.QQ import top.r3944realms.ltdmanager.napcat.data.Sender import top.r3944realms.ltdmanager.napcat.events.group.AbstractGroupEvent @@ -41,8 +41,8 @@ data class GetFriendMsgHistoryEvent( data class MessageData ( val text: String? = null, val name: String? = null, - val qq: Qq? = null, - val id: Qq? = null, + val qq: QQ? = null, + val id: QQ? = null, val file: String? = null, /** diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendListRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendListRequest.kt index 15b4737..4be2c2c 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendListRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendListRequest.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.json.Json */ @Serializable class GetFriendListRequest: AbstractAccountRequest() { - override fun toJSON(): String = Json.encodeToString(this) + override fun toJSON(): String = "{}" override fun path(): String = "/get_friend_list" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendsWithCategoryRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendsWithCategoryRequest.kt index fe36047..7aaf953 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendsWithCategoryRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetFriendsWithCategoryRequest.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.json.Json */ @Serializable class GetFriendsWithCategoryRequest : AbstractAccountRequest() { - override fun toJSON(): String = Json.encodeToString(this) + override fun toJSON(): String = "{}" override fun path(): String = "/get_friends_with_category" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetLoginInfoRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetLoginInfoRequest.kt index cd2acab..b8c27a6 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetLoginInfoRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetLoginInfoRequest.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.json.Json */ @Serializable class GetLoginInfoRequest : AbstractAccountRequest() { - override fun toJSON(): String = Json.encodeToString(this) + override fun toJSON(): String = "{}" override fun path(): String = "/get_login_info" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetOnlineClientRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetOnlineClientRequest.kt index ed23cd9..1c251e8 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetOnlineClientRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetOnlineClientRequest.kt @@ -4,15 +4,13 @@ import kotlinx.serialization.Serializable import top.r3944realms.ltdmanager.napcat.Developing /** - * 设置消息已读 + * 获取当前账号在线客户端列表 */ @Developing @Serializable -class GetOnlineClientRequest - : AbstractAccountRequest(){ - override fun toJSON(): String { - return "{}" - } +class GetOnlineClientRequest : AbstractAccountRequest(){ + override fun toJSON(): String = "{}" + override fun path(): String { return "/get_online_clients" diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetUnidirectionalFriendListRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetUnidirectionalFriendListRequest.kt index 0abe58f..818a52b 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetUnidirectionalFriendListRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/GetUnidirectionalFriendListRequest.kt @@ -12,7 +12,7 @@ import top.r3944realms.ltdmanager.napcat.Developing @Developing @Serializable class GetUnidirectionalFriendListRequest: AbstractAccountRequest() { - override fun toJSON(): String = Json.encodeToString(this) + override fun toJSON(): String = "{}" override fun path(): String = "/get_unidirectional_friend_list" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkAllAsReadRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkAllAsReadRequest.kt index 51a2f4f..957198b 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkAllAsReadRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkAllAsReadRequest.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.json.Json */ @Serializable class MarkAllAsReadRequest: AbstractAccountRequest() { - override fun toJSON(): String = Json.encodeToString(this) + override fun toJSON(): String = "{}" override fun path(): String = "/_mark_all_as_read" } diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkMsgAsReadRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkMsgAsReadRequest.kt index 17602ee..252df8e 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkMsgAsReadRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/account/MarkMsgAsReadRequest.kt @@ -5,7 +5,6 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import top.r3944realms.ltdmanager.napcat.data.ID -import top.r3944realms.ltdmanager.napcat.requests.NapCatRequest /** * 设置消息已读 diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/group/SetEssenceMsgRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/group/SetEssenceMsgRequest.kt index 4cfedaa..6446d4a 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/group/SetEssenceMsgRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/group/SetEssenceMsgRequest.kt @@ -13,7 +13,7 @@ import top.r3944realms.ltdmanager.napcat.data.ID @Serializable data class SetEssenceMsgRequest( @SerialName("message_id") - val messageID: ID + val messageId: ID ) : AbstractGroupRequest() { override fun toJSON(): String = Json.encodeToString(this) diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPasskeyRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPassKeyRequest.kt similarity index 87% rename from src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPasskeyRequest.kt rename to src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPassKeyRequest.kt index 7c3352c..953e2be 100644 --- a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPasskeyRequest.kt +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/AbstractPassKeyRequest.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable import top.r3944realms.ltdmanager.napcat.requests.NapCatRequest @Serializable -abstract class AbstractPasskeyRequest +abstract class AbstractPassKeyRequest : NapCatRequest() { override fun header(): String { return "passkey" diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetClientkeyRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetClientkeyRequest.kt new file mode 100644 index 0000000..9875574 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetClientkeyRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable + +/** + * GetClientkey请求 + */ +@Serializable +class GetClientkeyRequest: AbstractPassKeyRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_clientkey" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCookiesRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCookiesRequest.kt new file mode 100644 index 0000000..ac9971c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCookiesRequest.kt @@ -0,0 +1,18 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * GetCookies请求 + */ +@Serializable +data class GetCookiesRequest( + val domain: String +) : AbstractPassKeyRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/get_cookies" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCredentialsRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCredentialsRequest.kt new file mode 100644 index 0000000..170bbfa --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCredentialsRequest.kt @@ -0,0 +1,18 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * GetCredentials请求 + */ +@Serializable +data class GetCredentialsRequest( + val domain: String +) : AbstractPassKeyRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/get_credentials" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCsrfTokenRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCsrfTokenRequest.kt new file mode 100644 index 0000000..ef35f26 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetCsrfTokenRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable + +/** + * GetCsrfToken请求 + */ +@Serializable +class GetCsrfTokenRequest : AbstractPassKeyRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_csrf_token" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyRequest.kt new file mode 100644 index 0000000..c788f3f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable + +/** + * GetRkey请求 + */ +@Serializable +class GetRkeyRequest: AbstractPassKeyRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_rkey" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyServerRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyServerRequest.kt new file mode 100644 index 0000000..912184c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/GetRkeyServerRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable + +/** + * GetRkeyServer请求 + */ +@Serializable +class GetRkeyServerRequest: AbstractPassKeyRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_rkey_server" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/NcGetRkeyRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/NcGetRkeyRequest.kt new file mode 100644 index 0000000..53bc8da --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/passkey/NcGetRkeyRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.passkey + +import kotlinx.serialization.Serializable + +/** + * NcGetRkey请求 + */ +@Serializable +class NcGetRkeyRequest : AbstractPassKeyRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/nc_get_rkey" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendImageRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendImageRequest.kt new file mode 100644 index 0000000..4f8112b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendImageRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable + +/** + * CanSendImage请求 + */ +@Serializable +class CanSendImageRequest : AbstractPersonalRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/can_send_image" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendRecordRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendRecordRequest.kt new file mode 100644 index 0000000..fa3203f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/CanSendRecordRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable + +/** + * CanSendRecord请求 + */ +@Serializable +class CanSendRecordRequest : AbstractPersonalRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/can_send_record" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/ClickInlineKeyboardButtonRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/ClickInlineKeyboardButtonRequest.kt new file mode 100644 index 0000000..b2253e5 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/ClickInlineKeyboardButtonRequest.kt @@ -0,0 +1,33 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import top.r3944realms.ltdmanager.napcat.data.ID + +/** + * ClickInlineKeyboardButton请求 + */ +@Serializable +data class ClickInlineKeyboardButtonRequest( + @SerialName("bot_appid") + val botAppid: String, + + @SerialName("button_id") + val buttonID: String, + + @SerialName("callback_data") + val callbackData: String, + + @SerialName("group_id") + val groupID: ID, + + @SerialName("msg_seq") + val msgSeq: String +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/click_inline_keyboard_button" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiCharactersRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiCharactersRequest.kt new file mode 100644 index 0000000..febf1de --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiCharactersRequest.kt @@ -0,0 +1,27 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import top.r3944realms.ltdmanager.napcat.data.ID + +/** + * GetAiCharacters请求 + */ +@Serializable +data class GetAiCharactersRequest( + /** + * 1 or 2? + */ + @SerialName("chat_type") + val chatType: ID? = null, + + @SerialName("group_id") + val groupId: ID +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/get_ai_characters" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiRecordRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiRecordRequest.kt new file mode 100644 index 0000000..2f36115 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/GetAiRecordRequest.kt @@ -0,0 +1,31 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import top.r3944realms.ltdmanager.napcat.data.ID + +/** + * GetAiRecord请求 + */ +@Serializable +data class GetAiRecordRequest( + /** + * character_id + */ + val character: String, + + @SerialName("group_id") + val groupId: ID, + + /** + * 文本 + */ + val text: String +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/get_ai_record" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/OcrImageRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/OcrImageRequest.kt new file mode 100644 index 0000000..d03022b --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/OcrImageRequest.kt @@ -0,0 +1,18 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * OcrImage请求 + */ +@Serializable +data class OcrImageRequest( + val image: String +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/ocr_image" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointHandleQuickOperationRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointHandleQuickOperationRequest.kt new file mode 100644 index 0000000..efae21f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointHandleQuickOperationRequest.kt @@ -0,0 +1,27 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject + +/** + * PointHandleQuickOperation请求 + */ +@Serializable +data class PointHandleQuickOperationRequest( + /** + * 事件数据对象 + */ + val context: JsonObject, + + /** + * 快速操作对象 + */ + val operation: JsonObject +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/.handle_quick_operation" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointOcrImageRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointOcrImageRequest.kt new file mode 100644 index 0000000..66b2f5f --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/PointOcrImageRequest.kt @@ -0,0 +1,18 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * PointOcrImage请求 + */ +@Serializable +data class PointOcrImageRequest( + val image: String +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/.ocr_image" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/SetInputStatusRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/SetInputStatusRequest.kt new file mode 100644 index 0000000..aee6850 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/SetInputStatusRequest.kt @@ -0,0 +1,29 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import top.r3944realms.ltdmanager.napcat.data.ID + +/** + * SetInputStatus请求 + */ +@Serializable +data class SetInputStatusRequest( + @SerialName("event_type") + val eventType: EventType, + + @SerialName("user_id") + val userId: ID +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/set_input_status" + @Serializable + enum class EventType(val value: Int) { + @SerialName("0")SPEAKING(0), + @SerialName("1")TYPING(1) + } +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/TranslateEn2zhRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/TranslateEn2zhRequest.kt new file mode 100644 index 0000000..5272543 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/personal/TranslateEn2zhRequest.kt @@ -0,0 +1,21 @@ + +package top.r3944realms.ltdmanager.napcat.requests.personal + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * TranslateEn2zh请求 + */ +@Serializable +data class TranslateEn2zhRequest( + /** + * 英文数组 + */ + val words: List +) : AbstractPersonalRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/translate_en2zh" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/BotExitRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/BotExitRequest.kt new file mode 100644 index 0000000..ccbdd3c --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/BotExitRequest.kt @@ -0,0 +1,16 @@ + +package top.r3944realms.ltdmanager.napcat.requests.system + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json + +/** + * BotExit请求 + */ +@Serializable +class BotExitRequest : AbstractSystemRequest() { + override fun toJSON(): String = Json.encodeToString(this) + + override fun path(): String = "/bot_exit" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetRobotUinRangeRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetRobotUinRangeRequest.kt new file mode 100644 index 0000000..4857874 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetRobotUinRangeRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.system + +import kotlinx.serialization.Serializable + +/** + * GetRobotUinRange请求 + */ +@Serializable +class GetRobotUinRangeRequest : AbstractSystemRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_robot_uin_range" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetVersionInfoRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetVersionInfoRequest.kt new file mode 100644 index 0000000..e2dd244 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/GetVersionInfoRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.system + +import kotlinx.serialization.Serializable + +/** + * GetVersionInfo请求 + */ +@Serializable +class GetVersionInfoRequest : AbstractSystemRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/get_version_info" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/NcGetPacketStatusRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/NcGetPacketStatusRequest.kt new file mode 100644 index 0000000..7d9cf03 --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/NcGetPacketStatusRequest.kt @@ -0,0 +1,14 @@ + +package top.r3944realms.ltdmanager.napcat.requests.system + +import kotlinx.serialization.Serializable + +/** + * NcGetPacketStatus请求 + */ +@Serializable +class NcGetPacketStatusRequest : AbstractSystemRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/nc_get_packet_status" +} diff --git a/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/SendPacketRequest.kt b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/SendPacketRequest.kt new file mode 100644 index 0000000..76e7d0e --- /dev/null +++ b/src/main/kotlin/top/r3944realms/ltdmanager/napcat/requests/system/SendPacketRequest.kt @@ -0,0 +1,16 @@ + +package top.r3944realms.ltdmanager.napcat.requests.system + +import kotlinx.serialization.Serializable +import top.r3944realms.ltdmanager.napcat.Developing + +/** + * SendPacket请求 + */ +@Developing +@Serializable +class SendPacketRequest : AbstractSystemRequest() { + override fun toJSON(): String = "{}" + + override fun path(): String = "/send_packet" +}