commit
8a080f1156
@ -2,6 +2,7 @@ package dashboard
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aerogo/aero"
|
"github.com/aerogo/aero"
|
||||||
|
"github.com/aerogo/flow"
|
||||||
"github.com/animenotifier/arn"
|
"github.com/animenotifier/arn"
|
||||||
"github.com/animenotifier/notify.moe/components"
|
"github.com/animenotifier/notify.moe/components"
|
||||||
"github.com/animenotifier/notify.moe/pages/frontpage"
|
"github.com/animenotifier/notify.moe/pages/frontpage"
|
||||||
@ -11,7 +12,6 @@ import (
|
|||||||
const maxPosts = 5
|
const maxPosts = 5
|
||||||
const maxFollowing = 5
|
const maxFollowing = 5
|
||||||
|
|
||||||
// Get dashboard.
|
|
||||||
func Get(ctx *aero.Context) string {
|
func Get(ctx *aero.Context) string {
|
||||||
user := utils.GetUser(ctx)
|
user := utils.GetUser(ctx)
|
||||||
|
|
||||||
@ -19,32 +19,41 @@ func Get(ctx *aero.Context) string {
|
|||||||
return frontpage.Get(ctx)
|
return frontpage.Get(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
posts, err := arn.AllPostsSlice()
|
return Dashboard(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
// Get dashboard.
|
||||||
return ctx.Error(500, "Error fetching posts", err)
|
func Dashboard(ctx *aero.Context) string {
|
||||||
}
|
var posts []*arn.Post
|
||||||
|
var err error
|
||||||
|
var followIDList []string
|
||||||
|
var userList interface{}
|
||||||
|
var followingList []*arn.User
|
||||||
|
user := utils.GetUser(ctx)
|
||||||
|
|
||||||
|
flow.Parallel(func() {
|
||||||
|
posts, err = arn.AllPostsSlice()
|
||||||
arn.SortPostsLatestFirst(posts)
|
arn.SortPostsLatestFirst(posts)
|
||||||
|
|
||||||
if len(posts) > maxPosts {
|
if len(posts) > maxPosts {
|
||||||
posts = posts[:maxPosts]
|
posts = posts[:maxPosts]
|
||||||
}
|
}
|
||||||
|
|
||||||
followIDList := user.Following
|
}, func() {
|
||||||
var followingList []*arn.User
|
followIDList = user.Following
|
||||||
|
userList, err = arn.DB.GetMany("User", followIDList)
|
||||||
|
followingList = userList.([]*arn.User)
|
||||||
|
followingList = arn.SortUsersLastSeen(followingList)
|
||||||
|
|
||||||
if len(followIDList) > maxFollowing {
|
if len(followingList) > maxFollowing {
|
||||||
followIDList = followIDList[:maxFollowing]
|
followingList = followingList[:maxFollowing]
|
||||||
}
|
}
|
||||||
|
|
||||||
userList, err := arn.DB.GetMany("User", followIDList)
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ctx.Error(500, "Error fetching followed users", err)
|
return ctx.Error(500, "Error displaying dashboard", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
followingList = userList.([]*arn.User)
|
|
||||||
|
|
||||||
return ctx.HTML(components.Dashboard(posts, followingList))
|
return ctx.HTML(components.Dashboard(posts, followingList))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user