新增864 provider并打通server_key配置
- 新增 server_864 独立 provider 目录,接入登录、消息轮询、联系人、群资料、用户资料与朋友圈基础能力 - 扩展 gateway、robot 与配置归一化逻辑,支持 server_864/864 别名和 WECHAT_SERVER_KEY - 更新配置示例与多版本适配路线图,明确 864 第一版接入范围和后续待补项
This commit is contained in:
46
wechat_ipad/providers/server_864/user.py
Normal file
46
wechat_ipad/providers/server_864/user.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from loguru import logger
|
||||
|
||||
from wechat_ipad.providers.server_864.base import Server864APIClientBase
|
||||
|
||||
|
||||
class UserMixin(Server864APIClientBase):
|
||||
"""864 用户资料相关接口。"""
|
||||
|
||||
async def get_profile(self, wxid: str = None) -> dict:
|
||||
"""获取当前登录账号的资料。"""
|
||||
del wxid
|
||||
data = await self._request_data("get", "/user/GetProfile", timeout=20)
|
||||
return dict(data or {})
|
||||
|
||||
async def get_profile_info_ext(self, wxid: str = None) -> dict:
|
||||
"""获取扩展资料。
|
||||
|
||||
说明:
|
||||
1. 864 当前公开接口只直接暴露“当前账号资料”;
|
||||
2. 为了兼容项目现有调用面,这里先从主资料中补常见字段;
|
||||
3. 若后续发现 864 某个版本提供了专门扩展接口,再局部替换即可。
|
||||
"""
|
||||
del wxid
|
||||
profile = await self.get_profile()
|
||||
return dict(profile.get("userInfoExt", {}) or profile.get("UserInfoExt", {}) or profile)
|
||||
|
||||
async def get_my_qrcode(self, style: int = 8) -> str:
|
||||
"""获取当前登录账号个人二维码。"""
|
||||
data = await self._request_data(
|
||||
"post",
|
||||
"/user/GetMyQrCode",
|
||||
json_body={"Style": int(style), "Recover": False},
|
||||
timeout=20,
|
||||
)
|
||||
qrcode_info = self._pick_first(data, "qrcode", "Qrcode", "QrCode") or {}
|
||||
return str(self._pick_first(qrcode_info, "buffer", "Buffer", "src", "Src") or "")
|
||||
|
||||
async def is_logged_in(self, wxid: str = None) -> bool:
|
||||
"""检查 864 当前账号是否在线。"""
|
||||
del wxid
|
||||
try:
|
||||
await self.get_profile()
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error("server_864 is_logged_in:{}", e)
|
||||
return False
|
||||
Reference in New Issue
Block a user