From 5032f0e6a9d4a1c1bb9266dbdb38c616bf2aa716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Tue, 4 Nov 2025 11:32:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=A3=9E=E7=89=9B=E5=BD=B1=E8=A7=86?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 图片接口增加Cookies参数 --- src/api/types.ts | 4 ++++ src/components/cards/BackdropCard.vue | 6 +++++- src/components/cards/LibraryCard.vue | 18 ++++++++++++------ src/components/cards/PosterCard.vue | 6 +++++- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/api/types.ts b/src/api/types.ts index 27c956f1..198bc106 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -992,6 +992,8 @@ export interface MediaServerPlayItem { percent?: number // 媒体服务器类型 server_type?: string + // 飞牛的图片需要Cookies + cookies?: string } // 媒体服务器媒体库 @@ -1014,6 +1016,8 @@ export interface MediaServerLibrary { link?: string // 媒体服务器类型 server_type?: string + // 飞牛的图片需要Cookies + cookies?: string } // 消息通知 diff --git a/src/components/cards/BackdropCard.vue b/src/components/cards/BackdropCard.vue index de9851de..9c711847 100644 --- a/src/components/cards/BackdropCard.vue +++ b/src/components/cards/BackdropCard.vue @@ -26,7 +26,11 @@ async function goPlay() { // 计算图片地址 const getImgUrl = computed(() => { const image = props.media?.image || '' - return `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(image)}` + let url = `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(image)}` + const cookies = props.media?.cookies + if (cookies) + url += `&cookies=${encodeURIComponent(cookies)}` + return url }) diff --git a/src/components/cards/LibraryCard.vue b/src/components/cards/LibraryCard.vue index 9a51eb95..e5d390cb 100644 --- a/src/components/cards/LibraryCard.vue +++ b/src/components/cards/LibraryCard.vue @@ -52,20 +52,26 @@ async function goPlay() { } // 生成图片代理路径 -function getImgUrl(url: string) { +function getImgUrl(url: string, cookies?: string) { if (!url) return getDefaultImage() - else return `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(url)}` + let imgurl = `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(url)}` + if (cookies) + imgurl += `&cookies=${encodeURIComponent(cookies)}` + return imgurl } // 根据多张图片生成媒体库封面 -async function drawImages(imageList: string[]) { +async function drawImages(imageList: string[], cookies?: string) { // 图片 const IMAGES = imageList if (IMAGES.length === 0) return getDefaultImage() // 为所有图片添加system/img前缀 - for (let i = 0; i < IMAGES.length; i++) + for (let i = 0; i < IMAGES.length; i++) { IMAGES[i] = `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(IMAGES[i])}` + if (cookies) + IMAGES[i] += `&cookies=${encodeURIComponent(cookies)}` + } // canvas const canvas = canvasRef.value @@ -137,8 +143,8 @@ async function drawImages(imageList: string[]) { onMounted(async () => { if (props.media?.image_list && props.media?.image_list.length > 0) - imgUrl.value = await drawImages(props.media?.image_list || []) - else imgUrl.value = getImgUrl(props.media?.image || '') + imgUrl.value = await drawImages(props.media?.image_list || [], props.media?.cookies) + else imgUrl.value = getImgUrl(props.media?.image || '', props.media?.cookies) }) diff --git a/src/components/cards/PosterCard.vue b/src/components/cards/PosterCard.vue index b965e9b3..18fd13a8 100644 --- a/src/components/cards/PosterCard.vue +++ b/src/components/cards/PosterCard.vue @@ -28,7 +28,11 @@ function getChipColor(type: string) { const getImgUrl = computed(() => { if (imageLoadError.value) return noImage const image = props.media?.image || '' - return `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(image)}` + let url = `${import.meta.env.VITE_API_BASE_URL}system/img/0?imgurl=${encodeURIComponent(image)}` + const cookies = props.media?.cookies + if (cookies) + url += `&cookies=${encodeURIComponent(cookies)}` + return url }) // 跳转播放