diff --git a/jobs/refresh-episodes/refresh-episodes.go b/jobs/refresh-episodes/refresh-episodes.go index d7d4f552..7f500693 100644 --- a/jobs/refresh-episodes/refresh-episodes.go +++ b/jobs/refresh-episodes/refresh-episodes.go @@ -24,6 +24,7 @@ func main() { continue } + // The rest gets sorted by airing status switch anime.Status { case "current": highPriority = append(highPriority, anime) diff --git a/patches/fix-airing-dates/fix-airing-dates.go b/patches/fix-airing-dates/fix-airing-dates.go new file mode 100644 index 00000000..9d90af62 --- /dev/null +++ b/patches/fix-airing-dates/fix-airing-dates.go @@ -0,0 +1,44 @@ +package main + +import ( + "fmt" + "time" + + "github.com/animenotifier/arn" + "github.com/fatih/color" +) + +func main() { + now := time.Now() + futureThreshold := 8 * 7 * 24 * time.Hour + + for anime := range arn.MustStreamAnime() { + modified := false + + // Try to find incorrect airing dates + for _, episode := range anime.Episodes().Items { + if episode.AiringDate.Start == "" { + continue + } + + startTime, err := time.Parse(time.RFC3339, episode.AiringDate.Start) + + if err == nil && startTime.Sub(now) < futureThreshold { + continue + } + + // Definitely wrong airing date on this episode + fmt.Printf("%s | %s | Ep %d | %s\n", anime.ID, color.YellowString(anime.Title.Canonical), episode.Number, episode.AiringDate.Start) + + // Delete the wrong airing date + episode.AiringDate.Start = "" + episode.AiringDate.End = "" + + modified = true + } + + if modified == true { + arn.PanicOnError(anime.Episodes().Save()) + } + } +}