feat: 添加部分Request请求抽象类

This commit is contained in:
叁玖领域 2025-08-16 12:43:48 +08:00
parent bd9fe38217
commit 19ae21a206
92 changed files with 2397 additions and 4 deletions

18
python/events/pycode.bat Normal file
View File

@ -0,0 +1,18 @@
cd account
python ktg.py
cd ../file
python ktg.py
cd ../group
python ktg.py
cd ../message/personal
python ktg.py
cd ../group
python ktg.py
cd ../../personal
python ktg.py
cd ../passkey
python ktg.py
cd ../other
python ktg.py
cd ../system
python ktg.py

View File

@ -0,0 +1,105 @@
# KtRequestGenerator.py
import os
# Kotlin事件类模板
kotlin_template_common = """
package top.r3944realms.ltdmanager.napcat.requests.{path}
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* {request_description}请求
*/
@Serializable
data class {class_name}(
) : {super_class}Request() {{
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/{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) + "Request"
def path_to_original_name(api_path):
"""获取原始API名称不带斜杠"""
return api_path.lstrip('/')
def request_description(class_name):
"""生成请求描述"""
return class_name.replace("Request", "")
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)
request_rdescription = request_description(class_name)
return template.format(
path=path0,
class_name=class_name,
original_name=original_name,
request_description=request_rdescription,
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 generateRequestKt(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/requests",
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 request classes in '{output_dir}' directory")
# 确保方法可以被导入
__all__ = ['generateRequestKt']

View File

@ -0,0 +1,53 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import KtEventGenerator as kg
def main():
api_paths = [
# 账号信息管理
"/set_qq_profile", # 设置账号信息
"/set_qq_avatar", # 设置头像
"/set_self_longnick", # 设置个性签名
"/get_login_info", # 获取登录号信息
"/get_stranger_info", # 获取账号信息(陌生人)
"/get_online_clients", # 获取在线客户端列表
"/send_like", # 点赞
"/get_profile_like", # 获取点赞列表
"/create_collection", # 创建收藏
"/fetch_custom_face", # 获取收藏表情
"/get_recent_contact", # 获取最近消息列表
# 在线状态管理
"/set_online_status", # 设置在线状态10=在线60=Q我
"/set_diy_online_status", # 设置自定义在线状态
"/get_status", # 获取状态(基础)
"/nc_get_user_status", # 获取用户状态(扩展)
"/_get_model_show", # 获取在线机型
"/_set_model_show", # 设置在线机型
# 好友关系管理
"/get_friend_list", # 获取好友列表
"/get_unidirectional_friend_list", # 获取单向好友列表
"/get_friends_with_category", # 获取好友分组列表
"/set_friend_remark", # 设置好友备注
"/delete_friend", # 删除好友
"/set_friend_add_request", # 处理好友请求
"/get_doubt_friends_add_request", # 获取被过滤好友请求
"/set_doubt_friends_add_request", # 处理被过滤请求(调用即同意!)
# 私聊消息状态
"/mark_private_msg_as_read", # 设置私聊已读
# 消息状态控制
"/mark_msg_as_read", # 设置消息已读(通用)
"/mark_group_msg_as_read", # 设置群聊已读
"/_mark_all_as_read", # 设置所有消息已读
# 卡片与分享功能
"/ArkSharePeer", # 获取推荐好友/群聊卡片
"/ArkShareGroup", # 获取推荐群聊卡片
"/get_mini_app_ark", # 获取小程序卡片
]
kg.generateEventKt("account", "AbstractAccount", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,28 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/move_group_file", # 移动群文件
"/trans_group_file", # 转存为永久文件
"/rename_group_file", # 重命名群文件
"/upload_group_file", # 上传群文件
"/create_group_file_folder", # 创建群文件文件夹
"/delete_group_file", # 删除群文件
"/delete_group_folder", # 删除群文件夹
"/get_group_file_system_info", # 获取群文件系统信息
"/get_group_root_files", # 获取群根目录文件列表
"/get_group_files_by_folder", # 获取群子目录文件列表
"/get_group_file_url", # 获取群文件链接
"/upload_private_file", # 上传私聊文件
"/get_private_file_url", # 获取私聊文件链接
"/get_file", # 获取文件信息(通用)
"/download_file", # 下载文件到缓存目录
"/clean_cache" # 清空缓存
]
kg.generateRequestKt("file", "AbstractFile", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,53 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
# 群信息获取
"/get_group_info",
"/get_group_info_ex",
"/get_group_detail_info",
"/get_group_list",
"/get_group_member_info",
"/get_group_member_list",
"/get_group_honor_info",
"/get_group_at_all_remain",
"/get_group_shut_list",
"/get_group_ignored_notifies",
"/get_group_system_msg",
"/get_essence_msg_list",
# 群设置
"/set_group_name",
"/set_group_portrait",
"/set_group_search",
"/set_group_add_option",
"/set_group_robot_add_option",
"/set_group_remark",
"/set_group_card",
"/set_group_special_title",
"/set_group_admin",
"/set_group_leave",
# 群消息管理
"/set_essence_msg",
"/delete_essence_msg",
"/_send_group_notice",
"/_get_group_notice",
"/_del_group_notice",
# 群成员管理
"/set_group_kick",
"/set_group_kick_members",
"/set_group_ban",
"/set_group_whole_ban",
"/set_group_sign",
"/send_group_sign",
# 加群请求
"/set_group_add_request"
]
kg.generateRequestKt("group", "AbstractGroup", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,14 @@
# ktg.py
import sys
sys.path.append("../..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/send_group_msg", # 发送群消息文本、图片、表情、JSON、语音、视频、回复、音乐卡片等
"/send_group_forward_msg", # 发送群合并转发消息
"/forward_group_single_msg", # 转发单条消息到群
"/group_poke" # 发送群聊戳一戳
]
kg.generateRequestKt("message.group", "AbstractGroup", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,22 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/send_poke", # 发送戳一戳(通用版,可能同时适用于群和私聊)
"/delete_msg", # 撤回消息
"/get_group_msg_history", # 获取群历史消息
"/get_friend_msg_history", # 获取好友历史消息
"/get_msg", # 获取消息详情
"/get_forward_msg", # 获取合并转发消息
"/send_forward_msg", # 发送合并转发消息(通用版)
"/set_msg_emoji_like", # 贴表情(点赞表情)
"/fetch_emoji_like", # 获取贴表情详情
"/get_record", # 获取语音消息详情
"/get_image", # 获取图片消息详情
"/send_group_ai_record" # 发送群AI语音
]
kg.generateRequestKt("message", "AbstractGroup", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,14 @@
# ktg.py
import sys
sys.path.append("../..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/send_private_msg", # 发送私聊消息文本、图片、表情、JSON、语音、视频、回复、音乐卡片等
"/send_private_forward_msg", # 发送私聊合并转发消息
"/forward_friend_single_msg", # 转发单条消息到私聊
"/friend_poke" # 发送私聊戳一戳
]
kg.generateRequestKt("message.personal", "AbstractGroup", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,24 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
# 保留
"/send_private_msg", # send_private_msg
"/send_group_msg", # send_group_msg
"/send_msg", # send_msg
# 接口
"/unknown", # unknown
"/get_guild_list", # get_guild_list
"/get_guild_service_profile", # get_guild_service_profile
"/check_url_safely", # 检查链接安全性
#bug
"/get_collection_list", # 获取收藏列表
"/get_group_ignore_add_request" # 获取被过滤的加群请求
]
kg.generateRequestKt("other", "AbstractOther", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,17 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/get_clientkey", # 获取 clientkey
"/get_cookies", # 获取 cookies
"/get_csrf_token", # 获取 CSRF Token
"/get_credentials", # 获取 QQ 相关接口凭证
"/get_rkey", # 获取 rkey通用
"/nc_get_rkey", # nc获取rkey可能是特殊渠道
"/get_rkey_server" # 获取rkey服务可能是服务端专用
]
kg.generateRequestKt("passkey", "AbstractPassKey", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,20 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import requests.KtRequestGenerator as kg
def main():
api_paths = [
"/ocr_image", # OCR 图片识别
"/.ocr_image", # .OCR 图片识别
"/translate_en2zh", # 获取 CSRF Token
"/.handle_quick_operation", # .对事件执行快速操作
"/can_send_image", # 检查是否可以发送图片
"/can_send_record", # 检查是否可以发送语音
"/get_ai_characters", # 获取AI语音人物
"/click_inline_keyboard_button", # 点击按钮
"/get_ai_record" # 获取AI语音
"/set_input_status" # 设置输入状态
]
kg.generateRequestKt("personal", "AbstractPersonal", api_paths)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,18 @@
cd account
python ktg.py
cd ../file
python ktg.py
cd ../group
python ktg.py
cd ../message/personal
python ktg.py
cd ../group
python ktg.py
cd ../../personal
python ktg.py
cd ../passkey
python ktg.py
cd ../other
python ktg.py
cd ../system
python ktg.py

18
python/requests/pycode.sh Normal file
View File

@ -0,0 +1,18 @@
cd account
python ktg.py
cd ../file
python ktg.py
cd ../group
python ktg.py
cd ../message/personal
python ktg.py
cd ../group
python ktg.py
cd ../../personal
python ktg.py
cd ../passkey
python ktg.py
cd ../other
python ktg.py
cd ../system
python ktg.py

View File

@ -0,0 +1,42 @@
# ktg.py
import sys
sys.path.append("..") # 添加父目录到模块搜索路径
import KtEventGenerator 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", # 获取机器人可操作的账号范围(多账号托管时使用)
"/bot_exit", # 强制退出当前机器人账号(主动下线)
# 协议级操作
"/send_packet", # 发送原始协议数据包需熟悉QQ协议格式
"/nc_get_packet_status", # 查询自定义数据包的状态(如发送结果、回包状态)
# 系统信息
"/get_version_info" # 获取机器人框架/客户端的版本信息
]
kg.generateEventKt("system", "AbstractSystem", api_paths, kotlin_template_system)
if __name__ == "__main__":
main()

View File

@ -0,0 +1,26 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* CreateCollection请求
*/
@Serializable
data class CreateCollectionRequest(
/**
* 标题
*/
val brief: String,
/**
* 内容
*/
val rawData: String
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/create_collection"
}

View File

@ -0,0 +1,39 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* DeleteFriend请求
*/
@Serializable
data class DeleteFriendRequest(
/**
* user_id
*/
@SerialName("friend_id")
val friendId: ID? = null,
/**
* 拉黑
*/
@SerialName("temp_block")
val tempBlock: Boolean,
/**
* 双向删除
*/
@SerialName("temp_both_del")
val tempBothDel: Boolean,
@SerialName("user_id")
val userId: ID? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/delete_friend"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* FetchCustomFace请求
*/
@Serializable
data class FetchCustomFaceRequest(
val count: Double? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/fetch_custom_face"
}

View File

@ -0,0 +1,16 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetFriendList请求
*/
@Serializable
class GetFriendListRequest: AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_friend_list"
}

View File

@ -0,0 +1,16 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetFriendsWithCategory请求
*/
@Serializable
class GetFriendsWithCategoryRequest : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_friends_with_category"
}

View File

@ -0,0 +1,16 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetLoginInfo请求
*/
@Serializable
class GetLoginInfoRequest : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_login_info"
}

View File

@ -0,0 +1,119 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetMiniAppArk请求
*/
@Serializable
data class GetMiniAppArkRequest(
/**
* 描述
*/
val desc: String,
/**
* 跳转URL
*/
@SerialName("jumpUrl")
val jumpURL: String,
/**
* 图片URL
*/
@SerialName("picUrl")
val picURL: String,
/**
* 是否返回原始ark数据
*/
val rawArkData: Boolean? = null,
/**
* 标题
*/
val title: String,
/**
* 类型
*/
val type: Type? = null,
/**
* 网页URL
*/
@SerialName("webUrl")
val webURL: String? = null,
/**
* 应用ID
*/
@SerialName("appId")
val appId: String? = null,
/**
* 业务类型
*/
val businessType: ID? = null,
/**
* 图标URL
*/
@SerialName("iconUrl")
val iconURL: String? = null,
/**
* 场景
*/
val scene: ID? = null,
/**
* SDK ID
*/
@SerialName("sdkId")
val sdkId: String? = null,
/**
* 分享类型
*/
val shareType: ID? = null,
/**
* 模板类型
*/
val templateType: ID? = null,
/**
* 版本ID
*/
@SerialName("versionId")
val versionId: String? = null,
/**
* 版本类型
*/
val verType: ID? = null,
/**
* 是否分享
*/
val withShareTicket: ID? = null
) : AbstractAccountRequest() {
/**
* 类型
*/
@Serializable
enum class Type(val value: String) {
@SerialName("bili") Bili("bili"),
@SerialName("weibo") Weibo("weibo");
}
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_mini_app_ark"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetModelShow请求
*/
@Serializable
data class GetModelShowRequest(
val model: String
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_get_model_show"
}

View File

@ -2,7 +2,6 @@ package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import top.r3944realms.ltdmanager.napcat.Developing
import top.r3944realms.ltdmanager.napcat.requests.NapCatRequest
/**
* 设置消息已读

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetProfileLike请求
*/
@Serializable
data class GetProfileLikeRequest(
val count: Double? = null,
val start: Double? = null,
/**
* 指定用户不填为获取所有
*/
@SerialName("user_id")
val userId: ID? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_profile_like"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetRecentContact请求
*/
@Serializable
data class GetRecentContactRequest(
/**
* 会话数量
*/
val count: Double? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_recent_contact"
}

View File

@ -0,0 +1,32 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetStatus请求
*/
@Serializable
data class GetStatusRequest(
/**
* 表情ID表情ID
*/
@SerialName("face_id")
val faceId: ID,
@SerialName("face_type")
val faceType: ID? = null,
/**
* 描述文本
*/
val wording: String? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_status"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetStrangerInfo请求
*/
@Serializable
data class GetStrangerInfoRequest(
@SerialName("user_id")
val userId: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_stranger_info"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.Developing
/**
* GetUnidirectionalFriendList请求
*/
@Developing
@Serializable
class GetUnidirectionalFriendListRequest: AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_unidirectional_friend_list"
}

View File

@ -0,0 +1,16 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* MarkAllAsRead请求
*/
@Serializable
class MarkAllAsReadRequest: AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_mark_all_as_read"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* MarkGroupMsgAsRead请求
*/
@Serializable
data class MarkGroupMsgAsReadRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/mark_group_msg_as_read"
}

View File

@ -16,7 +16,7 @@ data class MarkMsgAsReadRequest (
* 与user_id二选一
*/
@SerialName("group_id")
val groupID: ID? = null,
val groupId: ID? = null,
/**
* 与group_id二选一

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* MarkPrivateMsgAsRead请求
*/
@Serializable
data class MarkPrivateMsgAsReadRequest(
@SerialName("user_id")
val userId: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/mark_private_msg_as_read"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* NcGetUserStatus请求
*/
@Serializable
data class NcGetUserStatusRequest(
@SerialName("user_id")
val userId: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/nc_get_user_status"
}

View File

@ -0,0 +1,26 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SendLike请求
*/
@Serializable
data class SendLikeRequest(
/**
* 点赞次数
*/
val times: Double? = null,
@SerialName("user_id")
val userId: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/send_like"
}

View File

@ -0,0 +1,32 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetDiyOnlineStatus请求
*/
@Serializable
data class SetDiyOnlineStatusRequest(
/**
* 表情ID表情ID
*/
@SerialName("face_id")
val faceId: ID,
@SerialName("face_type")
val faceType: ID? = null,
/**
* 描述文本
*/
val wording: String? = null
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_diy_online_status"
}

View File

@ -0,0 +1,31 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* SetFriendAdd请求
*/
@Serializable
data class SetFriendAddRequestRequest(
/**
* 是否同意
*/
val approve: Boolean,
/**
* 请求id
*/
val flag: String,
/**
* 好友备注
*/
val remark: String
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_friend_add_request"
}

View File

@ -0,0 +1,26 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetFriendRemark请求
*/
@Serializable
data class SetFriendRemarkRequest(
/**
* 备注名
*/
val remark: String,
@SerialName("user_id")
val userID: ID
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_friend_remark"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.Developing
/**
* SetModelShow请求
*/
@Developing
@Serializable
class SetModelShowRequest : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_set_model_show"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* SetQqAvatar请求
*/
@Serializable
data class SetQQAvatarRequest(
val file:String
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_qq_avatar"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.account
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* SetSelfLongnick请求
*/
@Serializable
data class SetSelfLongnickRequest(
/**
* 内容
*/
val longNick: String
) : AbstractAccountRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_self_longnick"
}

View File

@ -4,9 +4,9 @@ import kotlinx.serialization.Serializable
import top.r3944realms.ltdmanager.napcat.requests.NapCatRequest
@Serializable
abstract class AbstractAccountRequest
abstract class AbstractFileRequest
: NapCatRequest() {
override fun header(): String {
return "account"
return "file"
}
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.Developing
/**
* CleanCache请求
*/
@Developing
@Serializable
class CleanCacheRequest : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/clean_cache"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* CreateGroupFileFolder请求
*/
@Serializable
data class CreateGroupFileFolderRequest(
@SerialName("folder_name")
val folderName: String,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/create_group_file_folder"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* DeleteGroupFile请求
*/
@Serializable
data class DeleteGroupFileRequest(
@SerialName("file_id")
val fileId: String,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/delete_group_file"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* DeleteGroupFolder请求
*/
@Serializable
data class DeleteGroupFolderRequest(
@SerialName("folder_id")
val folderId: String,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/delete_group_folder"
}

View File

@ -0,0 +1,44 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* DownloadFile请求
*/
@Serializable
data class DownloadFileRequest(
/**
* 和url二选一
*/
val base64: String? = null,
/**
* 请求头
*/
val headers: Headers? = null,
/**
* 自定义文件名称
*/
val name: String? = null,
/**
* 下载地址
*/
val url: String? = null
) : AbstractFileRequest() {
/**
* 请求头
*/
@Serializable
sealed class Headers {
class StringArrayValue(val value: List<String>) : Headers()
class StringValue(val value: String) : Headers()
}
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/download_file"
}

View File

@ -0,0 +1,28 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetFile请求
*/
@Serializable
data class GetFileRequest(
/**
* 二选一
*/
val file: String? = null,
/**
* 二选一
*/
@SerialName("file_id")
val fileId: String? = null
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_file"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupFileSystemInfo请求
*/
@Serializable
data class GetGroupFileSystemInfoRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_file_system_info"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupFileUrl请求
*/
@Serializable
data class GetGroupFileUrlRequest(
@SerialName("file_id")
val fileId: String,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_file_url"
}

View File

@ -0,0 +1,38 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupFilesByFolder请求
*/
@Serializable
data class GetGroupFilesByFolderRequest(
/**
* 一次性获取的文件数量
*/
@SerialName("file_count")
val fileCount: Double? = null,
/**
* folder_id 二选一
*/
val folder: String? = null,
/**
* folder 二选一
*/
@SerialName("folder_id")
val folderId: String? = null,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_files_by_folder"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupRootFiles请求
*/
@Serializable
data class GetGroupRootFilesRequest(
@SerialName("file_count")
val fileCount: Double? = null,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_root_files"
}

View File

@ -0,0 +1,20 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetPrivateFileUrl请求
*/
@Serializable
data class GetPrivateFileUrlRequest(
@SerialName("file_id")
val fileID: String
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_private_file_url"
}

View File

@ -0,0 +1,36 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* MoveGroupFile请求
*/
@Serializable
data class MoveGroupFileRequest(
/**
* 当前父目录根目录填 /
*/
@SerialName("current_parent_directory")
val currentParentDirectory: String,
@SerialName("file_id")
val fileId: String,
@SerialName("group_id")
val groupId: ID,
/**
* 目标父目录
*/
@SerialName("target_parent_directory")
val targetParentDirectory: String
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/move_group_file"
}

View File

@ -0,0 +1,30 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* RenameGroupFile请求
*/
@Serializable
data class RenameGroupFileRequest(
@SerialName("current_parent_directory")
val currentParentDirectory: String,
@SerialName("file_id")
val fileId: String,
@SerialName("group_id")
val groupId: ID,
@SerialName("new_name")
val newName: String
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/rename_group_file"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* TransGroupFile请求
*/
@Serializable
data class TransGroupFileRequest(
@SerialName("file_id")
val fileID: String,
@SerialName("group_id")
val groupId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/trans_group_file"
}

View File

@ -0,0 +1,36 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* UploadGroupFile请求
*/
@Serializable
data class UploadGroupFileRequest(
val file: String,
/**
* 文件夹ID二选一
*/
val folder: String? = null,
/**
* 文件夹ID二选一
*/
@SerialName("folder_id")
val folderId: String? = null,
@SerialName("group_id")
val groupId: ID,
val name: String
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/upload_group_file"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.file
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* UploadPrivateFile请求
*/
@Serializable
data class UploadPrivateFileRequest(
val file: String,
val name: String,
@SerialName("user_id")
val userId: ID
) : AbstractFileRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/upload_private_file"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* DelGroupNotice请求
*/
@Serializable
data class DelGroupNoticeRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("notice_id")
val noticeId: String
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_del_group_notice"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* DeleteEssenceMsg请求
*/
@Serializable
data class DeleteEssenceMsgRequest(
@SerialName("message_id")
val messageId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/delete_essence_msg"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetEssenceMsgList请求
*/
@Serializable
data class GetEssenceMsgListRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_essence_msg_list"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupAtAllRemain请求
*/
@Serializable
data class GetGroupAtAllRemainRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_at_all_remain"
}

View File

@ -0,0 +1,22 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupDetailInfo请求
*/
@Serializable
data class GetGroupDetailInfoRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_detail_info"
}

View File

@ -0,0 +1,55 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupHonorInfo请求
*/
@Serializable
data class GetGroupHonorInfoRequest(
@SerialName("group_id")
val groupID: ID,
/**
* 看详情
*/
val type: Type? = Type.ALL
) : AbstractGroupRequest() {
@Serializable
enum class Type(val type: String) {
/**
* 所有默认
*/
@SerialName("all")ALL("all"),
/**
* /群聊之火
*/
@SerialName("talkactive")TALK_ACTIVE("talk_active"),
/**
* 群聊炽焰
*/
@SerialName("performer")PERFORMER("performer"),
/**
* 龙王
*/
@SerialName("legend")LEGEND("legend"),
/**
* 冒尖小春笋R.I.P
*/
@SerialName("strong_newbie")STRONG_NEWBIE("strong_newbie"),
/**
* 快乐源泉
*/
@SerialName("emotion")EMOTION("emotion")
}
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_honor_info"
}

View File

@ -0,0 +1,14 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.Serializable
/**
* GetGroupIgnoredNotifies请求
*/
@Serializable
class GetGroupIgnoredNotifiesRequest: AbstractGroupRequest() {
override fun toJSON(): String = "{}"
override fun path(): String = "/get_group_ignored_notifies"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupInfoEx请求
*/
@Serializable
data class GetGroupInfoExRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_info_ex"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupInfo请求
*/
@Serializable
data class GetGroupInfoRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_info"
}

View File

@ -0,0 +1,20 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetGroupList请求
*/
@Serializable
data class GetGroupListRequest(
@SerialName("no_cache")
val noCache: Boolean = false
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_list"
}

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupMemberInfo请求
*/
@Serializable
data class GetGroupMemberInfoRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("no_cache")
val noCache: Boolean,
@SerialName("user_id")
val userId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_member_info"
}

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupMemberList请求
*/
@Serializable
data class GetGroupMemberListRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("no_cache")
val noCache: Boolean,
@SerialName("user_id")
val userId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_member_list"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupNotice请求
*/
@Serializable
data class GetGroupNoticeRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_get_group_notice"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* GetGroupShutList请求
*/
@Serializable
data class GetGroupShutListRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_shut_list"
}

View File

@ -0,0 +1,18 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* GetGroupSystemMsg请求
*/
@Serializable
data class GetGroupSystemMsgRequest(
val count: Int = 50
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/get_group_system_msg"
}

View File

@ -0,0 +1,44 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SendGroupNotice请求
*/
@Serializable
data class SendGroupNoticeRequest(
@SerialName("confirm_required")
val confirmRequired: ID? = null,
/**
* 内容
*/
val content: String,
@SerialName("group_id")
val groupId: ID,
/**
* 图片路径
*/
val image: String? = null,
@SerialName("is_show_edit_card")
val isShowEditCard: ID? = null,
val pinned: ID? = null,
@SerialName("tip_window_type")
val tipWindowType: ID? = null,
val type: ID? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/_send_group_notice"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SendGroupSign请求
*/
@Serializable
data class SendGroupSignRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/send_group_sign"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetEssenceMsg请求
*/
@Serializable
data class SetEssenceMsgRequest(
@SerialName("message_id")
val messageID: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_essence_msg"
}

View File

@ -0,0 +1,30 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupAddOption请求
*/
@Serializable
data class SetGroupAddOptionRequest(
@SerialName("add_type")
val addType: String,
@SerialName("group_answer")
val groupAnswer: String? = null,
@SerialName("group_id")
val groupId: ID,
@SerialName("group_question")
val groupQuestion: String? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_add_option"
}

View File

@ -0,0 +1,33 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupAdd请求
*/
@Serializable
data class SetGroupAddRequestRequest(
/**
* 是否同意
*/
val approve: Boolean,
/**
* 请求id
*/
val flag: String,
/**
* 拒绝理由
*/
val reason: String? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_add_request"
}

View File

@ -0,0 +1,26 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupAdmin请求
*/
@Serializable
data class SetGroupAdminRequest(
val enable: Boolean,
@SerialName("group_id")
val groupID: ID,
@SerialName("user_id")
val userID: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_admin"
}

View File

@ -0,0 +1,29 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupBan请求
*/
@Serializable
data class SetGroupBanRequest(
/**
* 禁言时间
*/
val duration: Double,
@SerialName("group_id")
val groupId: ID,
@SerialName("user_id")
val userId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_ban"
}

View File

@ -0,0 +1,29 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupCard请求
*/
@Serializable
data class SetGroupCardRequest(
/**
* 为空则为取消群名片
*/
val card: String? = null,
@SerialName("group_id")
val groupID: ID,
@SerialName("user_id")
val userID: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_card"
}

View File

@ -0,0 +1,30 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupKickMembers请求
*/
@Serializable
data class SetGroupKickMembersRequest(
@SerialName("group_id")
val groupId: ID,
/**
* 是否群拉黑
*/
@SerialName("reject_add_request")
val rejectAddRequest: Boolean? = null,
@SerialName("user_id")
val userId: List<ID>
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_kick_members"
}

View File

@ -0,0 +1,30 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupKick请求
*/
@Serializable
data class SetGroupKickRequest(
@SerialName("group_id")
val groupId: ID,
/**
* 是否群拉黑
*/
@SerialName("reject_add_request")
val rejectAddRequest: Boolean? = null,
@SerialName("user_id")
val userId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_kick"
}

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupLeave请求
*/
@Serializable
data class SetGroupLeaveRequest(
@SerialName("group_id")
val groupId: ID,
/**
* 暂无作用
*/
@SerialName("is_dismiss")
val isDismiss: Boolean? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_leave"
}

View File

@ -0,0 +1,24 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupName请求
*/
@Serializable
data class SetGroupNameRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("group_name")
val groupName: String
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_name"
}

View File

@ -0,0 +1,23 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupPortrait请求
*/
@Serializable
data class SetGroupPortraitRequest(
val file: String,
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_portrait"
}

View File

@ -0,0 +1,22 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
/**
* SetGroupRemark请求
*/
@Serializable
data class SetGroupRemarkRequest(
@SerialName("group_id")
val groupId: String,
val remark: String
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_remark"
}

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupRobotAddOption请求
*/
@Serializable
data class SetGroupRobotAddOptionRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("robot_member_examine")
val robotMemberExamine: Double? = null,
@SerialName("robot_member_switch")
val robotMemberSwitch: Double? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_robot_add_option"
}

View File

@ -0,0 +1,27 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupSearch请求
*/
@Serializable
data class SetGroupSearchRequest(
@SerialName("group_id")
val groupId: ID,
@SerialName("no_code_finger_open")
val noCodeFingerOpen: Double? = null,
@SerialName("no_finger_open")
val noFingerOpen: Double? = null
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_search"
}

View File

@ -0,0 +1,21 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupSign请求
*/
@Serializable
data class SetGroupSignRequest(
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_sign"
}

View File

@ -0,0 +1,30 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupSpecialTitle请求
*/
@Serializable
data class SetGroupSpecialTitleRequest(
@SerialName("group_id")
val groupID: ID,
/**
* 为空则取消头衔
*/
@SerialName("special_title")
val specialTitle: String? = null,
@SerialName("user_id")
val userID: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_special_title"
}

View File

@ -0,0 +1,23 @@
package top.r3944realms.ltdmanager.napcat.requests.group
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import top.r3944realms.ltdmanager.napcat.data.ID
/**
* SetGroupWholeBan请求
*/
@Serializable
data class SetGroupWholeBanRequest(
val enable: Boolean,
@SerialName("group_id")
val groupId: ID
) : AbstractGroupRequest() {
override fun toJSON(): String = Json.encodeToString(this)
override fun path(): String = "/set_group_whole_ban"
}