コード例 #1
0
        public async Task <IEnumerable <RemoteSearchResult> > GetSearchResults(SeriesInfo info, CancellationToken cancellationToken)
        {
            try {
                var results       = new List <RemoteSearchResult>();
                var searchResults = await ShokoAPI.SeriesSearch(info.Name).ContinueWith((e) => e.Result.ToList());

                Logger.LogInformation($"Series search returned {searchResults.Count} results.");

                foreach (var series in searchResults)
                {
                    var seriesId     = series.IDs.ID.ToString();
                    var seriesInfo   = ApiManager.GetSeriesInfoSync(seriesId);
                    var imageUrl     = seriesInfo.AniDB.Poster?.ToURLString();
                    var parsedSeries = new RemoteSearchResult {
                        Name = Text.GetSeriesTitle(seriesInfo.AniDB.Titles, seriesInfo.Shoko.Name, info.MetadataLanguage),
                        SearchProviderName = Name,
                        ImageUrl           = imageUrl,
                    };
                    parsedSeries.SetProviderId("Shoko Series", seriesId);
                    results.Add(parsedSeries);
                }

                return(results);
            }
            catch (Exception e) {
                Logger.LogError(e, $"Threw unexpectedly; {e.Message}");
                return(new List <RemoteSearchResult>());
            }
        }