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 }) // 跳转播放