fix(utils): preserve QQ image URL scheme (#2188)

This commit is contained in:
huanghuoguoguo
2026-05-16 11:29:31 +08:00
committed by GitHub
parent ed02ac4710
commit 885320e9ae
2 changed files with 24 additions and 1 deletions

View File

@@ -145,7 +145,8 @@ def get_qq_image_downloadable_url(image_url: str) -> tuple[str, dict]:
"""获取QQ图片的下载链接""" """获取QQ图片的下载链接"""
parsed = urlparse(image_url) parsed = urlparse(image_url)
query = parse_qs(parsed.query) query = parse_qs(parsed.query)
return f'http://{parsed.netloc}{parsed.path}', query scheme = parsed.scheme or 'http'
return f'{scheme}://{parsed.netloc}{parsed.path}', query
async def get_qq_image_bytes(image_url: str, query: dict = {}) -> tuple[bytes, str]: async def get_qq_image_bytes(image_url: str, query: dict = {}) -> tuple[bytes, str]:

View File

@@ -0,0 +1,22 @@
from langbot.pkg.utils.image import get_qq_image_downloadable_url
def test_get_qq_image_downloadable_url_preserves_https_scheme():
url, query = get_qq_image_downloadable_url('https://gchat.qpic.cn/gchatpic_new/abc/0?term=2&is_origin=1')
assert url == 'https://gchat.qpic.cn/gchatpic_new/abc/0'
assert query == {'term': ['2'], 'is_origin': ['1']}
def test_get_qq_image_downloadable_url_preserves_http_scheme():
url, query = get_qq_image_downloadable_url('http://gchat.qpic.cn/gchatpic_new/abc/0?term=2')
assert url == 'http://gchat.qpic.cn/gchatpic_new/abc/0'
assert query == {'term': ['2']}
def test_get_qq_image_downloadable_url_defaults_missing_scheme_to_http():
url, query = get_qq_image_downloadable_url('gchat.qpic.cn/gchatpic_new/abc/0?term=2')
assert url == 'http://gchat.qpic.cn/gchatpic_new/abc/0'
assert query == {'term': ['2']}