diff options
Diffstat (limited to 'MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs')
| -rw-r--r-- | MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs b/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs index 276622666d..7af9863232 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs @@ -9,6 +9,7 @@ using TvDbSharper.Dto; namespace MediaBrowser.Providers.TV { + // TODO add to DI once Bond's PR is merged public sealed class TvDbClientManager { private static volatile TvDbClientManager instance; @@ -72,22 +73,45 @@ namespace MediaBrowser.Providers.TV } } - public async Task<SeriesSearchResult[]> GetSeriesByName(string name, CancellationToken cancellationToken) + public Task<TvDbResponse<SeriesSearchResult[]>> GetSeriesByNameAsync(string name, CancellationToken cancellationToken) { - return await TryGetValue(name, - async () => (await TvDbClient.Search.SearchSeriesByNameAsync(name, cancellationToken)).Data); + return TryGetValue(name,() => TvDbClient.Search.SearchSeriesByNameAsync(name, cancellationToken)); } - public async Task<Series> GetSeriesById(int tvdbId, CancellationToken cancellationToken) + public Task<TvDbResponse<Series>> GetSeriesByIdAsync(int tvdbId, CancellationToken cancellationToken) { - return await TryGetValue(tvdbId, - async () => (await TvDbClient.Series.GetAsync(tvdbId, cancellationToken)).Data); + return TryGetValue(tvdbId,() => TvDbClient.Series.GetAsync(tvdbId, cancellationToken)); + } + + public Task<TvDbResponse<EpisodeRecord>> GetEpisodesAsync(int tvdbId, CancellationToken cancellationToken) + { + return TryGetValue(tvdbId,() => TvDbClient.Episodes.GetAsync(tvdbId, cancellationToken)); + } + + public Task<TvDbResponse<SeriesSearchResult[]>> GetSeriesByImdbIdAsync(string imdbId, CancellationToken cancellationToken) + { + return TryGetValue(imdbId,() => TvDbClient.Search.SearchSeriesByImdbIdAsync(imdbId, cancellationToken)); + } + + public Task<TvDbResponse<SeriesSearchResult[]>> GetSeriesByZap2ItIdAsync(string zap2ItId, CancellationToken cancellationToken) + { + return TryGetValue(zap2ItId,() => TvDbClient.Search.SearchSeriesByImdbIdAsync(zap2ItId, cancellationToken)); + } + public Task<TvDbResponse<Actor[]>> GetActorsAsync(int tvdbId, CancellationToken cancellationToken) + { + return TryGetValue(tvdbId,() => TvDbClient.Series.GetActorsAsync(tvdbId, cancellationToken)); + } + + public Task<TvDbResponse<Image[]>> GetImagesAsync(int tvdbId, ImagesQuery imageQuery, CancellationToken cancellationToken) + { + return TryGetValue(tvdbId,() => TvDbClient.Series.GetImagesAsync(tvdbId, imageQuery, cancellationToken)); } private async Task<T> TryGetValue<T>(object key, Func<Task<T>> resultFactory) { if (_cache.TryGetValue(key, out T cachedValue)) { + Console.WriteLine("Cache hit!!!"); return cachedValue; } |
