public async Task <IEnumerable <RemoteSearchResult> > GetSearchResults(EpisodeInfo searchInfo, CancellationToken cancellationToken) { var list = new List <RemoteSearchResult>(); var id = AniDbEpisodeIdentity.Parse(searchInfo.ProviderIds.GetOrDefault(ProviderNames.AniDb)); if (id == null) { //var episodeIdentifier = new AnidbEpisodeIdentityProvider(); //await episodeIdentifier.Identify(searchInfo); //var converter = new AnidbTvdbEpisodeConverter(); //await converter.Convert(searchInfo); //id = AnidbEpisodeIdentity.Parse(searchInfo.ProviderIds.GetOrDefault(ProviderNames.AniDb)); } if (id == null) { return(list); } await AniDbSeriesProvider.GetSeriesData( _configurationManager.ApplicationPaths, _httpClient, id.Value.SeriesId, cancellationToken).ConfigureAwait(false); try { var metadataResult = await GetMetadata(searchInfo, cancellationToken).ConfigureAwait(false); if (metadataResult.HasMetadata) { var item = metadataResult.Item; list.Add(new RemoteSearchResult { IndexNumber = item.IndexNumber, Name = item.Name, ParentIndexNumber = item.ParentIndexNumber, PremiereDate = item.PremiereDate, ProductionYear = item.ProductionYear, ProviderIds = item.ProviderIds, SearchProviderName = Name, IndexNumberEnd = item.IndexNumberEnd }); } } catch (FileNotFoundException) { // Don't fail the provider because this will just keep on going and going. } catch (DirectoryNotFoundException) { // Don't fail the provider because this will just keep on going and going. } return(list); }
public async Task <IEnumerable <RemoteImageInfo> > GetImages(string aniDbId, CancellationToken cancellationToken) { var list = new List <RemoteImageInfo>(); if (!string.IsNullOrEmpty(aniDbId)) { var seriesDataPath = await AniDbSeriesProvider.GetSeriesData(_appPaths, _httpClient, aniDbId, cancellationToken); var imageUrl = await FindImageUrl(seriesDataPath).ConfigureAwait(false); if (!string.IsNullOrEmpty(imageUrl)) { list.Add(new RemoteImageInfo { ProviderName = Name, Url = imageUrl }); } } return(list); }
private async Task <string> FindSeriesFolder(string seriesId, CancellationToken cancellationToken) { var seriesDataPath = await AniDbSeriesProvider.GetSeriesData(_configurationManager.ApplicationPaths, _httpClient, seriesId, cancellationToken).ConfigureAwait(false); return(Path.GetDirectoryName(seriesDataPath)); }