From c8da8eefe0ac30a1bb02f0effaf0d38391f3fd7c Mon Sep 17 00:00:00 2001 From: Joe Rogers <1337joe@gmail.com> Date: Sat, 16 Dec 2023 16:09:10 -0500 Subject: [PATCH 1/3] Add api key to configuration --- .../Tmdb/Configuration/PluginConfiguration.cs | 6 ++++++ .../Plugins/Tmdb/Configuration/config.html | 20 ++++++++++++++++++- .../Plugins/Tmdb/TmdbClientManager.cs | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs index 03aaf380b5..e9cd81a14e 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs @@ -7,6 +7,12 @@ namespace MediaBrowser.Providers.Plugins.Tmdb /// public class PluginConfiguration : BasePluginConfiguration { + /// + /// Gets or sets a value to use as the API key for accessing TMDb. This is intentionally excluded from the + /// settings page as the API key should not need to be changed by most users. + /// + public string TmdbApiKey { get; set; } = TmdbUtils.ApiKey; + /// /// Gets or sets a value indicating whether include adult content when searching with TMDb. /// diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/config.html b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/config.html index cd21516f95..f3c24e7b42 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/config.html +++ b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/config.html @@ -64,9 +64,18 @@ var clientConfig, pluginConfig; var configureImageScaling = function() { - if (clientConfig === null || pluginConfig === null) { + if (clientConfig === undefined || pluginConfig === undefined) { return; } + if (Object.keys(clientConfig).length === 0) { + clientConfig = { + PosterSizes: [pluginConfig.PosterSize], + BackdropSizes: [pluginConfig.BackdropSize], + LogoSizes: [pluginConfig.LogoSize], + ProfileSizes: [pluginConfig.ProfileSize], + StillSizes: [pluginConfig.StillSize] + }; + } var sizeOptionsGenerator = function (size) { return ''; @@ -104,6 +113,15 @@ ApiClient.fetch(request).then(function (config) { clientConfig = config; configureImageScaling(); + }, function (error) { + error.text().then(function (contents) { + Dashboard.alert({ + title: error.statusText, + message: contents + }); + clientConfig = {}; + configureImageScaling(); + }); }); ApiClient.getPluginConfiguration(PluginConfig.pluginId).then(function (config) { diff --git a/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs index 72e59c9ac4..1402104334 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.Plugins.Tmdb public TmdbClientManager(IMemoryCache memoryCache) { _memoryCache = memoryCache; - _tmDbClient = new TMDbClient(TmdbUtils.ApiKey); + _tmDbClient = new TMDbClient(Plugin.Instance.Configuration.TmdbApiKey); // Not really interested in NotFoundException _tmDbClient.ThrowApiExceptions = false; } From f7479bc7301391d1aed9b2cb1104e501087bb6d6 Mon Sep 17 00:00:00 2001 From: Joe Rogers <1337joe@gmail.com> Date: Sat, 16 Dec 2023 23:28:50 -0500 Subject: [PATCH 2/3] Fix missing posters in collection identify --- .../Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs | 8 +++++--- .../Plugins/Tmdb/Movies/TmdbMovieProvider.cs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs index c2018d820e..c76c65591f 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/BoxSets/TmdbBoxSetProvider.cs @@ -75,12 +75,14 @@ namespace MediaBrowser.Providers.Plugins.Tmdb.BoxSets var collections = new RemoteSearchResult[collectionSearchResults.Count]; for (var i = 0; i < collectionSearchResults.Count; i++) { + var result = collectionSearchResults[i]; var collection = new RemoteSearchResult { - Name = collectionSearchResults[i].Name, - SearchProviderName = Name + Name = result.Name, + SearchProviderName = Name, + ImageUrl = _tmdbClientManager.GetPosterUrl(result.PosterPath) }; - collection.SetProviderId(MetadataProvider.Tmdb, collectionSearchResults[i].Id.ToString(CultureInfo.InvariantCulture)); + collection.SetProviderId(MetadataProvider.Tmdb, result.Id.ToString(CultureInfo.InvariantCulture)); collections[i] = collection; } diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs index 2f62e117eb..dac7a74ed8 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs @@ -299,7 +299,7 @@ namespace MediaBrowser.Providers.Plugins.Tmdb.Movies if (!string.IsNullOrWhiteSpace(person.ProfilePath)) { - personInfo.ImageUrl = _tmdbClientManager.GetPosterUrl(person.ProfilePath); + personInfo.ImageUrl = _tmdbClientManager.GetProfileUrl(person.ProfilePath); } if (person.Id > 0) From e91de654d78c847d482fb9ca315eca31d044d770 Mon Sep 17 00:00:00 2001 From: Joe Rogers <1337joe@gmail.com> Date: Sun, 17 Dec 2023 22:14:11 -0500 Subject: [PATCH 3/3] Stop saving Jellyfin API key in settings xml --- .../Plugins/Tmdb/Configuration/PluginConfiguration.cs | 2 +- MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs index e9cd81a14e..99b759ae29 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/Configuration/PluginConfiguration.cs @@ -11,7 +11,7 @@ namespace MediaBrowser.Providers.Plugins.Tmdb /// Gets or sets a value to use as the API key for accessing TMDb. This is intentionally excluded from the /// settings page as the API key should not need to be changed by most users. /// - public string TmdbApiKey { get; set; } = TmdbUtils.ApiKey; + public string TmdbApiKey { get; set; } = string.Empty; /// /// Gets or sets a value indicating whether include adult content when searching with TMDb. diff --git a/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs index 1402104334..82f2c54f16 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbClientManager.cs @@ -36,7 +36,11 @@ namespace MediaBrowser.Providers.Plugins.Tmdb public TmdbClientManager(IMemoryCache memoryCache) { _memoryCache = memoryCache; - _tmDbClient = new TMDbClient(Plugin.Instance.Configuration.TmdbApiKey); + + var apiKey = Plugin.Instance.Configuration.TmdbApiKey; + apiKey = string.IsNullOrEmpty(apiKey) ? TmdbUtils.ApiKey : apiKey; + _tmDbClient = new TMDbClient(apiKey); + // Not really interested in NotFoundException _tmDbClient.ThrowApiExceptions = false; }