feat(image): 增加对 JPEG 和 HEIC 图片格式的支持

- 在图片下载功能中添加了对 JPEG 和 HEIC 格式的支持
- 更新了相关模块和文档以支持新功能

Closes #229
This commit is contained in:
2025-02-18 19:55:12 +08:00
parent 1570ba320c
commit 7059603d46
10 changed files with 39 additions and 24 deletions

View File

@@ -34,6 +34,7 @@ from source.module import (
VERSION_MAJOR,
VERSION_MINOR,
VERSION_BETA,
__VERSION__
)
from source.module import logging
from source.module import sleep_time
@@ -47,7 +48,7 @@ from .video import Video
__all__ = ["XHS"]
def _data_cache(function):
def data_cache(function):
async def inner(
self,
data: dict,
@@ -179,7 +180,7 @@ class XHS:
logging(log, _("提取作品文件下载地址失败"), ERROR)
await self.save_data(container)
@_data_cache
@data_cache
async def save_data(
self,
data: dict,
@@ -480,7 +481,7 @@ class XHS:
self.server = FastAPI(
debug=self.VERSION_BETA,
title="XHS-Downloader",
version=f"{self.VERSION_MAJOR}.{self.VERSION_MINOR}",
version=__VERSION__,
)
self.setup_routes()
config = Config(

View File

@@ -14,24 +14,24 @@ class Image:
for i in images
]
match format_:
case "png":
case "png" | "webp" | "jpeg" | "heic" | "avif":
return [
Html.format_url(cls.__generate_png_link(i)) for i in token_list
Html.format_url(cls.__generate_fixed_link(i, format_, )) for i in token_list
], live_link
case "webp":
case "auto":
return [
Html.format_url(cls.__generate_webp_link(i)) for i in token_list
Html.format_url(cls.__generate_auto_link(i)) for i in token_list
], live_link
case _:
raise ValueError
@staticmethod
def __generate_webp_link(token: str) -> str:
def __generate_auto_link(token: str) -> str:
return f"https://sns-img-bd.xhscdn.com/{token}"
@staticmethod
def __generate_png_link(token: str) -> str:
return f"https://ci.xiaohongshu.com/{token}?imageView2/format/png"
def __generate_fixed_link(token: str, format_: str, ) -> str:
return f"https://ci.xiaohongshu.com/{token}?imageView2/format/{format_}"
@staticmethod
def __extract_image_token(url: str) -> str: