Files
mai-bot/plugin-templates/MaiBot-Napcat-Adapter/apis/account.py

367 lines
16 KiB
Python

"""NapCat 账号与用户侧 API 端点。"""
from __future__ import annotations
from typing import Any, Dict, List, Optional
from maibot_sdk import API
from .support import NapCatApiIdInput, NapCatApiParamsInput, NapCatApiSupportMixin
class NapCatAccountApiMixin(NapCatApiSupportMixin):
"""NapCat 账号、好友与资料相关 API。"""
@API("adapter.napcat.account.set_qq_profile", description="设置 QQ 账号资料", version="1", public=True)
async def api_set_qq_profile(
self,
nickname: object,
personal_note: str = "",
sex: str = "",
) -> Dict[str, Any]:
"""设置 QQ 账号资料。
Args:
nickname: 新昵称。
personal_note: 个性签名。
sex: 性别,支持 ``male``、``female``、``unknown``。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
normalized_sex = str(sex or "").strip().lower()
if normalized_sex and normalized_sex not in {"male", "female", "unknown"}:
raise ValueError("sex 必须为 male、female 或 unknown")
return await self._require_query_service().set_qq_profile(
nickname=self._normalize_non_empty_string(nickname, "nickname"),
personal_note=str(personal_note or "").strip(),
sex=normalized_sex,
)
@API("adapter.napcat.account.get_stranger_info", description="获取陌生人信息", version="1", public=True)
async def api_get_stranger_info(
self,
user_id: NapCatApiIdInput,
no_cache: bool = False,
) -> Optional[Dict[str, Any]]:
"""获取陌生人信息。
Args:
user_id: 用户号。
no_cache: 是否禁用缓存。
Returns:
Optional[Dict[str, Any]]: 陌生人信息字典;失败时返回 ``None``。
"""
return await self._require_query_service().get_stranger_info(
str(self._normalize_positive_int(user_id, "user_id")),
no_cache=bool(no_cache),
)
@API("adapter.napcat.account.get_friend_list", description="获取好友列表", version="1", public=True)
async def api_get_friend_list(self, no_cache: bool = False) -> Optional[List[Dict[str, Any]]]:
"""获取好友列表。
Args:
no_cache: 是否禁用缓存。
Returns:
Optional[List[Dict[str, Any]]]: 好友信息列表;失败时返回 ``None``。
"""
return await self._require_query_service().get_friend_list(no_cache=bool(no_cache))
@API("adapter.napcat.account.create_collection", description="创建收藏", version="1", public=True)
async def api_action_create_collection(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``create_collection`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("create_collection", params)
@API("adapter.napcat.account.delete_friend", description="删除好友", version="1", public=True)
async def api_action_delete_friend(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``delete_friend`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("delete_friend", params)
@API("adapter.napcat.account.fetch_custom_face", description="获取自定义表情", version="1", public=True)
async def api_action_fetch_custom_face(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``fetch_custom_face`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("fetch_custom_face", params)
@API("adapter.napcat.account.get_ai_characters", description="获取AI角色列表", version="1", public=True)
async def api_action_get_ai_characters(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_ai_characters`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_ai_characters", params)
@API("adapter.napcat.account.get_clientkey", description="获取ClientKey", version="1", public=True)
async def api_action_get_clientkey(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_clientkey`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_clientkey", params)
@API("adapter.napcat.account.get_collection_list", description="获取收藏列表", version="1", public=True)
async def api_action_get_collection_list(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_collection_list`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_collection_list", params)
@API("adapter.napcat.account.get_cookies", description="获取 Cookies", version="1", public=True)
async def api_action_get_cookies(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_cookies`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_cookies", params)
@API(
"adapter.napcat.account.get_friends_with_category", description="获取带分组的好友列表", version="1", public=True
)
async def api_action_get_friends_with_category(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_friends_with_category`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_friends_with_category", params)
@API("adapter.napcat.account.get_mini_app_ark", description="获取小程序 Ark", version="1", public=True)
async def api_action_get_mini_app_ark(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_mini_app_ark`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_mini_app_ark", params)
@API("adapter.napcat.account.get_profile_like", description="获取资料点赞", version="1", public=True)
async def api_action_get_profile_like(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_profile_like`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_profile_like", params)
@API("adapter.napcat.account.get_recent_contact", description="获取最近会话", version="1", public=True)
async def api_action_get_recent_contact(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_recent_contact`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_recent_contact", params)
@API("adapter.napcat.account.get_rkey", description="获取扩展 RKey", version="1", public=True)
async def api_action_get_rkey(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_rkey`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_rkey", params)
@API("adapter.napcat.account.get_rkey_server", description="获取 RKey 服务器", version="1", public=True)
async def api_action_get_rkey_server(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_rkey_server`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_rkey_server", params)
@API(
"adapter.napcat.account.get_unidirectional_friend_list",
description="获取单向好友列表",
version="1",
public=True,
)
async def api_action_get_unidirectional_friend_list(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``get_unidirectional_friend_list`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("get_unidirectional_friend_list", params)
@API("adapter.napcat.account.internal_ocr_image", description="图片 OCR 识别 (内部)", version="1", public=True)
async def api_action_internal_ocr_image(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``.ocr_image`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action(".ocr_image", params)
@API("adapter.napcat.account.nc_get_rkey", description="获取 RKey", version="1", public=True)
async def api_action_nc_get_rkey(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``nc_get_rkey`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("nc_get_rkey", params)
@API("adapter.napcat.account.ocr_image", description="图片 OCR 识别", version="1", public=True)
async def api_action_ocr_image(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``ocr_image`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("ocr_image", params)
@API("adapter.napcat.account.send_like", description="点赞", version="1", public=True)
async def api_action_send_like(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``send_like`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("send_like", params)
@API("adapter.napcat.account.set_diy_online_status", description="设置自定义在线状态", version="1", public=True)
async def api_action_set_diy_online_status(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``set_diy_online_status`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("set_diy_online_status", params)
@API("adapter.napcat.account.set_friend_add_request", description="处理加好友请求", version="1", public=True)
async def api_action_set_friend_add_request(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``set_friend_add_request`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("set_friend_add_request", params)
@API("adapter.napcat.account.set_friend_remark", description="设置好友备注", version="1", public=True)
async def api_action_set_friend_remark(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``set_friend_remark`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("set_friend_remark", params)
@API("adapter.napcat.account.set_qq_avatar", description="设置QQ头像", version="1", public=True)
async def api_action_set_qq_avatar(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``set_qq_avatar`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("set_qq_avatar", params)
@API("adapter.napcat.account.set_self_longnick", description="设置个性签名", version="1", public=True)
async def api_action_set_self_longnick(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``set_self_longnick`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("set_self_longnick", params)
@API("adapter.napcat.account.translate_en2zh", description="英文单词翻译", version="1", public=True)
async def api_action_translate_en2zh(self, params: NapCatApiParamsInput = None) -> Dict[str, Any]:
"""调用 NapCat 的 ``translate_en2zh`` 动作。
Args:
params: 传递给 NapCat 的动作参数字典;具体字段请参考 NapCat 官方文档。
Returns:
Dict[str, Any]: NapCat 返回的原始响应字典。
"""
return await self._call_napcat_action("translate_en2zh", params)