Ejemplo n.º 1
0
 private Boolean NameMatches(AnilistSeries series, String query)
 {
     return(String.Equals(series.Title.English, query, StringComparison.OrdinalIgnoreCase) ||
            String.Equals(series.Title.Romaji, query, StringComparison.OrdinalIgnoreCase) ||
            String.Equals(series.Title.Native, query, StringComparison.OrdinalIgnoreCase) ||
            series.Synonyms.Any(s => String.Equals(s, query, StringComparison.OrdinalIgnoreCase)));
 }
Ejemplo n.º 2
0
 public static String GetDescription(this AnilistSeries series, Int32 length = 512, Boolean force = false)
 {
     return((series.Description ?? "N/A")
            .Replace("\n", "")
            .Replace("<br>", "\n")
            .ReadMore(series.SiteUrl, length, force));
 }
Ejemplo n.º 3
0
 public static String GetCover(this AnilistSeries series)
 {
     if (series.CoverImage.ExtraLarge.IsEmpty())
     {
         return(series.CoverImage.Medium);
     }
     return(series.CoverImage.ExtraLarge);
 }
Ejemplo n.º 4
0
 public static String GetTitle(this AnilistSeries series)
 {
     if (!series.Title.English.IsEmpty())
     {
         return(series.Title.English);
     }
     if (!series.Title.Romaji.IsEmpty())
     {
         return(series.Title.Romaji);
     }
     return(series.Title.Native);
 }
Ejemplo n.º 5
0
        private KuuhakuEmbedBuilder MakeEmbed(AnilistSeries series)
        {
            var embed = this.Embed
                        .WithColor()
                        .WithAuthor($"Anilist - {series.GetTitle()}", AnilistIcon, series.SiteUrl)
                        .WithDescription(series.GetDescription());

            var isNsfw = (this.Channel as ITextChannel)?.IsNsfw ?? false;

            if (!series.IsAdult || isNsfw)
            {
                embed = series.BannerImage.IsEmpty()
                    ? embed.WithImageUrl(series.GetCover())
                    : embed.WithImageUrl(series.BannerImage).WithThumbnailUrl(series.GetCover());
            }

            var titles = new List <String>(series.Synonyms);

            if (!series.Title.English.IsEmpty())
            {
                titles.Add(series.Title.Romaji);
            }
            if (!series.Title.English.IsEmpty() && !series.Title.Romaji.IsEmpty())
            {
                titles.Add(series.Title.Native);
            }

            titles.Reverse();

            embed = embed.WithFieldIf("Also known as...", titles.Humanize(), false, titles.Count > 0)
                    .WithFieldIf("Started on", series.StartDate.GetDate, true, series.StartDate.Year.HasValue)
                    .WithFieldIf("Ended on", series.EndDate.GetDate, true, series.EndDate.Year.HasValue)
                    .WithFieldIf("Average Score", () => series.AverageScore ?? 0, true, series.AverageScore.HasValue);

            embed = embed.WithFieldIf("Episodes", () => series.Episodes.Value, true, series.Episodes.HasValue)
                    .WithFieldIf("Chapters", () => series.Chapters.Value, true, series.Chapters.HasValue)
                    .WithFieldIf("Volumes", () => series.Volumes.Value, true, series.Volumes.HasValue)
                    .WithField("Status", series.Status.ToLowerInvariant().Humanize(LetterCasing.Title))
                    .WithFieldIf("Season", () => $"{series.Season.ToLowerInvariant().Humanize(LetterCasing.Title)} {series.SeasonYear}", true, series.SeasonYear.HasValue)
                    .WithFieldIf("Genres", series.Genres.GetAsString(), false, series.Genres.Length > 0)
                    .WithFieldIf("Tags", series.Tags.Select(t => t.IsSpoiler ? t.Name.MdSpoiler() : t.Name).GetAsString(), false, series.Tags.Length > 0);

            return(embed);
        }