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))
}

View File

@ -38,7 +38,7 @@ func Profile(ctx *aero.Context, viewUser *arn.User) string {
}, func() {
threads = viewUser.Threads()
arn.SortThreadsByDate(threads)
arn.SortThreadsLatestFirst(threads)
if len(threads) > maxPosts {
threads = threads[:maxPosts]

View File

@ -18,7 +18,7 @@ func GetThreadsByUser(ctx *aero.Context) string {
}
threads := user.Threads()
arn.SortThreadsByDate(threads)
arn.SortThreadsLatestFirst(threads)
return ctx.HTML(components.ThreadList(threads))
}