From f5b550486a656d72cd9dc1ba11b71a3daef1d2a7 Mon Sep 17 00:00:00 2001 From: Small_yu Date: Tue, 16 May 2023 22:03:45 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20nb=E7=AB=AF=E5=A2=9E=E5=8A=A0image?= =?UTF-8?q?=E5=92=8Cfile=E7=9A=84url=E6=94=AF=E6=8C=81=20(#542)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenshinUID/client.py | 46 ++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/GenshinUID/client.py b/GenshinUID/client.py index 3a4e8e48..285df4e4 100644 --- a/GenshinUID/client.py +++ b/GenshinUID/client.py @@ -655,26 +655,44 @@ async def onebot_v12_send( ) await bot.call_api('send_message', **params) elif image: - img_bytes = base64.b64decode(image.replace('base64://', '')) timestamp = time.time() file_name = f'{target_id}_{timestamp}.png' - up_data = await bot.call_api( - 'upload_file', - type="data", - data=img_bytes, - name=f"{file_name}", - ) + if image.startswith('link://'): + link = image.replace('link://', '') + up_data = await bot.call_api( + 'upload_file', + type="url", + url=link, + name=f"{file_name}", + ) + else: + img_bytes = base64.b64decode(image.replace('base64://', '')) + up_data = await bot.call_api( + 'upload_file', + type="data", + data=img_bytes, + name=f"{file_name}", + ) file_id = up_data['file_id'] await send_file_message(params, "image", file_id) elif file: file_name, file_content = file.split('|') - file_data = base64.b64decode(file_content) - up_data = await bot.call_api( - 'upload_file', - type="data", - data=file_data, - name=f"{file_name}", - ) + if file_content.startswith('link://'): + link = file_content.replace('link://', '') + up_data = await bot.call_api( + 'upload_file', + type="url", + url=link, + name=f"{file_name}", + ) + else: + file_data = base64.b64decode(file_content) + up_data = await bot.call_api( + 'upload_file', + type="data", + data=file_data, + name=f"{file_name}", + ) file_id = up_data['file_id'] await send_file_message(params, "file", file_id)