diff --git a/pages/calendar/calendar.go b/pages/calendar/calendar.go index 5329a753..1b9029b2 100644 --- a/pages/calendar/calendar.go +++ b/pages/calendar/calendar.go @@ -53,13 +53,27 @@ func Get(ctx *aero.Context) string { airingDate, _ := time.Parse(time.RFC3339, episode.AiringDate.Start) since := airingDate.Sub(now) - if since >= 0 && since < oneWeek { - dayIndex := int(since / (24 * time.Hour)) - days[dayIndex].Entries = append(days[dayIndex].Entries, &utils.CalendarEntry{ - Anime: animeEpisodes.Anime(), - Episode: episode, - }) + if since < 0 || since >= oneWeek { + continue } + + dayIndex := int(since / (24 * time.Hour)) + + entry := &utils.CalendarEntry{ + Anime: animeEpisodes.Anime(), + Episode: episode, + Class: "calendar-entry mountable", + } + + if user != nil { + animeListItem := user.AnimeList().Find(entry.Anime.ID) + + if animeListItem != nil && (animeListItem.Status == arn.AnimeListStatusWatching || animeListItem.Status == arn.AnimeListStatusPlanned) { + entry.Class += " calendar-entry-personal" + } + } + + days[dayIndex].Entries = append(days[dayIndex].Entries, entry) } } diff --git a/pages/calendar/calendar.pixy b/pages/calendar/calendar.pixy index e286c24a..f67b3969 100644 --- a/pages/calendar/calendar.pixy +++ b/pages/calendar/calendar.pixy @@ -7,7 +7,7 @@ component Calendar(days []*utils.CalendarDay, user *arn.User) h3.weekday-name.mountable(data-mountable-type=day.Name)= day.Name .calendar-entries each entry in day.Entries - .calendar-entry.mountable(data-mountable-type=day.Name) + div(data-mountable-type=day.Name, class=entry.Class) a.ajax(href=entry.Anime.Link()) .calendar-entry-title= entry.Anime.Title.ByUser(user) .calendar-entry-info diff --git a/pages/calendar/calendar.scarlet b/pages/calendar/calendar.scarlet index 14363294..e3591714 100644 --- a/pages/calendar/calendar.scarlet +++ b/pages/calendar/calendar.scarlet @@ -23,6 +23,9 @@ margin-bottom 0.5rem overflow hidden +.calendar-entry-personal + border 2px solid main-color + .calendar-entry-info horizontal diff --git a/utils/Calendar.go b/utils/Calendar.go index 499bfba2..6817c5ad 100644 --- a/utils/Calendar.go +++ b/utils/Calendar.go @@ -12,4 +12,5 @@ type CalendarDay struct { type CalendarEntry struct { Anime *arn.Anime Episode *arn.AnimeEpisode + Class string }