From a94b69d671e8052099e9bb349b472cbd1b6dd94c Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Wed, 5 Jul 2017 14:34:33 +0200 Subject: [PATCH] Explicit PrefetchAnime call --- benchmarks/Components_test.go | 1 + pages/animelist/animelist.go | 1 + pages/dashboard/dashboard.go | 17 ++--------------- pages/embed/embed.go | 1 + pages/profile/profile.go | 1 + 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/benchmarks/Components_test.go b/benchmarks/Components_test.go index eb01f210..514a1ac7 100644 --- a/benchmarks/Components_test.go +++ b/benchmarks/Components_test.go @@ -29,6 +29,7 @@ func BenchmarkRenderThread(b *testing.B) { func BenchmarkRenderAnimeList(b *testing.B) { user, _ := arn.GetUser("4J6qpK1ve") animeList := user.AnimeList() + animeList.PrefetchAnime() b.ReportAllocs() b.ResetTimer() diff --git a/pages/animelist/animelist.go b/pages/animelist/animelist.go index e404d300..3f9df413 100644 --- a/pages/animelist/animelist.go +++ b/pages/animelist/animelist.go @@ -25,6 +25,7 @@ func Get(ctx *aero.Context) string { return ctx.Error(http.StatusNotFound, "Anime list not found", nil) } + animeList.PrefetchAnime() animeList.Sort() return ctx.HTML(components.AnimeLists(animeList.SplitByStatus(), animeList.User(), user)) diff --git a/pages/dashboard/dashboard.go b/pages/dashboard/dashboard.go index cdb780a3..31f554ce 100644 --- a/pages/dashboard/dashboard.go +++ b/pages/dashboard/dashboard.go @@ -47,27 +47,14 @@ func dashboard(ctx *aero.Context) string { } animeList = animeList.WatchingAndPlanned() - - var keys []string + animeList.PrefetchAnime() for _, item := range animeList.Items { - keys = append(keys, item.AnimeID) - } - - objects, getErr := arn.DB.GetMany("Anime", keys) - - if getErr != nil { - return - } - - allAnimeInList := objects.([]*arn.Anime) - - for _, anime := range allAnimeInList { if len(upcomingEpisodes) >= maxScheduleItems { break } - futureEpisodes := anime.UpcomingEpisodes() + futureEpisodes := item.Anime().UpcomingEpisodes() if len(futureEpisodes) == 0 { continue diff --git a/pages/embed/embed.go b/pages/embed/embed.go index 7a3ffd57..d191de48 100644 --- a/pages/embed/embed.go +++ b/pages/embed/embed.go @@ -23,6 +23,7 @@ func Get(ctx *aero.Context) string { } watchingList := animeList.WatchingAndPlanned() + watchingList.PrefetchAnime() watchingList.Sort() return utils.AllowEmbed(ctx, ctx.HTML(components.AnimeList(watchingList, animeList.User(), user))) diff --git a/pages/profile/profile.go b/pages/profile/profile.go index e54912cd..a06deee9 100644 --- a/pages/profile/profile.go +++ b/pages/profile/profile.go @@ -35,6 +35,7 @@ func Profile(ctx *aero.Context, viewUser *arn.User) string { user = utils.GetUser(ctx) }, func() { animeList = viewUser.AnimeList() + animeList.PrefetchAnime() }) return ctx.HTML(components.Profile(viewUser, user, animeList, threads, posts, tracks))