Improved dashboard performance

This commit is contained in:
2017-06-29 20:52:30 +02:00
parent f4703fdd5f
commit dca96b317e
6 changed files with 60 additions and 27 deletions

View File

@ -29,8 +29,7 @@ func Get(ctx *aero.Context) string {
// Render the dashboard.
func dashboard(ctx *aero.Context) string {
var forumPosts []arn.Postable
var forumThreads []arn.Postable
var forumActivity []arn.Postable
var userList interface{}
var followingList []*arn.User
var soundTracks []*arn.SoundTrack
@ -39,21 +38,7 @@ func dashboard(ctx *aero.Context) string {
user := utils.GetUser(ctx)
flow.Parallel(func() {
posts, err := arn.AllPosts()
if err != nil {
return
}
forumPosts = arn.ToPostables(posts)
}, func() {
threads, err := arn.AllThreads()
if err != nil {
return
}
forumThreads = arn.ToPostables(threads)
forumActivity, _ = arn.GetForumActivityCached()
}, func() {
animeList, err := arn.GetAnimeList(user)
@ -121,13 +106,5 @@ func dashboard(ctx *aero.Context) string {
}
})
forumActivity := append(forumPosts, forumThreads...)
sort.Slice(forumActivity, func(i, j int) bool {
return forumActivity[i].Created() > forumActivity[j].Created()
})
forumActivity = arn.FilterPostablesWithUniqueThreads(forumActivity, maxPosts)
return ctx.HTML(components.Dashboard(upcomingEpisodes, forumActivity, soundTracks, followingList))
}