feat: 完成事件的类抽象化
This commit is contained in:
parent
35be683f53
commit
bd9fe38217
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@
|
|||
<asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
|
||||
<groovy codeStyle="LEGACY" />
|
||||
</component>
|
||||
<component name="EntryPointsManager">
|
||||
<list size="1">
|
||||
<item index="0" class="java.lang.String" itemvalue="kotlinx.serialization.Serializable" />
|
||||
</list>
|
||||
</component>
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$" />
|
||||
|
|
|
|||
117
python/events/KtEventGenerator.py
Normal file
117
python/events/KtEventGenerator.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
# KtEventGenerator.py
|
||||
import os
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template_common = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.{path}
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : {super_class}Event(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_').replace('.','point_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path, path0, super_class, template):
|
||||
"""生成完整的Kotlin类(通过自通过模板)"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return template.format(
|
||||
path=path0,
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description,
|
||||
super_class=super_class
|
||||
)
|
||||
|
||||
def find_project_root(start_path=None, marker='.projectroot'):
|
||||
"""向上查找直到找到标记文件"""
|
||||
if start_path is None:
|
||||
start_path = os.path.abspath(__file__)
|
||||
|
||||
current = os.path.dirname(start_path)
|
||||
while True:
|
||||
if marker in os.listdir(current):
|
||||
return current
|
||||
parent = os.path.dirname(current)
|
||||
if parent == current: # 到达根目录
|
||||
raise FileNotFoundError(f"Project root marker '{marker}' not found")
|
||||
current = parent
|
||||
|
||||
|
||||
def generateEventKt(path0, superclass0, apipaths, template = kotlin_template_common):
|
||||
"""
|
||||
生成事件类文件
|
||||
:param path0: 包路径,如"account"或"message"
|
||||
:param superclass0: 父类名,如"AbstractAccount"或"AbstractMessage"
|
||||
:param apipaths: API路径列表
|
||||
:param template: 自提供模板(不提供则使用默认)
|
||||
"""
|
||||
# 创建输出目录
|
||||
root_path = find_project_root()
|
||||
|
||||
path_ = path0.replace(".", "/")
|
||||
output_dir = os.path.join(
|
||||
root_path,
|
||||
"src/main/kotlin/top/r3944realms/ltdmanager/napcat/events",
|
||||
path_,
|
||||
"wip"
|
||||
)
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in apipaths:
|
||||
kotlin_code = generate_kotlin_class(api_path, path0, superclass0, template)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = os.path.join(output_dir, f"{class_name}.kt")
|
||||
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
f.write(kotlin_code)
|
||||
|
||||
print(f"Generated: {filename}")
|
||||
|
||||
print(f"\nSuccessfully generated {len(apipaths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
# 确保方法可以被导入
|
||||
__all__ = ['generateEventKt']
|
||||
BIN
python/events/__pycache__/KtEventGenerator.cpython-311.pyc
Normal file
BIN
python/events/__pycache__/KtEventGenerator.cpython-311.pyc
Normal file
Binary file not shown.
|
|
@ -1,111 +0,0 @@
|
|||
import os
|
||||
|
||||
# 原始API路径列表
|
||||
api_paths = [
|
||||
"/set_qq_avatar",
|
||||
"/send_like",
|
||||
"/mark_private_msg_as_read",
|
||||
"/mark_group_msg_as_read",
|
||||
"/create_collection",
|
||||
"/set_friend_add_request",
|
||||
"/set_self_longnick",
|
||||
"/get_login_info",
|
||||
"/get_recent_contact",
|
||||
"/get_stranger_info",
|
||||
"/get_friend_list",
|
||||
"/_mark_all_as_read",
|
||||
"/get_profile_like",
|
||||
"/fetch_custom_face",
|
||||
"/delete_friend",
|
||||
"/_get_model_show",
|
||||
"/_set_model_show",
|
||||
"/nc_get_user_status",
|
||||
"/get_status",
|
||||
"/get_mini_app_ark",
|
||||
"/get_unidirectional_friend_list",
|
||||
"/set_diy_online_status",
|
||||
"/set_friend_remark"
|
||||
]
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path):
|
||||
"""生成完整的Kotlin类"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return kotlin_template.format(
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description
|
||||
)
|
||||
|
||||
def main():
|
||||
# 创建输出目录
|
||||
output_dir = "../../../src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/wip"
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in api_paths:
|
||||
kotlin_code = generate_kotlin_class(api_path)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = f"{output_dir}/{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(api_paths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
53
python/events/account/ktg.py
Normal file
53
python/events/account/ktg.py
Normal 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()
|
||||
28
python/events/file/ktg.py
Normal file
28
python/events/file/ktg.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator as kg
|
||||
def main():
|
||||
group_apis = [
|
||||
"/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.generateEventKt("file", "AbstractFile", group_apis)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
import os
|
||||
|
||||
# 原始API路径列表
|
||||
api_paths = [
|
||||
"/set_qq_avatar",
|
||||
"/send_like",
|
||||
"/mark_private_msg_as_read",
|
||||
"/mark_group_msg_as_read",
|
||||
"/create_collection",
|
||||
"/set_friend_add_request",
|
||||
"/set_self_longnick",
|
||||
"/get_login_info",
|
||||
"/get_recent_contact",
|
||||
"/get_stranger_info",
|
||||
"/get_friend_list",
|
||||
"/_mark_all_as_read",
|
||||
"/get_profile_like",
|
||||
"/fetch_custom_face",
|
||||
"/delete_friend",
|
||||
"/_get_model_show",
|
||||
"/_set_model_show",
|
||||
"/nc_get_user_status",
|
||||
"/get_status",
|
||||
"/get_mini_app_ark",
|
||||
"/get_unidirectional_friend_list",
|
||||
"/set_diy_online_status",
|
||||
"/set_friend_remark"
|
||||
]
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path):
|
||||
"""生成完整的Kotlin类"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return kotlin_template.format(
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description
|
||||
)
|
||||
|
||||
def main():
|
||||
# 创建输出目录
|
||||
output_dir = "../../../src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/group/wip"
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in api_paths:
|
||||
kotlin_code = generate_kotlin_class(api_path)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = f"{output_dir}/{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(api_paths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
44
python/events/group/ktg.py
Normal file
44
python/events/group/ktg.py
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator as kg
|
||||
def main():
|
||||
group_apis = [
|
||||
"/set_group_search",
|
||||
"/get_group_detail_info",
|
||||
"/set_group_add_option",
|
||||
"/set_group_robot_add_option",
|
||||
"/set_group_kick_members",
|
||||
"/set_group_remark",
|
||||
"/set_group_kick",
|
||||
"/get_group_system_msg",
|
||||
"/set_group_ban",
|
||||
"/get_essence_msg_list",
|
||||
"/set_group_whole_ban",
|
||||
"/set_group_portrait",
|
||||
"/set_group_admin",
|
||||
"/set_group_card",
|
||||
"/set_essence_msg",
|
||||
"/set_group_name",
|
||||
"/delete_essence_msg",
|
||||
"/set_group_leave",
|
||||
"/_send_group_notice",
|
||||
"/set_group_special_title",
|
||||
"/_get_group_notice",
|
||||
"/set_group_add_request",
|
||||
"/get_group_info",
|
||||
"/get_group_list",
|
||||
"/_del_group_notice",
|
||||
"/get_group_member_info",
|
||||
"/get_group_member_list",
|
||||
"/get_group_honor_info",
|
||||
"/get_group_info_ex",
|
||||
"/get_group_at_all_remain",
|
||||
"/get_group_shut_list",
|
||||
"/get_group_ignored_notifies",
|
||||
"/set_group_sign",
|
||||
"/send_group_sign"
|
||||
]
|
||||
kg.generateEventKt("group", "AbstractGroup", group_apis)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
import os
|
||||
|
||||
# 原始API路径列表
|
||||
api_paths = [
|
||||
"/set_qq_avatar",
|
||||
"/send_like",
|
||||
"/mark_private_msg_as_read",
|
||||
"/mark_group_msg_as_read",
|
||||
"/create_collection",
|
||||
"/set_friend_add_request",
|
||||
"/set_self_longnick",
|
||||
"/get_login_info",
|
||||
"/get_recent_contact",
|
||||
"/get_stranger_info",
|
||||
"/get_friend_list",
|
||||
"/_mark_all_as_read",
|
||||
"/get_profile_like",
|
||||
"/fetch_custom_face",
|
||||
"/delete_friend",
|
||||
"/_get_model_show",
|
||||
"/_set_model_show",
|
||||
"/nc_get_user_status",
|
||||
"/get_status",
|
||||
"/get_mini_app_ark",
|
||||
"/get_unidirectional_friend_list",
|
||||
"/set_diy_online_status",
|
||||
"/set_friend_remark"
|
||||
]
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path):
|
||||
"""生成完整的Kotlin类"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return kotlin_template.format(
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description
|
||||
)
|
||||
|
||||
def main():
|
||||
# 创建输出目录
|
||||
output_dir = "../../../src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/wip"
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in api_paths:
|
||||
kotlin_code = generate_kotlin_class(api_path)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = f"{output_dir}/{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(api_paths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
import os
|
||||
|
||||
# 原始API路径列表
|
||||
api_paths = [
|
||||
"/set_qq_avatar",
|
||||
"/send_like",
|
||||
"/mark_private_msg_as_read",
|
||||
"/mark_group_msg_as_read",
|
||||
"/create_collection",
|
||||
"/set_friend_add_request",
|
||||
"/set_self_longnick",
|
||||
"/get_login_info",
|
||||
"/get_recent_contact",
|
||||
"/get_stranger_info",
|
||||
"/get_friend_list",
|
||||
"/_mark_all_as_read",
|
||||
"/get_profile_like",
|
||||
"/fetch_custom_face",
|
||||
"/delete_friend",
|
||||
"/_get_model_show",
|
||||
"/_set_model_show",
|
||||
"/nc_get_user_status",
|
||||
"/get_status",
|
||||
"/get_mini_app_ark",
|
||||
"/get_unidirectional_friend_list",
|
||||
"/set_diy_online_status",
|
||||
"/set_friend_remark"
|
||||
]
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path):
|
||||
"""生成完整的Kotlin类"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return kotlin_template.format(
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description
|
||||
)
|
||||
|
||||
def main():
|
||||
# 创建输出目录
|
||||
output_dir = "../../../src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/wip"
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in api_paths:
|
||||
kotlin_code = generate_kotlin_class(api_path)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = f"{output_dir}/{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(api_paths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
14
python/events/message/group/ktg.py
Normal file
14
python/events/message/group/ktg.py
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("../..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator as kg
|
||||
def main():
|
||||
api_paths = [
|
||||
"/send_group_msg", # 发送群消息(文本、图片、表情、JSON、语音、视频、回复、音乐卡片等)
|
||||
"/send_group_forward_msg", # 发送群合并转发消息
|
||||
"/forward_group_single_msg", # 转发单条消息到群
|
||||
"/group_poke" # 发送群聊戳一戳
|
||||
]
|
||||
kg.generateEventKt("message.group", "AbstractGroup", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
22
python/events/message/ktg.py
Normal file
22
python/events/message/ktg.py
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator 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.generateEventKt("message", "AbstractGroup", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
import os
|
||||
|
||||
# 原始API路径列表
|
||||
api_paths = [
|
||||
"/set_qq_avatar",
|
||||
"/send_like",
|
||||
"/mark_private_msg_as_read",
|
||||
"/mark_group_msg_as_read",
|
||||
"/create_collection",
|
||||
"/set_friend_add_request",
|
||||
"/set_self_longnick",
|
||||
"/get_login_info",
|
||||
"/get_recent_contact",
|
||||
"/get_stranger_info",
|
||||
"/get_friend_list",
|
||||
"/_mark_all_as_read",
|
||||
"/get_profile_like",
|
||||
"/fetch_custom_face",
|
||||
"/delete_friend",
|
||||
"/_get_model_show",
|
||||
"/_set_model_show",
|
||||
"/nc_get_user_status",
|
||||
"/get_status",
|
||||
"/get_mini_app_ark",
|
||||
"/get_unidirectional_friend_list",
|
||||
"/set_diy_online_status",
|
||||
"/set_friend_remark"
|
||||
]
|
||||
|
||||
# Kotlin事件类模板
|
||||
kotlin_template = """
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* {event_description}事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class {class_name}(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {{
|
||||
|
||||
override fun subtype(): String {{
|
||||
return "{original_name}"
|
||||
}}
|
||||
}}
|
||||
"""
|
||||
|
||||
def path_to_class_name(api_path):
|
||||
"""将API路径转换为类名"""
|
||||
# 移除斜杠和前缀下划线
|
||||
clean_path = api_path.lstrip('/').lstrip('_')
|
||||
# 分割单词并转换为驼峰命名
|
||||
parts = clean_path.split('_')
|
||||
return ''.join(part.capitalize() for part in parts) + "Event"
|
||||
|
||||
def path_to_original_name(api_path):
|
||||
"""获取原始API名称(不带斜杠)"""
|
||||
return api_path.lstrip('/')
|
||||
|
||||
def generate_description(class_name):
|
||||
"""生成事件描述"""
|
||||
return class_name.replace("Event", "")
|
||||
|
||||
def generate_kotlin_class(api_path):
|
||||
"""生成完整的Kotlin类"""
|
||||
class_name = path_to_class_name(api_path)
|
||||
original_name = path_to_original_name(api_path)
|
||||
event_description = generate_description(class_name)
|
||||
|
||||
return kotlin_template.format(
|
||||
class_name=class_name,
|
||||
original_name=original_name,
|
||||
event_description=event_description
|
||||
)
|
||||
|
||||
def main():
|
||||
# 创建输出目录
|
||||
output_dir = "../../../src/main/kotlin/top/r3944realms/ltdmanager/napcat/events/account/wip"
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# 为每个API路径生成Kotlin文件
|
||||
for api_path in api_paths:
|
||||
kotlin_code = generate_kotlin_class(api_path)
|
||||
class_name = path_to_class_name(api_path)
|
||||
filename = f"{output_dir}/{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(api_paths)} Kotlin event classes in '{output_dir}' directory")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
14
python/events/message/personal/ktg.py
Normal file
14
python/events/message/personal/ktg.py
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
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" # 发送私聊戳一戳
|
||||
]
|
||||
kg.generateEventKt("message.personal", "AbstractGroup", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
24
python/events/other/ktg.py
Normal file
24
python/events/other/ktg.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator 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.generateEventKt("other", "AbstractOther", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
17
python/events/passkey/ktg.py
Normal file
17
python/events/passkey/ktg.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator 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.generateEventKt("passkey", "AbstractPasskey", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
20
python/events/personal/ktg.py
Normal file
20
python/events/personal/ktg.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# ktg.py
|
||||
import sys
|
||||
sys.path.append("..") # 添加父目录到模块搜索路径
|
||||
import KtEventGenerator 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.generateEventKt("personal", "AbstractPersonal", api_paths)
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
18
python/events/pycode.sh
Normal file
18
python/events/pycode.sh
Normal 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
|
||||
42
python/events/system/ktg.py
Normal file
42
python/events/system/ktg.py
Normal 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()
|
||||
|
|
@ -1,61 +1,29 @@
|
|||
package top.r3944realms.ltdmanager
|
||||
|
||||
import org.slf4j.LoggerFactory
|
||||
import top.r3944realms.ltdmanager.napcat.data.Sex
|
||||
import top.r3944realms.ltdmanager.napcat.events.NapCatEvent
|
||||
import top.r3944realms.ltdmanager.napcat.events.account.SetQQProfileEvent
|
||||
import top.r3944realms.ltdmanager.napcat.requests.account.SetQQProfileRequest
|
||||
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")
|
||||
logger.info("Start")
|
||||
|
||||
// 创建请求
|
||||
val request = SetQQProfileRequest(
|
||||
nickname = "123",
|
||||
personalNote = "232",
|
||||
sex = Sex.FEMALE
|
||||
)
|
||||
|
||||
// 序列化(会自动添加type字段)
|
||||
val jsonStr = request.toJSON()
|
||||
logger.info("Serialized: {}", jsonStr)
|
||||
// 输出示例: {"type":"account/setQQProfile","nickname":"123","personal_note":"232","sex":"2"}
|
||||
val decodeJson =
|
||||
"""
|
||||
val toJSON = SetOnlineStatusRequest.ONLINE.toJSON()
|
||||
logger.info("S:{}",toJSON)
|
||||
val str: String = """
|
||||
{
|
||||
"status": "ok",
|
||||
"retcode": 0,
|
||||
"data": {
|
||||
"result": 0,
|
||||
"errMsg": "string"
|
||||
},
|
||||
"data": null,
|
||||
"message": "string",
|
||||
"wording": "string",
|
||||
"echo": "string"
|
||||
}
|
||||
""".trimIndent();
|
||||
try {
|
||||
when (val decoded = NapCatEvent.decodeEvent(decodeJson, request.type())) {
|
||||
is SetQQProfileEvent -> {
|
||||
println("""
|
||||
反序列化成功:
|
||||
{
|
||||
"status": ${decoded.status},
|
||||
"retcode": ${decoded.retcode},
|
||||
"data": {
|
||||
"result": ${decoded.data.result},
|
||||
"errMsg": ${decoded.data.errorMsg}
|
||||
},
|
||||
"message": ${decoded.message},
|
||||
"wording": ${decoded.wording},
|
||||
"echo": ${decoded.echo}
|
||||
}
|
||||
""".trimIndent())
|
||||
}
|
||||
else -> println("未知请求类型")
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
println("反序列化失败: ${e.message}")
|
||||
""".trimIndent()
|
||||
val decodeEvent = NapCatEvent.decodeEvent(str, "group/set_group_search")
|
||||
if (decodeEvent is SetGroupSearchEvent) {
|
||||
logger.info("data:{}",decodeEvent.data)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,21 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class Author {
|
||||
}
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Author (
|
||||
@SerialName("groupId")
|
||||
val groupID: String,
|
||||
|
||||
val groupName: String,
|
||||
|
||||
@SerialName("numId")
|
||||
val numID: String,
|
||||
|
||||
@SerialName("strId")
|
||||
val strID: String,
|
||||
|
||||
val type: Double,
|
||||
val uid: String
|
||||
)
|
||||
|
|
@ -1,4 +1,40 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class CharBoxElement {
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class CharBoxElement (
|
||||
val charBox: CharBoxCharBox,
|
||||
val charText: String
|
||||
) {
|
||||
@Serializable
|
||||
data class CharBoxCharBox (
|
||||
/**
|
||||
* 顶点坐标
|
||||
*/
|
||||
val pt1: CharBoxPt,
|
||||
|
||||
/**
|
||||
* 顶点坐标
|
||||
*/
|
||||
val pt2: CharBoxPt,
|
||||
|
||||
/**
|
||||
* 顶点坐标
|
||||
*/
|
||||
val pt3: CharBoxPt,
|
||||
|
||||
/**
|
||||
* 顶点坐标
|
||||
*/
|
||||
val pt4: CharBoxPt
|
||||
)
|
||||
/**
|
||||
* 顶点坐标
|
||||
*/
|
||||
@Serializable
|
||||
data class CharBoxPt (
|
||||
val x: String,
|
||||
val y: String
|
||||
)
|
||||
}
|
||||
|
|
@ -1,4 +1,25 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class Character {
|
||||
}
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Character (
|
||||
/**
|
||||
* 人物ID
|
||||
*/
|
||||
@SerialName("character_id")
|
||||
val characterID: String,
|
||||
|
||||
/**
|
||||
* 人物名字
|
||||
*/
|
||||
@SerialName("character_name")
|
||||
val characterName: String,
|
||||
|
||||
/**
|
||||
* 试听网址
|
||||
*/
|
||||
@SerialName("preview_url")
|
||||
val previewURL: String
|
||||
)
|
||||
|
|
@ -1,4 +1,28 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class CollectionItemList {
|
||||
}
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class CollectionItemList (
|
||||
val author: Author,
|
||||
val bid: Double,
|
||||
val category: Double,
|
||||
val cid: String,
|
||||
val collectTime: String,
|
||||
val createTime: String,
|
||||
|
||||
@SerialName("customGroupId")
|
||||
val customGroupID: Double,
|
||||
|
||||
val modifyTime: String,
|
||||
val securityBeat: Boolean,
|
||||
val sequence: String,
|
||||
|
||||
@SerialName("shareUrl")
|
||||
val shareURL: String,
|
||||
|
||||
val status: Double,
|
||||
val summary: Summary,
|
||||
val type: Double
|
||||
)
|
||||
|
|
@ -1,4 +1,10 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class CollectionSearchList {
|
||||
}
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class CollectionSearchList (
|
||||
val bottomTimeStamp: String,
|
||||
val collectionItemList: List<CollectionItemList>,
|
||||
val hasMore: Boolean
|
||||
)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class EmojiLikesList (
|
||||
@SerialName("headUrl")
|
||||
val headURL: String,
|
||||
|
||||
val nickName: String,
|
||||
|
||||
@SerialName("tinyId")
|
||||
val tinyID: String
|
||||
)
|
||||
|
|
@ -1,4 +1,29 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class FriendeInfo {
|
||||
}
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* 好友信息
|
||||
*/
|
||||
@Serializable
|
||||
data class FriendInfo(
|
||||
@SerialName("birthday_year")
|
||||
val birthdayYear: Int,
|
||||
@SerialName("birthday_month")
|
||||
val birthdayMonth: Int,
|
||||
@SerialName("birthday_day")
|
||||
val birthdayDay: Int,
|
||||
@SerialName("user_id")
|
||||
val userId: Long,
|
||||
val age: Int,
|
||||
@SerialName("phone_number")
|
||||
val phoneNum: String,
|
||||
val email: String,
|
||||
@SerialName("category_id")
|
||||
val categoryId: Int,
|
||||
val nickname: String,
|
||||
val remark: String,
|
||||
val sex: String,
|
||||
val level: Int
|
||||
)
|
||||
|
|
@ -2,6 +2,9 @@ package top.r3944realms.ltdmanager.napcat.data
|
|||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@Serializable
|
||||
sealed class ID {
|
||||
class DoubleValue(val value: Double) : ID()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
enum class MessageType(val value: String) {
|
||||
@SerialName("at") At("at"),
|
||||
@SerialName("face") Face("face"),
|
||||
@SerialName("file") File("file"),
|
||||
@SerialName("forward") Forward("forward"),
|
||||
@SerialName("image") Image("image"),
|
||||
@SerialName("json") JSON("json"),
|
||||
@SerialName("record") Record("record"),
|
||||
@SerialName("reply") Reply("reply"),
|
||||
@SerialName("text") Text("text"),
|
||||
@SerialName("video") Video("video");
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
sealed class Qq {
|
||||
class DoubleValue(val value: Double) : Qq()
|
||||
class StringValue(val value: String) : Qq()
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
enum class Role(val value: String) {
|
||||
@SerialName("admin") Admin("admin"),
|
||||
@SerialName("member") Member("member"),
|
||||
@SerialName("owner") Owner("owner");
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* sender
|
||||
*/
|
||||
@Serializable
|
||||
data class Sender (
|
||||
val age: Double? = null,
|
||||
val card: String,
|
||||
val nickname: String,
|
||||
val role: Role? = null,
|
||||
val sex: SexV2? = null,
|
||||
|
||||
@SerialName("user_id")
|
||||
val userID: Double
|
||||
)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data;
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* 回应格式不统一导致有了第二版本
|
||||
*/
|
||||
@Serializable
|
||||
enum class SexV2(val value: String) {
|
||||
@SerialName("female") FEMALE("female"),
|
||||
@SerialName("male") MALE("male"),
|
||||
@SerialName("unknown") UNKNOWN("unknown");
|
||||
}
|
||||
|
|
@ -1,4 +1,15 @@
|
|||
package top.r3944realms.ltdmanager.napcat.data
|
||||
|
||||
class Summary {
|
||||
}
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class Summary (
|
||||
val audioSummary: String,
|
||||
val fileSummary: String,
|
||||
val gallerySummary: String,
|
||||
val linkSummary: String,
|
||||
val locationSummary: String,
|
||||
val richMediaSummary: String,
|
||||
val textSummary: String,
|
||||
val videoSummary: String
|
||||
)
|
||||
|
|
|
|||
|
|
@ -42,18 +42,43 @@ abstract class AbstractAccountEvent(
|
|||
override fun type(): String {
|
||||
return "account/" + subtype()
|
||||
}
|
||||
|
||||
//TODO 太烦了 也许该考虑反射或代码生成
|
||||
companion object {
|
||||
val eventTypeMap by lazy {
|
||||
mutableMapOf<String, KSerializer<out NapCatEvent>>().apply {
|
||||
put("account/set_qq_profile", SetQQProfileEvent.serializer())
|
||||
put("account/ArkSharePeer", GetArkSharePeerEvent.serializer())
|
||||
put("account/ArkSharePeer", ArkSharePeerEvent.serializer())
|
||||
put("account/get_doubt_friends_add_request", GetDoubtFriendsAddRequestEvent.serializer())
|
||||
put("account/set_doubt_friends_add_request", SetDoubtFriendsAddRequestEvent.serializer())
|
||||
put("account/get_online_clients", GetOnlineClientsEvent.serializer())
|
||||
put("account/mark_msg_as_read", MarkMsgAsReadEvent.serializer())
|
||||
put("account/set_online_status", SetOnlineStatusEvent.serializer())
|
||||
put("account/ArkShareGroup", MarkMsgAsReadEvent.serializer())
|
||||
put("account/get_friends_with_category",GetFriendsWithCategoryEvent.serializer())
|
||||
put("account/create_collection",CreateCollectionEvent.serializer())
|
||||
put("account/delete_friend",DeleteFriendEvent.serializer())
|
||||
put("account/fetch_custom_face",FetchCustomFaceEvent.serializer())
|
||||
put("account/get_friend_list",GetFriendListEvent.serializer())
|
||||
put("account/get_login_info",GetLoginInfoEvent.serializer())
|
||||
put("account/get_mini_app_ark",GetMiniAppArkEvent.serializer())
|
||||
put("account/_get_model_show",GetModelShowEvent.serializer())
|
||||
put("account/get_profile_like",GetProfileLikeEvent.serializer())
|
||||
put("account/get_recent_contact",GetRecentContactEvent.serializer())
|
||||
put("account/get_status",GetStatusEvent.serializer())
|
||||
put("account/get_stranger_info",GetStrangerInfoEvent.serializer())
|
||||
put("account/get_unidirectional_friend_list",GetUnidirectionalFriendListEvent.serializer())
|
||||
put("account/_mark_all_as_read",MarkAllAsReadEvent.serializer())
|
||||
put("account/mark_group_msg_as_read",MarkGroupMsgAsReadEvent.serializer())
|
||||
put("account/mark_private_msg_as_read",MarkPrivateMsgAsReadEvent.serializer())
|
||||
put("account/nc_get_user_status",NcGetUserStatusEvent.serializer())
|
||||
put("account/send_like",SendLikeEvent.serializer())
|
||||
put("account/set_diy_online_status",SetDiyOnlineStatusEvent.serializer())
|
||||
put("account/set_friend_add_request",SetFriendAddRequestEvent.serializer())
|
||||
put("account/set_friend_remark",SetFriendRemarkEvent.serializer())
|
||||
put("account/_set_model_show",SetModelShowEvent.serializer())
|
||||
put("account/set_qq_avatar",SetQqAvatarEvent.serializer())
|
||||
put("account/set_self_longnick",SetSelfLongnickEvent.serializer())
|
||||
|
||||
}
|
||||
}
|
||||
internal val json: Json by lazy {
|
||||
|
|
@ -61,12 +86,38 @@ abstract class AbstractAccountEvent(
|
|||
ignoreUnknownKeys = true
|
||||
serializersModule = SerializersModule {
|
||||
polymorphic(NapCatEvent::class) {
|
||||
subclass(GetArkSharePeerEvent::class)
|
||||
subclass(SetQQProfileEvent::class)
|
||||
subclass(ArkSharePeerEvent::class)
|
||||
subclass(GetDoubtFriendsAddRequestEvent::class)
|
||||
subclass(SetDoubtFriendsAddRequestEvent::class)
|
||||
subclass(GetOnlineClientsEvent::class)
|
||||
subclass(MarkMsgAsReadEvent::class)
|
||||
subclass(SetOnlineStatusEvent::class)
|
||||
subclass(ArkShareGroupEvent::class)
|
||||
subclass(GetFriendsWithCategoryEvent::class)
|
||||
subclass(CreateCollectionEvent::class)
|
||||
subclass(DeleteFriendEvent::class)
|
||||
subclass(FetchCustomFaceEvent::class)
|
||||
subclass(GetFriendListEvent::class)
|
||||
subclass(GetLoginInfoEvent::class)
|
||||
subclass(GetMiniAppArkEvent::class)
|
||||
subclass(GetModelShowEvent::class)
|
||||
subclass(GetProfileLikeEvent::class)
|
||||
subclass(GetRecentContactEvent::class)
|
||||
subclass(GetStatusEvent::class)
|
||||
subclass(GetStrangerInfoEvent::class)
|
||||
subclass(GetUnidirectionalFriendListEvent::class)
|
||||
subclass(MarkAllAsReadEvent::class)
|
||||
subclass(MarkGroupMsgAsReadEvent::class)
|
||||
subclass(MarkPrivateMsgAsReadEvent::class)
|
||||
subclass(NcGetUserStatusEvent::class)
|
||||
subclass(SendLikeEvent::class)
|
||||
subclass(SetDiyOnlineStatusEvent::class)
|
||||
subclass(SetFriendAddRequestEvent::class)
|
||||
subclass(SetFriendRemarkEvent::class)
|
||||
subclass(SetModelShowEvent::class)
|
||||
subclass(SetQqAvatarEvent::class)
|
||||
subclass(SetSelfLongnickEvent::class)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import kotlinx.serialization.Transient
|
|||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetArkSharePeerEvent(
|
||||
data class ArkSharePeerEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* CreateCollection事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class CreateCollectionEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val result: Double,
|
||||
val errMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "create_collection"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* DeleteFriend事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DeleteFriendEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val result: Double,
|
||||
val errMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "delete_friend"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
|
||||
/**
|
||||
* FetchCustomFace事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class FetchCustomFaceEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonArray
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "fetch_custom_face"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
|
||||
/**
|
||||
* GetFriendList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetFriendListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonArray
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_friend_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,8 @@ import kotlinx.serialization.Serializable
|
|||
import kotlinx.serialization.Transient
|
||||
import top.r3944realms.ltdmanager.napcat.data.FriendInfo
|
||||
|
||||
data class GetFriendsWithCategory(
|
||||
@Serializable
|
||||
data class GetFriendsWithCategoryEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
|
|
@ -19,7 +20,7 @@ data class GetFriendsWithCategory(
|
|||
val data: Datum
|
||||
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
override fun subtype(): String = "/get_friends_with_category"
|
||||
override fun subtype(): String = "get_friends_with_category"
|
||||
@Serializable
|
||||
data class Datum (
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetLoginInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetLoginInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
@SerialName("user_id")
|
||||
val userId: Double,
|
||||
val nickname: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_login_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* GetMiniAppArk事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetMiniAppArkEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
/**
|
||||
* rawArkData = true
|
||||
*
|
||||
* rawArkData = false
|
||||
*/
|
||||
@Serializable
|
||||
data class Data (
|
||||
val appName: String? = null,
|
||||
val appView: String? = null,
|
||||
val config: Config,
|
||||
val desc: String? = null,
|
||||
val metaData: MetaData? = null,
|
||||
val prompt: String,
|
||||
val ver: String,
|
||||
val app: String? = null,
|
||||
val meta: Meta? = null,
|
||||
val miniappOpenRefer: String? = null,
|
||||
val miniappShareOrigin: Double? = null,
|
||||
val view: String? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Config (
|
||||
val autoSize: Double,
|
||||
val ctime: Double,
|
||||
val forward: Double,
|
||||
val height: Double,
|
||||
val token: String,
|
||||
val type: String,
|
||||
val width: Double
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Meta (
|
||||
@SerialName("detail_1")
|
||||
val detail1: MetaDetail1
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class MetaDetail1 (
|
||||
val appid: String,
|
||||
val appType: Double,
|
||||
val desc: String,
|
||||
val gamePoints: String,
|
||||
|
||||
@SerialName("gamePointsUrl")
|
||||
val gamePointsURL: String,
|
||||
|
||||
val host: PurpleHost,
|
||||
val icon: String,
|
||||
val preview: String,
|
||||
val scene: Double,
|
||||
val shareOrigin: Double,
|
||||
val shareTemplateData: JsonObject,
|
||||
|
||||
@SerialName("shareTemplateId")
|
||||
val shareTemplateID: String,
|
||||
|
||||
val showLittleTail: String,
|
||||
val title: String,
|
||||
val url: String
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class PurpleHost (
|
||||
val nick: String,
|
||||
val uin: Double
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class MetaData (
|
||||
@SerialName("detail_1")
|
||||
val detail1: MetaDataDetail1
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class MetaDataDetail1 (
|
||||
val appid: String,
|
||||
val appType: Double,
|
||||
val desc: String,
|
||||
val gamePoints: String,
|
||||
|
||||
@SerialName("gamePointsUrl")
|
||||
val gamePointsURL: String,
|
||||
|
||||
val host: FluffyHost,
|
||||
val icon: String,
|
||||
val preview: String,
|
||||
val scene: Double,
|
||||
val shareOrigin: Double,
|
||||
val shareTemplateData: JsonObject,
|
||||
|
||||
@SerialName("shareTemplateId")
|
||||
val shareTemplateID: String,
|
||||
|
||||
val showLittleTail: String,
|
||||
val title: String,
|
||||
val url: String
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class FluffyHost (
|
||||
val nick: String,
|
||||
val uin: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_mini_app_ark"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* GetModelShow事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetModelShowEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "_get_model_show"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetProfileLike事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetProfileLikeEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
/**
|
||||
* 互赞信息
|
||||
*/
|
||||
val favoriteInfo: FavoriteInfo,
|
||||
|
||||
val time: Double,
|
||||
val uid: String,
|
||||
|
||||
/**
|
||||
* 点赞信息
|
||||
*/
|
||||
val voteInfo: VoteInfo
|
||||
)
|
||||
|
||||
/**
|
||||
* 互赞信息
|
||||
*/
|
||||
@Serializable
|
||||
data class FavoriteInfo (
|
||||
/**
|
||||
* 最后点赞时间(不是时间戳)
|
||||
*/
|
||||
@SerialName("last_time")
|
||||
val lastTime: Double,
|
||||
|
||||
/**
|
||||
* 上次次数
|
||||
*/
|
||||
@SerialName("today_count")
|
||||
val todayCount: Double,
|
||||
|
||||
/**
|
||||
* 总次数
|
||||
*/
|
||||
@SerialName("total_count")
|
||||
val totalCount: Double,
|
||||
|
||||
val userInfos: List<LikeInfo>
|
||||
)
|
||||
|
||||
/**
|
||||
* 点赞信息
|
||||
*/
|
||||
@Serializable
|
||||
data class LikeInfo (
|
||||
val age: Double,
|
||||
val bAvailableCnt: Double,
|
||||
val bTodayVotedCnt: Double,
|
||||
val count: Double,
|
||||
|
||||
@SerialName("customId")
|
||||
val customID: Double,
|
||||
|
||||
val gender: Double,
|
||||
val giftCount: Double,
|
||||
val isFriend: Boolean,
|
||||
val isSvip: Boolean,
|
||||
val isvip: Boolean,
|
||||
val lastCharged: Double,
|
||||
val latestTime: Double,
|
||||
val nick: String,
|
||||
val src: Double,
|
||||
val uid: String,
|
||||
val uin: Double
|
||||
)
|
||||
|
||||
/**
|
||||
* 点赞信息
|
||||
*/
|
||||
@Serializable
|
||||
data class VoteInfo (
|
||||
@SerialName("last_visit_time")
|
||||
val lastVisitTime: Double,
|
||||
|
||||
/**
|
||||
* 点赞次数
|
||||
*/
|
||||
@SerialName("new_count")
|
||||
val newCount: Double,
|
||||
|
||||
@SerialName("new_nearby_count")
|
||||
val newNearbyCount: Double,
|
||||
|
||||
/**
|
||||
* 总次数
|
||||
*/
|
||||
@SerialName("total_count")
|
||||
val totalCount: Double,
|
||||
|
||||
val userInfos: List<LikeInfo>
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_profile_like"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,212 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import top.r3944realms.ltdmanager.napcat.data.MessageType
|
||||
import top.r3944realms.ltdmanager.napcat.data.Qq
|
||||
import top.r3944realms.ltdmanager.napcat.data.Sender
|
||||
|
||||
/**
|
||||
* GetRecentContact事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetRecentContactEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: List<Datum>
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
@Serializable
|
||||
data class Datum (
|
||||
val chatType: Double,
|
||||
|
||||
/**
|
||||
* 最新消息内容
|
||||
*/
|
||||
val lastestMsg: LastestMsg? = null,
|
||||
|
||||
@SerialName("msgId")
|
||||
val msgID: String,
|
||||
|
||||
/**
|
||||
* 消息时间
|
||||
*/
|
||||
val msgTime: String,
|
||||
|
||||
/**
|
||||
* 对方昵称
|
||||
*/
|
||||
val peerName: String,
|
||||
|
||||
/**
|
||||
* 对方账号
|
||||
*/
|
||||
val peerUin: String,
|
||||
|
||||
val remark: String,
|
||||
val sendMemberName: String,
|
||||
|
||||
/**
|
||||
* 发送人昵称
|
||||
*/
|
||||
val sendNickName: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 最新消息内容
|
||||
*/
|
||||
@Serializable
|
||||
data class LastestMsg (
|
||||
val font: Double,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double? = null,
|
||||
|
||||
val message: List<TextMsg>,
|
||||
|
||||
@SerialName("message_format")
|
||||
val messageFormat: String,
|
||||
|
||||
@SerialName("message_type")
|
||||
val messageType: String,
|
||||
|
||||
@SerialName("post_type")
|
||||
val postType: String,
|
||||
|
||||
@SerialName("raw_message")
|
||||
val rawMessage: String,
|
||||
|
||||
@SerialName("real_seq")
|
||||
val realSeq: String,
|
||||
|
||||
@SerialName("self_id")
|
||||
val selfID: Double,
|
||||
|
||||
val sender: Sender,
|
||||
|
||||
@SerialName("sub_type")
|
||||
val subType: String,
|
||||
|
||||
val time: Double,
|
||||
|
||||
@SerialName("user_id")
|
||||
val userID: Double
|
||||
)
|
||||
|
||||
/**
|
||||
* 消息详情
|
||||
*/
|
||||
@Serializable
|
||||
data class SpecificMsg (
|
||||
val font: Double,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double? = null,
|
||||
|
||||
val message: List<TextMsg>,
|
||||
|
||||
@SerialName("message_format")
|
||||
val messageFormat: String,
|
||||
|
||||
@SerialName("message_id")
|
||||
val messageID: Double,
|
||||
|
||||
@SerialName("message_seq")
|
||||
val messageSeq: Double,
|
||||
|
||||
@SerialName("message_type")
|
||||
val messageType: String,
|
||||
|
||||
@SerialName("post_type")
|
||||
val postType: String,
|
||||
|
||||
@SerialName("raw_message")
|
||||
val rawMessage: String,
|
||||
|
||||
@SerialName("real_id")
|
||||
val realID: Double,
|
||||
|
||||
@SerialName("real_seq")
|
||||
val realSeq: String,
|
||||
|
||||
@SerialName("self_id")
|
||||
val selfID: Double,
|
||||
|
||||
val sender: Sender,
|
||||
|
||||
@SerialName("sub_type")
|
||||
val subType: String,
|
||||
|
||||
val time: Double,
|
||||
|
||||
@SerialName("user_id")
|
||||
val userID: Double
|
||||
)
|
||||
|
||||
@Serializable
|
||||
sealed class Content {
|
||||
class StringValue(val value: String) : Content()
|
||||
class SpecificMsgList(val value: List<SpecificMsg>) : Content()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class Data (
|
||||
val text: String? = null,
|
||||
val name: String? = null,
|
||||
val qq: Qq? = null,
|
||||
val id: Qq? = null,
|
||||
val file: String? = null,
|
||||
|
||||
/**
|
||||
* 外显
|
||||
*/
|
||||
val summary: String? = null,
|
||||
|
||||
val data: String? = null,
|
||||
val content: Content? = null
|
||||
)
|
||||
|
||||
/**
|
||||
* 文本消息
|
||||
*
|
||||
* 艾特消息
|
||||
*
|
||||
* 表情消息
|
||||
*
|
||||
* 图片消息
|
||||
*
|
||||
* 文件消息
|
||||
*
|
||||
* 回复消息
|
||||
*
|
||||
* JSON消息
|
||||
*
|
||||
* 语音消息
|
||||
*
|
||||
* 视频消息
|
||||
*
|
||||
* markdown消息
|
||||
*
|
||||
* 消息forward
|
||||
*/
|
||||
@Serializable
|
||||
data class TextMsg (
|
||||
val data: Data,
|
||||
val type: MessageType
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_recent_contact"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* GetStatus事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetStatusEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val good: Boolean,
|
||||
val online: Boolean,
|
||||
val stat: JsonObject
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_status"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetStrangerInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetStrangerInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
/**
|
||||
* 年龄
|
||||
*/
|
||||
val age: Double,
|
||||
|
||||
/**
|
||||
* 是否会员
|
||||
*/
|
||||
@SerialName("is_vip")
|
||||
val isVip: Boolean,
|
||||
|
||||
/**
|
||||
* 是否年费会员
|
||||
*/
|
||||
@SerialName("is_years_vip")
|
||||
val isYearsVip: Boolean,
|
||||
|
||||
/**
|
||||
* 连续登录天数
|
||||
*/
|
||||
@SerialName("login_days")
|
||||
val loginDays: Double,
|
||||
|
||||
/**
|
||||
* 个性签名
|
||||
*/
|
||||
@SerialName("long_nick")
|
||||
val longNick: String,
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
val nickname: String,
|
||||
|
||||
val qid: String,
|
||||
|
||||
/**
|
||||
* 账号等级
|
||||
*/
|
||||
val qqLevel: Double,
|
||||
|
||||
/**
|
||||
* 注册时间
|
||||
*/
|
||||
@SerialName("reg_time")
|
||||
val regTime: Double,
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
val remark: String,
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
val sex: String,
|
||||
|
||||
val status: Double,
|
||||
val uid: String,
|
||||
val uin: String,
|
||||
|
||||
@SerialName("user_id")
|
||||
val userID: Double,
|
||||
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
@SerialName("vip_level")
|
||||
val vipLevel: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_stranger_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import top.r3944realms.ltdmanager.napcat.Developing
|
||||
|
||||
/**
|
||||
* GetUnidirectionalFriendList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Developing
|
||||
@Serializable
|
||||
data class GetUnidirectionalFriendListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: List<Datum>
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Datum (
|
||||
val age: Double,
|
||||
|
||||
@SerialName("nick_name")
|
||||
val nickName: String,
|
||||
|
||||
val source: String,
|
||||
val uid: String,
|
||||
val uin: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_unidirectional_friend_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* MarkAllAsRead事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class MarkAllAsReadEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "_mark_all_as_read"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* MarkGroupMsgAsRead事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class MarkGroupMsgAsReadEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "mark_group_msg_as_read"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* MarkPrivateMsgAsRead事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class MarkPrivateMsgAsReadEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "mark_private_msg_as_read"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* NcGetUserStatus事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class NcGetUserStatusEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val status:Double,
|
||||
@SerialName("ext_status")
|
||||
val extStatus:Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "nc_get_user_status"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SendLike事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SendLikeEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "send_like"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* SetDiyOnlineStatus事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetDiyOnlineStatusEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: String
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_diy_online_status"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SetFriendAddRequest事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetFriendAddRequestEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_friend_add_request"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SetFriendRemark事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetFriendRemarkEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_friend_remark"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import top.r3944realms.ltdmanager.napcat.Developing
|
||||
|
||||
/**
|
||||
* SetModelShow事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Developing
|
||||
@Serializable
|
||||
data class SetModelShowEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "_set_model_show"
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,6 @@ data class SetOnlineStatusEvent(
|
|||
|
||||
val data: JsonElement? = null,
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
override fun subtype(): String = "/set_online_status"
|
||||
override fun subtype(): String = "set_online_status"
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SetQqAvatar事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetQqAvatarEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_qq_avatar"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.account
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* SetSelfLongnick事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetSelfLongnickEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractAccountEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val result: Double,
|
||||
val errMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "set_self_longnick"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import kotlinx.serialization.modules.polymorphic
|
||||
import kotlinx.serialization.modules.subclass
|
||||
import top.r3944realms.ltdmanager.napcat.events.NapCatEvent
|
||||
|
||||
/**
|
||||
|
|
@ -38,11 +40,115 @@ abstract class AbstractFileEvent(
|
|||
*/
|
||||
open val echo: String? = null
|
||||
) : NapCatEvent() {
|
||||
@Serializable
|
||||
data class OkData(
|
||||
val ok:Boolean
|
||||
)
|
||||
@Serializable
|
||||
data class UrlData(
|
||||
val url: String
|
||||
)
|
||||
/**
|
||||
* 群文件信息
|
||||
*/
|
||||
@Serializable
|
||||
data class GroupFileInformation (
|
||||
val busid: Double,
|
||||
|
||||
@SerialName("dead_time")
|
||||
val deadTime: Double,
|
||||
|
||||
@SerialName("download_times")
|
||||
val downloadTimes: Double,
|
||||
|
||||
@SerialName("file_id")
|
||||
val fileID: String,
|
||||
|
||||
@SerialName("file_name")
|
||||
val fileName: String,
|
||||
|
||||
@SerialName("file_size")
|
||||
val fileSize: Double,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double,
|
||||
|
||||
@SerialName("modify_time")
|
||||
val modifyTime: Double,
|
||||
|
||||
val size: Double,
|
||||
|
||||
@SerialName("upload_time")
|
||||
val uploadTime: Double,
|
||||
|
||||
val uploader: Double,
|
||||
|
||||
@SerialName("uploader_name")
|
||||
val uploaderName: String
|
||||
)
|
||||
|
||||
/**
|
||||
* 群文件夹信息
|
||||
*/
|
||||
@Serializable
|
||||
data class GroupFolderInformation (
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@SerialName("create_time")
|
||||
val createTime: Double,
|
||||
|
||||
/**
|
||||
* 创建人账号
|
||||
*/
|
||||
val creator: Double,
|
||||
|
||||
/**
|
||||
* 创建人昵称
|
||||
*/
|
||||
@SerialName("creator_name")
|
||||
val creatorName: String,
|
||||
|
||||
val folder: String,
|
||||
|
||||
@SerialName("folder_id")
|
||||
val folderID: String,
|
||||
|
||||
/**
|
||||
* 文件夹名称
|
||||
*/
|
||||
@SerialName("folder_name")
|
||||
val folderName: String,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double,
|
||||
|
||||
/**
|
||||
* 文件数量
|
||||
*/
|
||||
@SerialName("total_file_count")
|
||||
val totalFileCount: Double
|
||||
)
|
||||
override fun type(): String = "file/" + subtype()
|
||||
companion object {
|
||||
val eventTypeMap by lazy {
|
||||
mutableMapOf<String, KSerializer<out NapCatEvent>>().apply {
|
||||
|
||||
put("file/move_group_file", MoveGroupFileEvent.serializer())
|
||||
put("file/trans_group_file", TransGroupFileEvent.serializer())
|
||||
put("file/rename_group_file", RenameGroupFileEvent.serializer())
|
||||
put("file/upload_group_file",UploadGroupFileEvent.serializer())
|
||||
put("file/create_group_file_folder",CreateGroupFileFolderEvent.serializer())
|
||||
put("file/delete_group_file", DeleteGroupFileEvent.serializer())
|
||||
put("file/delete_group_folder", DeleteGroupFolderEvent.serializer())
|
||||
put("file/get_group_file_system_info", GetGroupFileSystemInfoEvent.serializer())
|
||||
put("file/get_group_root_files", GetGroupRootFilesEvent.serializer())
|
||||
put("file/get_group_files_by_folder", GetGroupFilesByFolderEvent.serializer())
|
||||
put("file/get_group_file_url",GetGroupFileUrlEvent.serializer())
|
||||
put("file/upload_private_file", UploadGroupFileEvent.serializer())
|
||||
put("file/get_private_file_url", GetPrivateFileUrlEvent.serializer())
|
||||
put("file/get_file", GetFileEvent.serializer())
|
||||
put("file/download_file", DownloadFileEvent.serializer())
|
||||
put("file/clean_cache", CleanCacheEvent.serializer())
|
||||
}
|
||||
}
|
||||
internal val json: Json by lazy {
|
||||
|
|
@ -50,7 +156,22 @@ abstract class AbstractFileEvent(
|
|||
ignoreUnknownKeys = true
|
||||
serializersModule = SerializersModule {
|
||||
polymorphic(NapCatEvent::class) {
|
||||
|
||||
subclass(MoveGroupFileEvent::class)
|
||||
subclass(TransGroupFileEvent::class)
|
||||
subclass(RenameGroupFileEvent::class)
|
||||
subclass(UploadGroupFileEvent::class)
|
||||
subclass(CreateGroupFileFolderEvent::class)
|
||||
subclass(DeleteGroupFileEvent::class)
|
||||
subclass(DeleteGroupFolderEvent::class)
|
||||
subclass(GetGroupFileSystemInfoEvent::class)
|
||||
subclass(GetGroupRootFilesEvent::class)
|
||||
subclass(GetGroupFilesByFolderEvent::class)
|
||||
subclass(GetGroupFileUrlEvent::class)
|
||||
subclass(UploadGroupFileEvent::class)
|
||||
subclass(GetPrivateFileUrlEvent::class)
|
||||
subclass(GetFileEvent::class)
|
||||
subclass(DownloadFileEvent::class)
|
||||
subclass(CleanCacheEvent::class)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import top.r3944realms.ltdmanager.napcat.Developing
|
||||
|
||||
/**
|
||||
* CleanCache事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Developing
|
||||
@Serializable
|
||||
data class CleanCacheEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "clean_cache"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* CreateGroupFileFolder事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class CreateGroupFileFolderEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val groupItem: GroupItem,
|
||||
val result: Result
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupItem (
|
||||
val fileInfo: String? = null,
|
||||
|
||||
/**
|
||||
* 文件夹信息
|
||||
*/
|
||||
val folderInfo: FolderInfo,
|
||||
|
||||
@SerialName("peerId")
|
||||
val peerID: String,
|
||||
|
||||
val type: Double
|
||||
)
|
||||
|
||||
/**
|
||||
* 文件夹信息
|
||||
*/
|
||||
@Serializable
|
||||
data class FolderInfo (
|
||||
val createTime: Double,
|
||||
val createUin: String,
|
||||
val creatorName: String,
|
||||
|
||||
@SerialName("folderId")
|
||||
val folderID: String,
|
||||
|
||||
val folderName: String,
|
||||
val modifyName: String,
|
||||
val modifyTime: Double,
|
||||
val modifyUin: String,
|
||||
|
||||
@SerialName("parentFolderId")
|
||||
val parentFolderID: String,
|
||||
|
||||
val totalFileCount: Double,
|
||||
val usedSpace: String
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Result (
|
||||
val clientWording: String,
|
||||
val retCode: Double,
|
||||
val retMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "create_group_file_folder"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* DeleteGroupFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DeleteGroupFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val errMsg: String,
|
||||
val result: Double,
|
||||
val transGroupFileResult: TransGroupFileResult
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class TransGroupFileResult (
|
||||
@SerialName("failFileIdList")
|
||||
val failFileIDList: List<String>,
|
||||
|
||||
val result: Result,
|
||||
|
||||
@SerialName("successFileIdList")
|
||||
val successFileIDList: List<String>
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Result (
|
||||
val clientWording: String,
|
||||
val retCode: Double,
|
||||
val retMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "delete_group_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* DeleteGroupFolder事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DeleteGroupFolderEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val clientWording: String,
|
||||
val retCode: Double,
|
||||
val retMsg: String
|
||||
)
|
||||
|
||||
override fun subtype(): String {
|
||||
return "delete_group_folder"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* DownloadFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DownloadFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val file: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "download_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val base64: String,
|
||||
|
||||
/**
|
||||
* 路径或链接
|
||||
*/
|
||||
val file: String,
|
||||
|
||||
/**
|
||||
* 文件名
|
||||
*/
|
||||
@SerialName("file_name")
|
||||
val fileName: String,
|
||||
|
||||
/**
|
||||
* 文件大小
|
||||
*/
|
||||
@SerialName("file_size")
|
||||
val fileSize: String,
|
||||
|
||||
/**
|
||||
* 路径或链接
|
||||
*/
|
||||
val url: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupFileSystemInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupFileSystemInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
/**
|
||||
* 文件总数
|
||||
*/
|
||||
@SerialName("file_count")
|
||||
val fileCount: Double,
|
||||
|
||||
/**
|
||||
* 文件上限
|
||||
*/
|
||||
@SerialName("limit_count")
|
||||
val limitCount: Double,
|
||||
|
||||
/**
|
||||
* 空间上限
|
||||
*/
|
||||
@SerialName("total_space")
|
||||
val totalSpace: Double,
|
||||
|
||||
/**
|
||||
* 已使用空间
|
||||
*/
|
||||
@SerialName("used_space")
|
||||
val usedSpace: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_file_system_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupFileUrl事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupFileUrlEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: UrlData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_file_url"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import top.r3944realms.ltdmanager.napcat.events.file.GetGroupRootFilesEvent.FileData
|
||||
|
||||
/**
|
||||
* GetGroupFilesByFolder事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupFilesByFolderEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: FileData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_files_by_folder"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupRootFiles事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupRootFilesEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: FileData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class FileData (
|
||||
/**
|
||||
* 文件列表
|
||||
*/
|
||||
val files: List<GroupFileInformation>,
|
||||
|
||||
/**
|
||||
* 文件夹列表
|
||||
*/
|
||||
val folders: List<GroupFolderInformation>
|
||||
)
|
||||
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_root_files"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetPrivateFileUrl事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetPrivateFileUrlEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: UrlData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_private_file_url"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* MoveGroupFile事件
|
||||
* @property okData 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class MoveGroupFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: OkData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "move_group_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* RenameGroupFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class RenameGroupFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: OkData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "rename_group_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* TransGroupFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class TransGroupFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: OkData
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "trans_group_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* UploadGroupFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class UploadGroupFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "upload_group_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.file
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* UploadPrivateFile事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class UploadPrivateFileEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null,
|
||||
) : AbstractFileEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "upload_private_file"
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable
|
|||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import kotlinx.serialization.modules.polymorphic
|
||||
import kotlinx.serialization.modules.subclass
|
||||
import top.r3944realms.ltdmanager.napcat.events.NapCatEvent
|
||||
|
||||
/**
|
||||
|
|
@ -43,7 +44,40 @@ open val echo: String? = null
|
|||
companion object {
|
||||
val eventTypeMap by lazy {
|
||||
mutableMapOf<String, KSerializer<out NapCatEvent>>().apply {
|
||||
|
||||
put("group/get_group_info",GetGroupInfoEvent.serializer())
|
||||
put("group/get_group_info_ex",GetGroupInfoExEvent.serializer())
|
||||
put("group/get_group_detail_info",GetGroupDetailInfoEvent.serializer())
|
||||
put("group/get_group_list",GetGroupListEvent.serializer())
|
||||
put("group/get_group_member_info",GetGroupMemberInfoEvent.serializer())
|
||||
put("group/get_group_member_list",GetGroupMemberListEvent.serializer())
|
||||
put("group/get_group_honor_info",GetGroupHonorInfoEvent.serializer())
|
||||
put("group/get_group_at_all_remain",GetGroupAtAllRemainEvent.serializer())
|
||||
put("group/get_group_shut_list",GetGroupShutListEvent.serializer())
|
||||
put("group/get_group_ignored_notifies",GetGroupIgnoredNotifiesEvent.serializer())
|
||||
put("group/get_group_system_msg",GetGroupSystemMsgEvent.serializer())
|
||||
put("group/get_essence_msg_list",GetEssenceMsgListEvent.serializer())
|
||||
put("group/set_group_name",SetGroupNameEvent.serializer())
|
||||
put("group/set_group_portrait",SetGroupPortraitEvent.serializer())
|
||||
put("group/set_group_search",SetGroupSearchEvent.serializer())
|
||||
put("group/set_group_add_option",SetGroupAddOptionEvent.serializer())
|
||||
put("group/set_group_robot_add_option",SetGroupRobotAddOptionEvent.serializer())
|
||||
put("group/set_group_remark",SetGroupRemarkEvent.serializer())
|
||||
put("group/set_group_card",SetGroupCardEvent.serializer())
|
||||
put("group/set_group_special_title",SetGroupSpecialTitleEvent.serializer())
|
||||
put("group/set_group_admin",SetGroupAdminEvent.serializer())
|
||||
put("group/set_group_leave",SetGroupLeaveEvent.serializer())
|
||||
put("group/set_essence_msg",SetEssenceMsgEvent.serializer())
|
||||
put("group/delete_essence_msg", DeleteEssenceMsgEvent.serializer())
|
||||
put("group/_send_group_notice",SendGroupNoticeEvent.serializer())
|
||||
put("group/_get_group_notice",GetGroupNoticeEvent.serializer())
|
||||
put("group/_del_group_notice",DelGroupNoticeEvent.serializer())
|
||||
put("group/set_group_kick",SetGroupKickEvent.serializer())
|
||||
put("group/set_group_kick_members",SetGroupKickMembersEvent.serializer())
|
||||
put("group/set_group_ban",SetGroupBanEvent.serializer())
|
||||
put("group/set_group_whole_ban",SetGroupWholeBanEvent.serializer())
|
||||
put("group/set_group_sign",SetGroupSignEvent.serializer())
|
||||
put("group/send_group_sign",SendGroupSignEvent.serializer())
|
||||
put("group/set_group_add_request",SetGroupAddRequestEvent.serializer())
|
||||
}
|
||||
}
|
||||
internal val json: Json by lazy {
|
||||
|
|
@ -51,7 +85,40 @@ open val echo: String? = null
|
|||
ignoreUnknownKeys = true
|
||||
serializersModule = SerializersModule {
|
||||
polymorphic(NapCatEvent::class) {
|
||||
|
||||
subclass(GetGroupInfoEvent::class)
|
||||
subclass(GetGroupInfoExEvent::class)
|
||||
subclass(GetGroupDetailInfoEvent::class)
|
||||
subclass(GetGroupListEvent::class)
|
||||
subclass(GetGroupMemberInfoEvent::class)
|
||||
subclass(GetGroupMemberListEvent::class)
|
||||
subclass(GetGroupHonorInfoEvent::class)
|
||||
subclass(GetGroupAtAllRemainEvent::class)
|
||||
subclass(GetGroupShutListEvent::class)
|
||||
subclass(GetGroupIgnoredNotifiesEvent::class)
|
||||
subclass(GetGroupSystemMsgEvent::class)
|
||||
subclass(GetEssenceMsgListEvent::class)
|
||||
subclass(SetGroupNameEvent::class)
|
||||
subclass(SetGroupPortraitEvent::class)
|
||||
subclass(SetGroupSearchEvent::class)
|
||||
subclass(SetGroupAddOptionEvent::class)
|
||||
subclass(SetGroupRobotAddOptionEvent::class)
|
||||
subclass(SetGroupRemarkEvent::class)
|
||||
subclass(SetGroupCardEvent::class)
|
||||
subclass(SetGroupSpecialTitleEvent::class)
|
||||
subclass(SetGroupAdminEvent::class)
|
||||
subclass(SetGroupLeaveEvent::class)
|
||||
subclass(SetEssenceMsgEvent::class)
|
||||
subclass(DeleteEssenceMsgEvent::class)
|
||||
subclass(SendGroupNoticeEvent::class)
|
||||
subclass(GetGroupNoticeEvent::class)
|
||||
subclass(DelGroupNoticeEvent::class)
|
||||
subclass(SetGroupKickEvent::class)
|
||||
subclass(SetGroupKickMembersEvent::class)
|
||||
subclass(SetGroupBanEvent::class)
|
||||
subclass(SetGroupWholeBanEvent::class)
|
||||
subclass(SetGroupSignEvent::class)
|
||||
subclass(SendGroupSignEvent::class)
|
||||
subclass(SetGroupAddRequestEvent::class)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* DelGroupNotice事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DelGroupNoticeEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data(
|
||||
val result: Double,
|
||||
val errMsg: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "_del_group_notice"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* DeleteEssenceMsg事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class DeleteEssenceMsgEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val errCode: String,
|
||||
val errMsg: String,
|
||||
val result: Result
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Result (
|
||||
val digestTime: String,
|
||||
val digestUin: String,
|
||||
val msg: JsonObject,
|
||||
|
||||
/**
|
||||
* 正常为空,异常有文本提示
|
||||
*/
|
||||
val wording: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "delete_essence_msg"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetEssenceMsgList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetEssenceMsgListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: List<Datum>
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Datum (
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
val content: List<Content>,
|
||||
|
||||
@SerialName("message_id")
|
||||
val messageID: Double,
|
||||
|
||||
@SerialName("msg_random")
|
||||
val msgRandom: Double,
|
||||
|
||||
@SerialName("msg_seq")
|
||||
val msgSeq: Double,
|
||||
|
||||
/**
|
||||
* 设精人账号
|
||||
*/
|
||||
@SerialName("operator_id")
|
||||
val operatorID: Double,
|
||||
|
||||
/**
|
||||
* 设精人昵称
|
||||
*/
|
||||
@SerialName("operator_nick")
|
||||
val operatorNick: String,
|
||||
|
||||
/**
|
||||
* 设精时间
|
||||
*/
|
||||
@SerialName("operator_time")
|
||||
val operatorTime: Double,
|
||||
|
||||
/**
|
||||
* 发送人账号
|
||||
*/
|
||||
@SerialName("sender_id")
|
||||
val senderID: Double,
|
||||
|
||||
/**
|
||||
* 发送人昵称
|
||||
*/
|
||||
@SerialName("sender_nick")
|
||||
val senderNick: String
|
||||
)
|
||||
/**
|
||||
* 文本消息
|
||||
*/
|
||||
@Serializable
|
||||
data class Content (
|
||||
val data: Data,
|
||||
val type: Type
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Data (
|
||||
val text: String? = null,
|
||||
val url: String? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
enum class Type(val value: String) {
|
||||
@SerialName("image") Image("image"),
|
||||
@SerialName("text") Text("text");
|
||||
}
|
||||
override fun subtype(): String {
|
||||
return "get_essence_msg_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupAtAllRemain事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupAtAllRemainEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
@SerialName("can_at_all")
|
||||
val canAtAll: Boolean,
|
||||
|
||||
@SerialName("remain_at_all_count_for_group")
|
||||
val remainAtAllCountForGroup: Double,
|
||||
|
||||
@SerialName("remain_at_all_count_for_uin")
|
||||
val remainAtAllCountForUin: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_at_all_remain"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupDetailInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupDetailInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
@SerialName("group_all_shut")
|
||||
val groupAllShut: Double,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double,
|
||||
|
||||
@SerialName("group_name")
|
||||
val groupName: String,
|
||||
|
||||
@SerialName("group_remark")
|
||||
val groupRemark: String,
|
||||
|
||||
@SerialName("max_member_count")
|
||||
val maxMemberCount: Double,
|
||||
|
||||
@SerialName("member_count")
|
||||
val memberCount: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_detail_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupHonorInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupHonorInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
/**
|
||||
* 当前龙王
|
||||
*/
|
||||
@SerialName("current_talkative")
|
||||
val currentTalkative: GroupHonorInfo,
|
||||
|
||||
/**
|
||||
* 快乐源泉
|
||||
*/
|
||||
@SerialName("emotion_list")
|
||||
val emotionList: List<GroupHonorInfo>,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: String,
|
||||
|
||||
/**
|
||||
* 龙王
|
||||
*/
|
||||
@SerialName("legend_list")
|
||||
val legendList: List<GroupHonorInfo>,
|
||||
|
||||
/**
|
||||
* 群聊炽焰
|
||||
*/
|
||||
@SerialName("performer_list")
|
||||
val performerList: List<GroupHonorInfo>,
|
||||
|
||||
/**
|
||||
* 冒尖小春笋
|
||||
*/
|
||||
@SerialName("strong_newbie_list")
|
||||
val strongNewbieList: List<GroupHonorInfo>,
|
||||
|
||||
/**
|
||||
* 群聊之火
|
||||
*/
|
||||
@SerialName("talkative_list")
|
||||
val talkativeList: List<GroupHonorInfo>
|
||||
)
|
||||
|
||||
/**
|
||||
* 当前龙王
|
||||
*
|
||||
* 群荣誉信息
|
||||
*/
|
||||
@Serializable
|
||||
data class GroupHonorInfo (
|
||||
val avatar: Double? = null,
|
||||
|
||||
/**
|
||||
* 说明
|
||||
*/
|
||||
val description: String? = null,
|
||||
|
||||
val nickname: String? = null,
|
||||
|
||||
@SerialName("user_id")
|
||||
val userID: Double? = null
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_honor_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupIgnoredNotifies事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupIgnoredNotifiesEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: GetGroupSystemMsgEvent.Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_ignored_notifies"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* GetGroupInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonObject
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupInfoEx事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupInfoExEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val extInfo: EXTInfo,
|
||||
val groupCode: String,
|
||||
val resultCode: Double
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class EXTInfo (
|
||||
@SerialName("bindGuildId")
|
||||
val bindGuildID: String,
|
||||
|
||||
val blacklistExpireTime: Double,
|
||||
|
||||
@SerialName("companyId")
|
||||
val companyID: Double,
|
||||
|
||||
val essentialMsgPrivilege: Double,
|
||||
val essentialMsgSwitch: Double,
|
||||
val fullGroupExpansionSeq: String,
|
||||
val fullGroupExpansionSwitch: Double,
|
||||
|
||||
@SerialName("gangUpId")
|
||||
val gangUpID: String,
|
||||
|
||||
@SerialName("groupAioBindGuildId")
|
||||
val groupAioBindGuildID: String,
|
||||
|
||||
@SerialName("groupBindGuildIds")
|
||||
val groupBindGuildIDS: GroupBindGuildIDS,
|
||||
|
||||
val groupBindGuildSwitch: Double,
|
||||
|
||||
@SerialName("groupExcludeGuildIds")
|
||||
val groupExcludeGuildIDS: GroupExcludeGuildIDS,
|
||||
|
||||
@SerialName("groupExtFlameData")
|
||||
val groupEXTFlameData: GroupEXTFlameData,
|
||||
|
||||
val groupFlagPro1: String,
|
||||
|
||||
@SerialName("groupInfoExtSeq")
|
||||
val groupInfoEXTSeq: Double,
|
||||
|
||||
@SerialName("groupOwnerId")
|
||||
val groupOwnerID: GroupOwnerID,
|
||||
|
||||
val groupSquareSwitch: Double,
|
||||
val hasGroupCustomPortrait: Double,
|
||||
val inviteRobotMemberExamine: Double,
|
||||
val inviteRobotMemberSwitch: Double,
|
||||
val inviteRobotSwitch: Double,
|
||||
|
||||
@SerialName("isLimitGroupRtc")
|
||||
val isLimitGroupRTC: Double,
|
||||
|
||||
val lightCharNum: Double,
|
||||
val luckyWord: String,
|
||||
|
||||
@SerialName("luckyWordId")
|
||||
val luckyWordID: String,
|
||||
|
||||
val msgEventSeq: String,
|
||||
val qqMusicMedalSwitch: Double,
|
||||
val reserve: Double,
|
||||
val showPlayTogetherSwitch: Double,
|
||||
|
||||
@SerialName("starId")
|
||||
val starID: Double,
|
||||
|
||||
val todoSeq: Double,
|
||||
val viewedMsgDisappearTime: String
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupBindGuildIDS (
|
||||
@SerialName("guildIds")
|
||||
val guildIDS: List<String>
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupEXTFlameData (
|
||||
val dayNums: List<String>,
|
||||
val isDisplayDayNum: Boolean,
|
||||
val state: Long,
|
||||
val switchState: Long,
|
||||
val updateTime: String,
|
||||
val version: Long
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupExcludeGuildIDS (
|
||||
@SerialName("guildIds")
|
||||
val guildIDS: List<String>
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupOwnerID (
|
||||
val memberQid: String,
|
||||
val memberUid: String,
|
||||
val memberUin: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_info_ex"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
|
||||
/**
|
||||
* GetGroupList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonArray
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* GetGroupMemberInfo事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupMemberInfoEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonObject
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_member_info"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
|
||||
/**
|
||||
* GetGroupMemberList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupMemberListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonArray
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "get_group_member_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* GetGroupNotice事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupNoticeEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null,
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "_get_group_notice"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* GetGroupShutList事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupShutListEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: List<Datum>
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Datum (
|
||||
val autoRemark: String,
|
||||
val avatarPath: String,
|
||||
val bigClubFlag: Double,
|
||||
val bigClubLevel: Double,
|
||||
val cardName: String,
|
||||
|
||||
@SerialName("cardNameId")
|
||||
val cardNameID: Double,
|
||||
|
||||
val cardType: Double,
|
||||
val creditLevel: Double,
|
||||
val globalGroupLevel: Double,
|
||||
val globalGroupPoint: Double,
|
||||
val groupHonor: JsonObject,
|
||||
val isDelete: Boolean,
|
||||
val isRobot: Boolean,
|
||||
val isSpecialConcerned: Boolean,
|
||||
val isSpecialShield: Boolean,
|
||||
val isSpecialShielded: Boolean,
|
||||
|
||||
/**
|
||||
* 入群时间
|
||||
*/
|
||||
val joinTime: Double,
|
||||
|
||||
/**
|
||||
* 最后发言时间
|
||||
*/
|
||||
val lastSpeakTime: Double,
|
||||
|
||||
val memberFlag: Double,
|
||||
|
||||
@SerialName("memberFlagExt")
|
||||
val memberFlagEXT: Double,
|
||||
|
||||
val memberFlagExt2: Double,
|
||||
val memberLevel: Double,
|
||||
val memberMobileFlag: Double,
|
||||
|
||||
/**
|
||||
* 群聊等级
|
||||
*/
|
||||
val memberRealLevel: Double,
|
||||
|
||||
val memberSpecialTitle: String,
|
||||
|
||||
@SerialName("memberTitleId")
|
||||
val memberTitleID: Double,
|
||||
|
||||
val mssVipType: Double,
|
||||
val nick: String,
|
||||
val qid: String,
|
||||
val remark: String,
|
||||
val richFlag: Double,
|
||||
val role: Double,
|
||||
|
||||
/**
|
||||
* 解禁时间
|
||||
*/
|
||||
val shutUpTime: Double,
|
||||
|
||||
val specialTitleExpireTime: String,
|
||||
val uid: String,
|
||||
val uin: String,
|
||||
val userShowFlag: Double,
|
||||
val userShowFlagNew: Double
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_shut_list"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
|
||||
/**
|
||||
* GetGroupSystemMsg事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class GetGroupSystemMsgEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
@SerialName("InvitedRequest")
|
||||
val invitedRequest: List<SystemInfo>,
|
||||
|
||||
@SerialName("join_requests")
|
||||
val joinRequests: List<SystemInfo>
|
||||
)
|
||||
|
||||
/**
|
||||
* 系统信息
|
||||
*/
|
||||
@Serializable
|
||||
data class SystemInfo (
|
||||
val actor: Double,
|
||||
val checked: Boolean,
|
||||
|
||||
@SerialName("group_id")
|
||||
val groupID: Double,
|
||||
|
||||
@SerialName("group_name")
|
||||
val groupName: String,
|
||||
|
||||
@SerialName("invitor_nick")
|
||||
val invitorNick: String,
|
||||
|
||||
@SerialName("invitor_uin")
|
||||
val invitorUin: Double,
|
||||
|
||||
val message: String,
|
||||
|
||||
@SerialName("request_id")
|
||||
val requestID: Double,
|
||||
|
||||
@SerialName("requester_nick")
|
||||
val requesterNick: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "get_group_system_msg"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SendGroupNotice事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SendGroupNoticeEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "_send_group_notice"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import top.r3944realms.ltdmanager.napcat.events.NapCatEvent
|
||||
|
||||
/**
|
||||
* SendGroupSign事件
|
||||
*/
|
||||
@Serializable
|
||||
class SendGroupSignEvent: NapCatEvent() {
|
||||
override fun type(): String {
|
||||
return "group/" + subtype()
|
||||
}
|
||||
|
||||
override fun subtype(): String {
|
||||
return "send_group_sign"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
* SetEssenceMsg事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetEssenceMsgEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: Data
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
@Serializable
|
||||
data class Data (
|
||||
val errCode: String,
|
||||
val errMsg: String,
|
||||
val result: Result
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Result (
|
||||
val digestTime: Double,
|
||||
val digestUin: String,
|
||||
val errorCode: Double,
|
||||
val msg: JsonObject,
|
||||
|
||||
/**
|
||||
* 正常为空,异常有文本提示
|
||||
*/
|
||||
val wording: String
|
||||
)
|
||||
override fun subtype(): String {
|
||||
return "set_essence_msg"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SetGroupAddOption事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetGroupAddOptionEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_group_add_option"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package top.r3944realms.ltdmanager.napcat.events.group
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
||||
/**
|
||||
* SetGroupAddRequest事件
|
||||
* @property data 响应数据
|
||||
*/
|
||||
@Serializable
|
||||
data class SetGroupAddRequestEvent(
|
||||
@Transient
|
||||
val status0: Status = Status.Ok,
|
||||
@Transient
|
||||
val retcode0: Double = 0.0,
|
||||
@Transient
|
||||
val message0: String = "",
|
||||
@Transient
|
||||
val wording0: String = "",
|
||||
@Transient
|
||||
val echo0: String? = null,
|
||||
|
||||
val data: JsonElement? = null
|
||||
) : AbstractGroupEvent(status0, retcode0, message0, wording0, echo0) {
|
||||
|
||||
override fun subtype(): String {
|
||||
return "set_group_add_request"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user