diff --git a/AnimeAnnouncer/Cache/AnilistCacheItem.cs b/AnimeAnnouncer/Cache/AnilistCacheItem.cs new file mode 100644 index 0000000..6db4676 --- /dev/null +++ b/AnimeAnnouncer/Cache/AnilistCacheItem.cs @@ -0,0 +1,41 @@ +using Kavita.AniListNet.Objects; + +namespace AnimeAnnouncer.Cache +{ + public class AnilistCacheItem + { + public required String Title { get; set; } + public int ShowID { get; set; } + public string? EnglishTitle { get; set; } + public string? RomajiTitle { get; set; } + public string? NativeTitle { get; set; } + public int? Episodes { get; set; } + public string? Status { get; set; } + public int? SeasonYear { get; set; } + public string? Description { get; set; } + public string? BannerImageUrl { get; set; } + public string? CoverImageUrl { get; set; } + public int? AverageScore { get; set; } + + public DateTime? Updated { get; set; } + + public static AnilistCacheItem FromMedia(Media media) + { + return new AnilistCacheItem + { + Title = media.Title.EnglishTitle ?? media.Title.RomajiTitle, + ShowID = media.Id, + EnglishTitle = media.Title.EnglishTitle, + RomajiTitle = media.Title.RomajiTitle, + NativeTitle = media.Title.NativeTitle, + Episodes = media.Episodes, + Status = media.Status?.ToString(), + SeasonYear = media.SeasonYear, + Description = media.Description, + BannerImageUrl = media.BannerImageUrl?.ToString(), + CoverImageUrl = media.Cover?.ExtraLargeImageUrl?.ToString(), + AverageScore = media.AverageScore + }; + } + } +}