From 1205fc7fdb519df61bb27219aaef2d884e5fbd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Wed, 5 Nov 2025 15:01:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E5=9B=BE=E7=89=87cookies=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/system.py | 7 ++++++- app/modules/trimemedia/trimemedia.py | 2 ++ app/schemas/mediaserver.py | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/api/endpoints/system.py b/app/api/endpoints/system.py index 777b1de2..25de81c9 100644 --- a/app/api/endpoints/system.py +++ b/app/api/endpoints/system.py @@ -147,6 +147,7 @@ async def proxy_img( imgurl: str, proxy: bool = False, cache: bool = False, + use_cookies: bool = False, if_none_match: Annotated[str | None, Header()] = None, _: schemas.TokenPayload = Depends(verify_resource_token) ) -> Response: @@ -157,7 +158,11 @@ async def proxy_img( hosts = [config.config.get("host") for config in MediaServerHelper().get_configs().values() if config and config.config and config.config.get("host")] allowed_domains = set(settings.SECURITY_IMAGE_DOMAINS) | set(hosts) - cookies = MediaServerChain().get_image_cookies(server=None, image_url=imgurl) + cookies = ( + MediaServerChain().get_image_cookies(server=None, image_url=imgurl) + if use_cookies + else None + ) return await fetch_image(url=imgurl, proxy=proxy, use_cache=cache, cookies=cookies, if_none_match=if_none_match, allowed_domains=allowed_domains) diff --git a/app/modules/trimemedia/trimemedia.py b/app/modules/trimemedia/trimemedia.py index 5c90f755..fce6b666 100644 --- a/app/modules/trimemedia/trimemedia.py +++ b/app/modules/trimemedia/trimemedia.py @@ -200,6 +200,7 @@ class TrimeMedia: ], link=f"{self._playhost or self._api.host}/library/{library.guid}", server_type="trimemedia", + use_cookies=True, ) ) return libraries @@ -498,6 +499,7 @@ class TrimeMedia: else 0 ), server_type="trimemedia", + use_cookies=True, ) def get_items( diff --git a/app/schemas/mediaserver.py b/app/schemas/mediaserver.py index a5427228..10d15710 100644 --- a/app/schemas/mediaserver.py +++ b/app/schemas/mediaserver.py @@ -74,6 +74,8 @@ class MediaServerLibrary(BaseModel): link: Optional[str] = None # 服务器类型 server_type: Optional[str] = None + # 飞牛的图片需要Cookies + use_cookies: Optional[bool] = None class MediaServerItemUserState(BaseModel): @@ -177,3 +179,5 @@ class MediaServerPlayItem(BaseModel): percent: Optional[float] = None BackdropImageTags: Optional[list] = Field(default_factory=list) server_type: Optional[str] = None + # 飞牛的图片需要Cookies + use_cookies: Optional[bool] = None