From 5fe23c7ad12bc9b7556ca4adedff74fc827eaa40 Mon Sep 17 00:00:00 2001 From: tapframe Date: Thu, 8 Jan 2026 14:10:43 +0530 Subject: [PATCH] fixed tmdb enrichment logic overrding addons meta while turned off. --- src/hooks/useMetadata.ts | 18 ++++++++---------- src/services/catalogService.ts | 24 ++++++++++++++++++++---- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts index e9fee09..d47aa1a 100644 --- a/src/hooks/useMetadata.ts +++ b/src/hooks/useMetadata.ts @@ -824,9 +824,9 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Store addon logo before TMDB enrichment overwrites it const addonLogo = (finalMetadata as any).logo; - // If localization is enabled AND title/description enrichment is enabled, merge TMDB localized text (name/overview) before first render + try { - if (settings.enrichMetadataWithTMDB && settings.useTmdbLocalizedMetadata && settings.tmdbEnrichTitleDescription) { + if (settings.enrichMetadataWithTMDB && settings.tmdbEnrichTitleDescription) { const tmdbSvc = TMDBService.getInstance(); let finalTmdbId: number | null = tmdbId; if (!finalTmdbId) { @@ -835,7 +835,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat } if (finalTmdbId) { - const lang = settings.tmdbLanguagePreference || 'en'; + const lang = settings.useTmdbLocalizedMetadata ? (settings.tmdbLanguagePreference || 'en') : 'en'; if (type === 'movie') { const localized = await tmdbSvc.getMovieDetails(String(finalTmdbId), lang); if (localized) { @@ -904,7 +904,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat } } } catch (e) { - if (__DEV__) console.log('[useMetadata] failed to merge localized TMDB text', e); + if (__DEV__) console.log('[useMetadata] failed to merge TMDB title/description', e); } // Centralized logo fetching logic @@ -1149,13 +1149,11 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat if (__DEV__) logger.log('[loadSeriesData] TMDB season poster enrichment disabled; skipping season poster fetch'); } - // If localized TMDB text is enabled AND episode enrichment is enabled, merge episode names/overviews per language - if (settings.enrichMetadataWithTMDB && settings.tmdbEnrichEpisodes && settings.useTmdbLocalizedMetadata) { + if (settings.enrichMetadataWithTMDB && settings.tmdbEnrichEpisodes) { try { const tmdbIdToUse = tmdbId || (id.startsWith('tt') ? await tmdbService.findTMDBIdByIMDB(id) : null); if (tmdbIdToUse) { - // Use just the language code (e.g., 'ar', not 'ar-US') for TMDB API - const lang = settings.tmdbLanguagePreference || 'en'; + const lang = settings.useTmdbLocalizedMetadata ? (settings.tmdbLanguagePreference || 'en') : 'en'; const seasons = Object.keys(groupedAddonEpisodes).map(Number); // Fetch all seasons in parallel (much faster than fetching each episode individually) @@ -1187,10 +1185,10 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat }); await Promise.all(seasonPromises); - if (__DEV__) logger.log('[useMetadata] merged localized episode names/overviews from TMDB (batch)'); + if (__DEV__) logger.log('[useMetadata] merged episode names/overviews from TMDB (batch)'); } } catch (e) { - if (__DEV__) console.log('[useMetadata] failed to merge localized episode text', e); + if (__DEV__) console.log('[useMetadata] failed to merge episode text from TMDB', e); } } diff --git a/src/services/catalogService.ts b/src/services/catalogService.ts index 2be93b9..8122934 100644 --- a/src/services/catalogService.ts +++ b/src/services/catalogService.ts @@ -1159,7 +1159,11 @@ class CatalogService { const metas = await stremioService.getCatalog(manifest, type, catalog.id, 1, filters); if (metas && metas.length > 0) { - const items = metas.slice(0, limit).map(meta => this.convertMetaToStreamingContent(meta)); + const items = metas.slice(0, limit).map(meta => { + const content = this.convertMetaToStreamingContent(meta); + content.addonId = addon.id; + return content; + }); return { addonName: addon.name, items @@ -1226,7 +1230,11 @@ class CatalogService { const metas = await stremioService.getCatalog(manifest, type, catalogId, page, filters); if (metas && metas.length > 0) { - return metas.map(meta => this.convertMetaToStreamingContent(meta)); + return metas.map(meta => { + const content = this.convertMetaToStreamingContent(meta); + content.addonId = addonId; + return content; + }); } return []; } catch (error) { @@ -1257,7 +1265,11 @@ class CatalogService { const metas = await stremioService.getCatalog(manifest, catalog.type, catalog.id, 1, filters); if (metas && metas.length > 0) { - const items = metas.map(meta => this.convertMetaToStreamingContent(meta)); + const items = metas.map(meta => { + const content = this.convertMetaToStreamingContent(meta); + content.addonId = addon.id; + return content; + }); results.push(...items); } } catch (error) { @@ -1519,7 +1531,11 @@ class CatalogService { const metas = response.data?.metas || []; if (metas.length > 0) { - const items = metas.map(meta => this.convertMetaToStreamingContent(meta)); + const items = metas.map(meta => { + const content = this.convertMetaToStreamingContent(meta); + content.addonId = addon.id; + return content; + }); logger.log(`Found ${items.length} results from ${addon.name}`); return items; }