豆瓣数据源增加备用源

This commit is contained in:
mtvpls
2026-04-09 21:30:07 +08:00
parent 204eec782f
commit 769dbf8310
11 changed files with 778 additions and 202 deletions
+11 -12
View File
@@ -7,7 +7,8 @@ import { useCallback, useEffect, useRef,useState } from 'react';
import { type TMDBItem,getGenreNames, getTMDBImageUrl } from '@/lib/tmdb.client';
import { getDoubanDetail } from '@/lib/douban.client';
import { processImageUrl } from '@/lib/utils';
import ProxyImage from '@/components/ProxyImage';
interface BannerCarouselProps {
autoPlayInterval?: number; // 自动播放间隔(毫秒)
@@ -67,15 +68,15 @@ export default function BannerCarousel({ autoPlayInterval = 5000, delayLoad = fa
}
};
// 获取图片URL(处理TX完整URL和TMDB路径)
// 获取图片原始URL(处理TX完整URL和TMDB路径)
const getImageUrl = (path: string | null) => {
if (!path) return '';
// 如果是完整URL(TX数据源或豆瓣),使用processImageUrl统一处理
// 如果是完整URL(TX数据源或豆瓣),直接返回原始地址
if (path.startsWith('http://') || path.startsWith('https://')) {
return processImageUrl(path);
return path;
}
// 否则使用TMDB的URL拼接,并通过processImageUrl处理
return processImageUrl(getTMDBImageUrl(path, 'original'));
// 否则使用TMDB的URL拼接原始地址
return getTMDBImageUrl(path, 'original');
};
// 获取视频URL(处理豆瓣视频代理)
@@ -454,13 +455,11 @@ export default function BannerCarousel({ autoPlayInterval = 5000, delayLoad = fa
</div>
) : (
/* 显示图片 */
<Image
src={getImageUrl(item.backdrop_path || item.poster_path)}
<ProxyImage
originalSrc={getImageUrl(item.backdrop_path || item.poster_path)}
alt={item.title}
fill
className="object-cover"
priority={index === 0}
sizes="100vw"
className="absolute inset-0 w-full h-full object-cover"
loading={index === 0 ? 'eager' : 'lazy'}
/>
)}
{/* 渐变遮罩 */}