From 011ca84bd0feae0e5eea36b4d2d8b6942e330729 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Tue, 17 Oct 2017 15:47:07 +0200 Subject: [PATCH] Save anime relations --- .../sync-media-relations.go | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/jobs/sync-media-relations/sync-media-relations.go b/jobs/sync-media-relations/sync-media-relations.go index 49b5ee33..bd7a5ecd 100644 --- a/jobs/sync-media-relations/sync-media-relations.go +++ b/jobs/sync-media-relations/sync-media-relations.go @@ -4,6 +4,8 @@ import ( "fmt" "strings" + "github.com/animenotifier/arn" + "github.com/animenotifier/kitsu" "github.com/fatih/color" ) @@ -12,6 +14,7 @@ func main() { color.Yellow("Syncing media relations with Kitsu DB") kitsuMediaRelations := kitsu.StreamMediaRelations() + relations := map[arn.AnimeID]*arn.AnimeRelations{} for mediaRelation := range kitsuMediaRelations { // We only care about anime for now @@ -20,15 +23,45 @@ func main() { } relationType := strings.Replace(mediaRelation.Attributes.Role, "_", " ", -1) + animeID := mediaRelation.Relationships.Source.Data.ID + destinationAnimeID := mediaRelation.Relationships.Destination.Data.ID fmt.Printf( - "%s %s has a %s which is %s %s\n", + "%s %s has %s which is %s %s\n", mediaRelation.Relationships.Source.Data.Type, - mediaRelation.Relationships.Source.Data.ID, + animeID, color.GreenString(relationType), mediaRelation.Relationships.Destination.Data.Type, - mediaRelation.Relationships.Destination.Data.ID, + destinationAnimeID, ) + + relationsList, found := relations[animeID] + + if !found { + relationsList = &arn.AnimeRelations{ + AnimeID: animeID, + Items: []*arn.AnimeRelation{}, + } + relations[animeID] = relationsList + } + + relationsList.Items = append(relationsList.Items, &arn.AnimeRelation{ + AnimeID: destinationAnimeID, + Type: relationType, + }) + + // for _, item := range relationsList.Items { + // fmt.Println("*", item.Type, item.AnimeID) + // } + } + + // Save relations map + for _, animeRelations := range relations { + err := animeRelations.Save() + + if err != nil { + color.Red(err.Error()) + } } color.Green("Finished.")