From 322d62c8b841a248c41a21b6b7d6d65bd2b0c71a Mon Sep 17 00:00:00 2001 From: Changhua Date: Tue, 21 Nov 2023 23:05:39 +0800 Subject: [PATCH] v39.0.4.0 --- clients/http/setup.py | 2 +- clients/http/wcfhttp/core.py | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/clients/http/setup.py b/clients/http/setup.py index e2f7511..bca9914 100644 --- a/clients/http/setup.py +++ b/clients/http/setup.py @@ -33,7 +33,7 @@ setup( "setuptools", "fastapi", "uvicorn[standard]", - "wcferry>=39.0.3.0", + "wcferry>=39.0.4.0", ], classifiers=[ "Environment :: Win32 (MS Windows)", diff --git a/clients/http/wcfhttp/core.py b/clients/http/wcfhttp/core.py index 3cbce2c..4b33cfa 100644 --- a/clients/http/wcfhttp/core.py +++ b/clients/http/wcfhttp/core.py @@ -12,7 +12,7 @@ from fastapi import Body, FastAPI, Query from pydantic import BaseModel from wcferry import Wcf, WxMsg -__version__ = "39.0.3.0" +__version__ = "39.0.4.0" class Msg(BaseModel): @@ -64,6 +64,7 @@ class Http(FastAPI): self.add_api_route("/chatroom-member", self.add_chatroom_members, methods=["POST"], summary="添加群成员") self.add_api_route("/transfer", self.receive_transfer, methods=["POST"], summary="接收转账") self.add_api_route("/dec-image", self.decrypt_image, methods=["POST"], summary="解密图片") + self.add_api_route("/attachment/", self.download_attachment, methods=["POST"], summary="下载图片、文件和视频") self.add_api_route("/chatroom-member", self.del_chatroom_members, methods=["DELETE"], summary="删除群成员") @@ -373,6 +374,26 @@ class Http(FastAPI): ret = self.wcf.decrypt_image(src, dst) return {"status": ret, "message": "成功"if ret else "失败"} + def download_attachment(self, + id: int = Body("0", description="消息中的id"), + thumb: str = Body("C:/...", description="消息中的 thumb"), + extra: str = Body("C:/...", description="消息中的 extra")) -> dict: + """下载附件(图片、视频、文件) + + Args: + id (int): 消息中 id + thumb (str): 消息中的 thumb + extra (str): 消息中的 extra + + Returns: + str: 成功返回存储路径;空字符串为失败,原因见日志。 + """ + ret = self.wcf.download_attach(id, thumb, extra) + if ret: + return {"status": 0, "message": "成功", "data": {"path": ret}} + + return {"status": -1, "message": "失败,原因见日志"} + def get_chatroom_members(self, roomid: str = Query("xxxxxxxx@chatroom", description="群的 id")) -> dict: """获取群成员