= ({
{episode.still_path && (
{
// 折叠面板状态
const [isDoubanSectionOpen, setIsDoubanSectionOpen] = useState(true);
+
+ // TMDB 图片设置
+ const [tmdbImageBaseUrl, setTmdbImageBaseUrl] = useState('https://image.tmdb.org');
const [isUsageSectionOpen, setIsUsageSectionOpen] = useState(false);
const [isBufferSectionOpen, setIsBufferSectionOpen] = useState(false);
const [isDanmakuSectionOpen, setIsDanmakuSectionOpen] = useState(false);
@@ -339,6 +342,11 @@ export const UserMenu: React.FC = () => {
setDoubanImageProxyUrl(defaultDoubanImageProxyUrl);
}
+ const savedTmdbImageBaseUrl = localStorage.getItem('tmdbImageBaseUrl');
+ if (savedTmdbImageBaseUrl !== null) {
+ setTmdbImageBaseUrl(savedTmdbImageBaseUrl);
+ }
+
const savedEnableOptimization =
localStorage.getItem('enableOptimization');
if (savedEnableOptimization !== null) {
@@ -704,6 +712,13 @@ export const UserMenu: React.FC = () => {
}
};
+ const handleTmdbImageBaseUrlChange = (value: string) => {
+ setTmdbImageBaseUrl(value);
+ if (typeof window !== 'undefined') {
+ localStorage.setItem('tmdbImageBaseUrl', value);
+ }
+ };
+
const handleBufferStrategyChange = (value: string) => {
setBufferStrategy(value);
if (typeof window !== 'undefined') {
@@ -833,6 +848,7 @@ export const UserMenu: React.FC = () => {
setDoubanDataSource(defaultDoubanProxyType);
setDoubanImageProxyType(defaultDoubanImageProxyType);
setDoubanImageProxyUrl(defaultDoubanImageProxyUrl);
+ setTmdbImageBaseUrl('https://image.tmdb.org');
setBufferStrategy('medium');
setNextEpisodePreCache(true);
setNextEpisodeDanmakuPreload(true);
@@ -850,6 +866,7 @@ export const UserMenu: React.FC = () => {
localStorage.setItem('doubanDataSource', defaultDoubanProxyType);
localStorage.setItem('doubanImageProxyType', defaultDoubanImageProxyType);
localStorage.setItem('doubanImageProxyUrl', defaultDoubanImageProxyUrl);
+ localStorage.setItem('tmdbImageBaseUrl', 'https://image.tmdb.org');
localStorage.setItem('bufferStrategy', 'medium');
localStorage.setItem('nextEpisodePreCache', 'true');
localStorage.setItem('nextEpisodeDanmakuPreload', 'true');
@@ -1167,7 +1184,7 @@ export const UserMenu: React.FC = () => {
className='w-full px-3 py-2.5 md:px-4 md:py-3 bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-750 transition-colors flex items-center justify-between'
>
- 豆瓣设置
+ 网络设置
{isDoubanSectionOpen ? (
@@ -1384,6 +1401,30 @@ export const UserMenu: React.FC = () => {
/>
)}
+
+ {/* 分割线 */}
+
+
+ {/* TMDB 图片网络请求地址设置 */}
+
+
+
+ TMDB 图片网络请求地址
+
+
+ TMDB 图片的 Base URL(默认: https://image.tmdb.org)
+
+
+
+ handleTmdbImageBaseUrlChange(e.target.value)
+ }
+ />
+