From 787c9a16d0c7f819b4a897118812ae8c6dd0b44f Mon Sep 17 00:00:00 2001 From: Small_yu Date: Tue, 16 May 2023 22:03:30 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20core=E7=AB=AF=E5=A2=9E=E5=8A=A0imag?= =?UTF-8?q?e=E5=92=8Cfile=E7=9A=84url=E6=94=AF=E6=8C=81=20(#13)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * core端增加image和file的url支持 * core端增加image和file的url支持 * 🚨 `pre-commit-ci`修复格式错误 --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- gsuid_core/segment.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gsuid_core/segment.py b/gsuid_core/segment.py index 82adea2..adef5be 100644 --- a/gsuid_core/segment.py +++ b/gsuid_core/segment.py @@ -25,6 +25,8 @@ class MessageSegment: with open(str(img), 'rb') as fp: img = fp.read() else: + if img.startswith('http'): + return Message(type='image', data=f'link://{img}') if img.startswith('base64://'): return Message(type='image', data=img) with open(img, 'rb') as fp: @@ -53,6 +55,10 @@ class MessageSegment: else: if msg.startswith('base64://'): msg_list.append(Message(type='image', data=msg)) + elif msg.startswith('http'): + msg_list.append( + Message(type='image', data=f'link://{msg}') + ) else: msg_list.append(MessageSegment.text(msg)) return Message(type='node', data=msg_list) @@ -79,8 +85,15 @@ class MessageSegment: elif isinstance(content, bytes): file = content else: - with open(content, 'rb') as fp: - file = fp.read() + if content.startswith('http'): + link = content + return Message( + type='file', + data=f'{file_name}|link://{link}', + ) + else: + with open(content, 'rb') as fp: + file = fp.read() return Message( type='file', data=f'{file_name}|{b64encode(file).decode()}',