Fix tmdb error

This commit is contained in:
cxfksword 2022-10-25 21:20:56 +08:00
parent 2381509376
commit ee8a090b11
1 changed files with 201 additions and 108 deletions

View File

@ -65,6 +65,8 @@ namespace Jellyfin.Plugin.MetaShark.Api
return movie;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
movie = await _tmDbClient.GetMovieAsync(
@ -81,6 +83,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return movie;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Gets a collection from the TMDb API based on its TMDb id.
@ -136,6 +144,8 @@ namespace Jellyfin.Plugin.MetaShark.Api
return series;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
series = await _tmDbClient.GetTvShowAsync(
@ -152,6 +162,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return series;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Gets a tv season from the TMDb API based on the tv show's TMDb id.
@ -175,6 +191,8 @@ namespace Jellyfin.Plugin.MetaShark.Api
return season;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
season = await _tmDbClient.GetTvSeasonAsync(
@ -192,6 +210,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return season;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Gets a movie from the TMDb API based on the tv show's TMDb id.
@ -205,12 +229,19 @@ namespace Jellyfin.Plugin.MetaShark.Api
/// <returns>The TMDb tv episode information or null if not found.</returns>
public async Task<TvEpisode?> GetEpisodeAsync(int tvShowId, int seasonNumber, int episodeNumber, string language, string imageLanguages, CancellationToken cancellationToken)
{
if (!this._config.EnableTmdb)
{
return null;
}
var key = $"episode-{tvShowId.ToString(CultureInfo.InvariantCulture)}-s{seasonNumber.ToString(CultureInfo.InvariantCulture)}e{episodeNumber.ToString(CultureInfo.InvariantCulture)}-{language}";
if (_memoryCache.TryGetValue(key, out TvEpisode episode))
{
return episode;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
episode = await _tmDbClient.GetTvEpisodeAsync(
@ -229,6 +260,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return episode;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Gets a person eg. cast or crew member from the TMDb API based on its TMDb id.
@ -249,6 +286,9 @@ namespace Jellyfin.Plugin.MetaShark.Api
return person;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
person = await _tmDbClient.GetPersonAsync(
@ -263,6 +303,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return person;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Gets an item from the TMDb API based on its id from an external service eg. IMDb id, TvDb id.
@ -278,12 +324,19 @@ namespace Jellyfin.Plugin.MetaShark.Api
string language,
CancellationToken cancellationToken)
{
if (!this._config.EnableTmdb)
{
return null;
}
var key = $"find-{source.ToString()}-{externalId.ToString(CultureInfo.InvariantCulture)}-{language}";
if (_memoryCache.TryGetValue(key, out FindContainer result))
{
return result;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
result = await _tmDbClient.FindAsync(
@ -299,6 +352,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return result;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return null;
}
}
/// <summary>
/// Searches for a tv show using the TMDb API based on its name.
@ -349,12 +408,19 @@ namespace Jellyfin.Plugin.MetaShark.Api
/// <returns>The TMDb person information.</returns>
public async Task<IReadOnlyList<SearchPerson>> SearchPersonAsync(string name, CancellationToken cancellationToken)
{
if (!this._config.EnableTmdb)
{
return new List<SearchPerson>();
}
var key = $"searchperson-{name}";
if (_memoryCache.TryGetValue(key, out SearchContainer<SearchPerson> person))
{
return person.Results;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
var searchResults = await _tmDbClient
@ -368,6 +434,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return searchResults.Results;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return new List<SearchPerson>();
}
}
/// <summary>
/// Searches for a movie based on its name using the TMDb API.
@ -402,6 +474,8 @@ namespace Jellyfin.Plugin.MetaShark.Api
return movies.Results;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
var searchResults = await _tmDbClient
@ -415,6 +489,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return searchResults.Results;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return new List<SearchMovie>();
}
}
/// <summary>
/// Searches for a collection based on its name using the TMDb API.
@ -425,12 +505,19 @@ namespace Jellyfin.Plugin.MetaShark.Api
/// <returns>The TMDb collection information.</returns>
public async Task<IReadOnlyList<SearchCollection>> SearchCollectionAsync(string name, string language, CancellationToken cancellationToken)
{
if (!this._config.EnableTmdb)
{
return new List<SearchCollection>();
}
var key = $"collectionsearch-{name}-{language}";
if (_memoryCache.TryGetValue(key, out SearchContainer<SearchCollection> collections))
{
return collections.Results;
}
try
{
await EnsureClientConfigAsync().ConfigureAwait(false);
var searchResults = await _tmDbClient
@ -444,6 +531,12 @@ namespace Jellyfin.Plugin.MetaShark.Api
return searchResults.Results;
}
catch (Exception ex)
{
this._logger.LogError(ex, ex.Message);
return new List<SearchCollection>();
}
}
/// <summary>
/// Gets the absolute URL of the poster.