コード例 #1
0
 public Either <ProcessFailedResult, string> SelectTitle(AniListTitleData titleData,
                                                         string metadataLanguage, ProcessResultContext resultContext)
 {
     return(_aniListNameSelector
            .SelectTitle(titleData, _titlePreferenceConfiguration.TitlePreference, metadataLanguage)
            .ToEither(resultContext.Failed("Failed to find a title")));
 }
 public IEnumerable <IPropertyMapping> GetSeriesMappings(int maxGenres, bool addAnimeGenre,
                                                         bool moveExcessGenresToTags, TitleType preferredTitleType, string metadataLanguage)
 {
     return(new IPropertyMapping[]
     {
         MapSeries("Name", t => t.Item.Name,
                   (s, t) => _nameSelector.SelectTitle(s.Title, preferredTitleType, metadataLanguage)
                   .Map(title => t.Item.Name = title),
                   (s, t) => _nameSelector.SelectTitle(s.Title, preferredTitleType, metadataLanguage).IsSome),
         MapSeries("Release date", t => t.Item.PremiereDate,
                   (s, t) => AniListFuzzyDate.ToDate(s.StartDate).Map(d => t.Item.PremiereDate = d),
                   (s, t) => AniListFuzzyDate.ToDate(s.StartDate).IsSome),
         MapSeries("End date", t => t.Item.EndDate,
                   (s, t) => AniListFuzzyDate.ToDate(s.EndDate).Map(d => t.Item.EndDate = d),
                   (s, t) => AniListFuzzyDate.ToDate(s.EndDate).IsSome),
         MapSeries("Community rating", t => t.Item.CommunityRating,
                   (s, t) => t.Item.CommunityRating = (float?)s.AverageScore,
                   (s, t) => s.AverageScore > 0),
         MapSeries("Overview", t => t.Item.Overview,
                   (s, t) => t.Item.Overview = s.Description,
                   (s, t) => !string.IsNullOrWhiteSpace(s.Description)),
         MapSeries("Studios", t => t.Item.Studios,
                   (s, t) => t.Item.Studios = s.Studios.Edges.Map(studio => studio.Name).ToArray(),
                   (s, t) => s.Studios.Edges.Any()),
         MapSeries("Genres", t => t.Item.Genres,
                   (s, t) => t.Item.Genres.AddRange(s.Genres.Take(maxGenres)),
                   (s, t) => s.Genres.Any()),
         MapSeries("Tags", t => t.Item.Tags,
                   (s, t) => t.Item.Tags =
                       moveExcessGenresToTags ? s.Genres.Skip(maxGenres).ToArray() : new string[] { },
                   (s, t) => s.Genres.Skip(maxGenres).Any()),
         MapSeries("People", t => t.People,
                   (s, t) => t.People = s.Staff.Edges
                                        .Map(staff => ToPersonInfo(_nameSelector, preferredTitleType, metadataLanguage, staff))
                                        .Concat(s.Characters.Edges.Map(c =>
                                                                       ToPersonInfo(_nameSelector, preferredTitleType, metadataLanguage, c)))
                                        .Somes()
                                        .ToList(),
                   (s, t) => s.Staff.Edges.Any() || s.Characters.Edges.Any())
     });
 }