diff --git a/patches/fix-broken-relations/fix-broken-relations.go b/patches/fix-broken-relations/fix-broken-relations.go new file mode 100644 index 00000000..dfd55cf8 --- /dev/null +++ b/patches/fix-broken-relations/fix-broken-relations.go @@ -0,0 +1,35 @@ +package main + +import ( + "github.com/animenotifier/arn" + "github.com/fatih/color" +) + +func main() { + color.Yellow("Fixing broken anime relations") + + defer arn.Node.Close() + + count := 0 + + for relations := range arn.StreamAnimeRelations() { + brokenIDs := []string{} + + for _, item := range relations.Items { + _, err := arn.GetAnime(item.AnimeID) + + if err != nil { + brokenIDs = append(brokenIDs, item.AnimeID) + } + } + + for _, brokenID := range brokenIDs { + relations.Remove(brokenID) + count++ + } + + relations.Save() + } + + color.Green("Finished removing %d broken relations.", count) +}