From 4235d3687c0504c8bf8d003e3483d8217e5b518f Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 20 May 2026 11:28:29 +0800 Subject: [PATCH] feat: add tmdb api key setting --- package.json | 2 +- src/locales/en-US.ts | 12 ++++++++---- src/locales/zh-CN.ts | 10 +++++++--- src/locales/zh-TW.ts | 10 +++++++--- src/pages/resource.vue | 6 ++++++ src/views/setting/AccountSettingSystem.vue | 12 ++++++++++++ 6 files changed, 41 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index bae147df..3ba5d4e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "2.12.2", + "version": "2.12.3", "private": true, "type": "module", "bin": "dist/service.js", diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 15b8aa08..f1faf345 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1559,15 +1559,19 @@ export default { 'Can improve read/write concurrency performance, but may increase the risk of data loss in exceptional cases, requires restart to take effect', tmdbApiDomain: 'TMDB API Service Address', tmdbApiDomainPlaceholder: 'api.themoviedb.org', - tmdbApiDomainHint: 'Customize themoviedb API domain or proxy address', + tmdbApiDomainHint: 'Customize TheMovieDb API domain or proxy address', tmdbApiDomainRequired: 'Please enter TMDB API domain', + tmdbApiKey: 'TMDB API Key', + tmdbApiKeyPlaceholder: 'Please enter TMDB API Key', + tmdbApiKeyHint: 'Set TheMovieDb API Key', + tmdbApiKeyRequired: 'Please enter TMDB API Key', tmdbImageDomain: 'TMDB Image Service Address', tmdbImageDomainPlaceholder: 'image.tmdb.org', - tmdbImageDomainHint: 'Customize themoviedb image service domain or proxy address', + tmdbImageDomainHint: 'Customize TheMovieDb image service domain or proxy address', tmdbImageDomainRequired: 'Please enter image service domain', tmdbLocale: 'TMDB Metadata Language', tmdbLocalePlaceholder: 'en', - tmdbLocaleHint: 'Customize themoviedb metadata language', + tmdbLocaleHint: 'Customize TheMovieDb metadata language', metaCacheExpire: 'Media Metadata Cache Expiration Time', metaCacheExpireHint: 'Recognition metadata local cache time, use built-in default value when set to 0', metaCacheExpireRequired: 'Please enter metadata cache time', @@ -1576,7 +1580,7 @@ export default { scrapFollowTmdbHint: 'When turned off, organization history will be used (if available) to avoid TMDB data changes during subscription', scrapOriginalImage: 'Scrap TheMovieDb Original Language Image', - scrapOriginalImageHint: 'Scrap original language image from themoviedb, otherwise scrap metadata language image', + scrapOriginalImageHint: 'Scrap original language image from TheMovieDb, otherwise scrap metadata language image', fanartEnable: 'Fanart Image Data Source', fanartEnableHint: 'Use image data from fanart.tv', fanartLang: 'Fanart Language', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 98522ef7..ea11e717 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1542,15 +1542,19 @@ export default { dbWalEnableHint: '可提升读写并发性能,但可能在异常情况下增加数据丢失风险,更改后需重启生效', tmdbApiDomain: 'TMDB API服务地址', tmdbApiDomainPlaceholder: 'api.themoviedb.org', - tmdbApiDomainHint: '自定义themoviedb API域名或代理地址', + tmdbApiDomainHint: '自定义 TheMovieDb API域名或代理地址', tmdbApiDomainRequired: '请输入TMDB API域名', + tmdbApiKey: 'TMDB API Key', + tmdbApiKeyPlaceholder: '请输入 TMDB API Key', + tmdbApiKeyHint: '设置 TheMovieDb API Key', + tmdbApiKeyRequired: '请输入TMDB API Key', tmdbImageDomain: 'TMDB 图片服务地址', tmdbImageDomainPlaceholder: 'image.tmdb.org', - tmdbImageDomainHint: '自定义themoviedb图片服务域名或代理地址', + tmdbImageDomainHint: '自定义 TheMovieDb 图片服务域名或代理地址', tmdbImageDomainRequired: '请输入图片服务域名', tmdbLocale: 'TMDB 元数据语言', tmdbLocalePlaceholder: 'zh', - tmdbLocaleHint: '自定义themoviedb元数据语言', + tmdbLocaleHint: '自定义 TheMovieDb 元数据语言', metaCacheExpire: '媒体元数据缓存过期时间', metaCacheExpireHint: '识别元数据本地缓存时间,为 0 时使用内置默认值', metaCacheExpireRequired: '请输入元数据缓存时间', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index c40f589a..40365825 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -1543,15 +1543,19 @@ export default { dbWalEnableHint: '可提升讀寫併發性能,但可能在異常情況下增加數據丟失風險,更改後需重啟生效', tmdbApiDomain: 'TMDB API服務地址', tmdbApiDomainPlaceholder: 'api.themoviedb.org', - tmdbApiDomainHint: '自定義themoviedb API域名或代理地址', + tmdbApiDomainHint: '自定義 TheMovieDb API域名或代理地址', tmdbApiDomainRequired: '請輸入TMDB API域名', + tmdbApiKey: 'TMDB API Key', + tmdbApiKeyPlaceholder: '請輸入 TMDB API Key', + tmdbApiKeyHint: '設定 TheMovieDb API Key', + tmdbApiKeyRequired: '請輸入TMDB API Key', tmdbImageDomain: 'TMDB 圖片服務地址', tmdbImageDomainPlaceholder: 'image.tmdb.org', - tmdbImageDomainHint: '自定義themoviedb圖片服務域名或代理地址', + tmdbImageDomainHint: '自定義 TheMovieDb 圖片服務域名或代理地址', tmdbImageDomainRequired: '請輸入圖片服務域名', tmdbLocale: 'TMDB 元數據語言', tmdbLocalePlaceholder: 'zh', - tmdbLocaleHint: '自定義themoviedb元數據語言', + tmdbLocaleHint: '自定義 TheMovieDb 元數據語言', metaCacheExpire: '媒體元數據緩存過期時間', metaCacheExpireHint: '識別元數據本地緩存時間,為 0 時使用內置默認值', metaCacheExpireRequired: '請輸入元數據緩存時間', diff --git a/src/pages/resource.vue b/src/pages/resource.vue index 745638b6..281747a5 100644 --- a/src/pages/resource.vue +++ b/src/pages/resource.vue @@ -528,6 +528,11 @@ function resetSearchResults() { applyFilter() } +// 判断当前页面是否已经完成过一次带关键词的空结果搜索,避免 keep-alive 返回时自动重搜。 +function hasLoadedEmptySearchResult() { + return isRefreshed.value && !progressActive.value && rawDataList.value.length === 0 && hasSearchKeyword(activeSearchParams.value) +} + // 更新搜索进度 function updateSearchProgress(eventData: { [key: string]: any }, flushNow: boolean = false) { if (eventData.text) { @@ -1081,6 +1086,7 @@ onMounted(async () => { useKeepAliveRefresh(async () => { if (progressActive.value || isRefreshing.value || isRecommending.value || showingAiResults.value) return + if (hasLoadedEmptySearchResult()) return const refreshParams = await resolveRefreshSearchParams() if (!refreshParams) return diff --git a/src/views/setting/AccountSettingSystem.vue b/src/views/setting/AccountSettingSystem.vue index d7aeaf77..b4b97d94 100644 --- a/src/views/setting/AccountSettingSystem.vue +++ b/src/views/setting/AccountSettingSystem.vue @@ -96,6 +96,7 @@ const SystemSettings = ref({ RECOGNIZE_PLUGIN_FIRST: false, MEDIA_RECOGNIZE_SHARE: true, TMDB_API_DOMAIN: null, + TMDB_API_KEY: null, TMDB_IMAGE_DOMAIN: null, TMDB_LOCALE: null, META_CACHE_EXPIRE: 0, @@ -1798,6 +1799,17 @@ watch(currentLlmSnapshotKey, (snapshotKey, previousSnapshotKey) => { prepend-inner-icon="mdi-api" /> + + +