From 430ab838704300989f1021aad1c6d139b0daa986 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sat, 18 Jul 2026 11:18:38 +0800 Subject: [PATCH] fix: apply TMDB proxy configuration --- lib/pages/media_library_page.dart | 7 ++++++- lib/providers/media_library_provider.dart | 24 +++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/pages/media_library_page.dart b/lib/pages/media_library_page.dart index 799521c..5cc5284 100644 --- a/lib/pages/media_library_page.dart +++ b/lib/pages/media_library_page.dart @@ -537,7 +537,12 @@ class _MediaLibraryPageState extends ConsumerState { try { final api = ref.read(authProvider.notifier).api; - final result = await api.tmdbSearch(text, apiKey: _tmdbApiKey); + final result = await api.tmdbSearch( + text, + apiKey: _tmdbApiKey, + proxyHost: StorageManager.get(StorageKeys.tmdbProxyHost) ?? '', + proxyPort: StorageManager.get(StorageKeys.tmdbProxyPort) ?? '', + ); final results = (result['results'] as List?) ?.whereType() diff --git a/lib/providers/media_library_provider.dart b/lib/providers/media_library_provider.dart index feb9c76..f67107d 100644 --- a/lib/providers/media_library_provider.dart +++ b/lib/providers/media_library_provider.dart @@ -205,10 +205,19 @@ class MediaLibraryNotifier extends StateNotifier { final unique = {}; final tmdbApiKey = StorageManager.get(StorageKeys.tmdbApiKey) ?? ''; + final tmdbProxyHost = + StorageManager.get(StorageKeys.tmdbProxyHost) ?? ''; + final tmdbProxyPort = + StorageManager.get(StorageKeys.tmdbProxyPort) ?? ''; for (final file in discovered) { if (_cancelScan) break; final fallback = MediaLibraryItem.fromFile(library.id, file); - unique[file.id] = await _recognizeMediaItem(fallback, tmdbApiKey); + unique[file.id] = await _recognizeMediaItem( + fallback, + tmdbApiKey, + proxyHost: tmdbProxyHost, + proxyPort: tmdbProxyPort, + ); state = state.copyWith( progress: MediaLibraryScanProgress( phase: tmdbApiKey.isEmpty ? '正在建立本地索引' : '正在识别 ${file.name}', @@ -277,11 +286,18 @@ class MediaLibraryNotifier extends StateNotifier { Future _recognizeMediaItem( MediaLibraryItem fallback, - String apiKey, - ) async { + String apiKey, { + required String proxyHost, + required String proxyPort, + }) async { if (_api == null || apiKey.trim().isEmpty) return fallback; try { - final result = await _api!.tmdbSearch(fallback.title, apiKey: apiKey); + final result = await _api!.tmdbSearch( + fallback.title, + apiKey: apiKey, + proxyHost: proxyHost, + proxyPort: proxyPort, + ); final values = result['results']; if (values is! List) return fallback; Map? candidate;