diff --git a/channel/wework/wework_message.py b/channel/wework/wework_message.py index dd24aa4..e95dfb1 100644 --- a/channel/wework/wework_message.py +++ b/channel/wework/wework_message.py @@ -8,6 +8,7 @@ import pilk from bridge.context import ContextType from channel.chat_message import ChatMessage from common.log import logger +from ntwork.const import send_type def get_with_retry(get_func, max_retries=5, delay=5): @@ -41,15 +42,37 @@ def cdn_download(wework, message, file_name): data = message["data"] aes_key = data["cdn"]["aes_key"] file_size = data["cdn"]["size"] - file_type = 2 - file_id = data["cdn"]["file_id"] # 获取当前工作目录,然后与文件名拼接得到保存路径 current_dir = os.getcwd() save_path = os.path.join(current_dir, "tmp", file_name) - result = wework.c2c_cdn_download(file_id, aes_key, file_size, file_type, save_path) - logger.debug(result) + # 下载保存图片到本地 + if "url" in data["cdn"].keys() and "auth_key" in data["cdn"].keys(): + url = data["cdn"]["url"] + auth_key = data["cdn"]["auth_key"] + # result = wework.wx_cdn_download(url, auth_key, aes_key, file_size, save_path) # ntwork库本身接口有问题,缺失了aes_key这个参数 + """ + 下载wx类型的cdn文件,以https开头 + """ + data = { + 'url': url, + 'auth_key': auth_key, + 'aes_key': aes_key, + 'size': file_size, + 'save_path': save_path + } + result = wework._WeWork__send_sync(send_type.MT_WXCDN_DOWNLOAD_MSG, data) # 直接用wx_cdn_download的接口内部实现来调用 + elif "file_id" in data["cdn"].keys(): + file_type = 2 + file_id = data["cdn"]["file_id"] + result = wework.c2c_cdn_download(file_id, aes_key, file_size, file_type, save_path) + else: + logger.error(f"something is wrong, data: {data}") + return + + # 输出下载结果 + logger.debug(f"result: {result}") def c2c_download_and_convert(wework, message, file_name):