예제 #1
0
        private T GetItemFromMedia <T>(MediaRoot media) where T : BaseItem, new()
        {
            if (media == null)
            {
                throw new ArgumentNullException(nameof(media));
            }

            var item = new T
            {
                Name        = media.Title,
                Overview    = Sanitizer.SanitizeDescription(media.Synopsis),
                ProviderIds = new Dictionary <string, string>
                {
                    { Name, media.Mal_Id.ToString() },
                }
            };

            if (media.Genres?.Count > 0)
            {
                item.Genres = media.Genres.Select(i => i.Name).ToArray();
            }

            int?startYear = media.Aired?.From.Year, startMonth = media.Aired?.From.Month, startDay = media.Aired?.From.Day;

            if (startYear.HasValue && startMonth.HasValue && startDay.HasValue)
            {
                item.PremiereDate   = new DateTime(startYear.Value, startMonth.Value, startDay.Value);
                item.ProductionYear = startYear.Value;
            }

            item.CommunityRating = (float)Math.Round(media.Score, 1);

            return(item);
        }
        private T GetItemFromMedia <T>(Media media) where T : BaseItem, new()
        {
            if (media == null)
            {
                throw new ArgumentNullException(nameof(media));
            }

            var item = new T
            {
                Name        = media.Title?.Romaji,
                Overview    = Sanitizer.SanitizeDescription(media.Description),
                ProviderIds = new Dictionary <string, string>
                {
                    { Name, media.Id.ToString() },
                    { MyAnimeListExternalId.ProviderName, media.IdMal?.ToString() }
                }
            };

            if (media.Genres?.Count > 0)
            {
                item.Genres = media.Genres.ToArray();
            }

            if (media.Studios?.Edges?.Count > 0)
            {
                item.Studios = media.Studios.Edges.Where(i => i.Node?.IsAnimationStudio == true)
                               .Select(i => i.Node.Name).ToArray();
            }

            int?startYear = media.StartDate?.Year, startMonth = media.StartDate?.Month, startDay = media.StartDate?.Day;

            if (startYear.HasValue && startMonth.HasValue && startDay.HasValue)
            {
                item.PremiereDate   = new DateTime(startYear.Value, startMonth.Value, startDay.Value);
                item.ProductionYear = startYear.Value;
            }

            if (media.AverageScore.HasValue)
            {
                item.CommunityRating = (float)Math.Round(media.AverageScore.Value / 10, 1);
            }

            return(item);
        }
예제 #3
0
        public RemoteSearchResult GetSearchResultFromMedia(MediaRoot media)
        {
            if (media == null)
            {
                throw new ArgumentNullException(nameof(media));
            }

            return(new RemoteSearchResult
            {
                SearchProviderName = Name,
                Name = media.Title,
                ImageUrl = media.Image_Url,
                Overview = Sanitizer.SanitizeDescription(media.Synopsis),
                ProviderIds = new Dictionary <string, string>
                {
                    { Name, media.Mal_Id.ToString() }
                }
            });
        }
        public RemoteSearchResult GetSearchResultFromMedia(Media media)
        {
            if (media == null)
            {
                throw new ArgumentNullException(nameof(media));
            }

            return(new RemoteSearchResult
            {
                SearchProviderName = Name,
                Name = media.Title?.Romaji,
                ImageUrl = media.CoverImage?.Large,
                Overview = Sanitizer.SanitizeDescription(media.Description),
                ProviderIds = new Dictionary <string, string>
                {
                    { Name, media.Id.ToString() },
                    { MyAnimeListExternalId.ProviderName, media.IdMal?.ToString() }
                }
            });
        }