Improved user lists
This commit is contained in:
@ -6,6 +6,7 @@ import (
|
||||
"github.com/aerogo/aero"
|
||||
"github.com/animenotifier/arn"
|
||||
"github.com/animenotifier/notify.moe/components"
|
||||
"github.com/animenotifier/notify.moe/utils"
|
||||
)
|
||||
|
||||
// Active ...
|
||||
@ -21,6 +22,14 @@ func Active(ctx *aero.Context) string {
|
||||
}
|
||||
|
||||
sort.Slice(users, func(i, j int) bool {
|
||||
if users[i].HasAvatar() != users[j].HasAvatar() {
|
||||
if users[i].HasAvatar() {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
followersA := followCount[users[i]]
|
||||
followersB := followCount[users[j]]
|
||||
|
||||
@ -31,7 +40,39 @@ func Active(ctx *aero.Context) string {
|
||||
return followersA > followersB
|
||||
})
|
||||
|
||||
// arn.SortUsersLastSeen(users)
|
||||
return ctx.HTML(components.Users(users))
|
||||
}
|
||||
|
||||
// ActiveNoAvatar ...
|
||||
func ActiveNoAvatar(ctx *aero.Context) string {
|
||||
users := arn.FilterUsers(func(user *arn.User) bool {
|
||||
return user.IsActive() && !user.HasAvatar()
|
||||
})
|
||||
|
||||
followCount := map[*arn.User]int{}
|
||||
|
||||
for _, user := range users {
|
||||
followCount[user] = user.FollowersCount()
|
||||
}
|
||||
|
||||
sort.Slice(users, func(i, j int) bool {
|
||||
if users[i].HasAvatar() != users[j].HasAvatar() {
|
||||
if users[i].HasAvatar() {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
followersA := followCount[users[i]]
|
||||
followersB := followCount[users[j]]
|
||||
|
||||
if followersA == followersB {
|
||||
return users[i].Nick < users[j].Nick
|
||||
}
|
||||
|
||||
return followersA > followersB
|
||||
})
|
||||
|
||||
return ctx.HTML(components.Users(users))
|
||||
}
|
||||
@ -54,23 +95,74 @@ func Osu(ctx *aero.Context) string {
|
||||
return ctx.HTML(components.OsuRankingList(users))
|
||||
}
|
||||
|
||||
// Overwatch ...
|
||||
func Overwatch(ctx *aero.Context) string {
|
||||
users := arn.FilterUsers(func(user *arn.User) bool {
|
||||
return user.IsActive() && user.HasAvatar() && user.Accounts.Overwatch.SkillRating > 0
|
||||
})
|
||||
|
||||
// Sort by Skill Ratings
|
||||
sort.Slice(users, func(i, j int) bool {
|
||||
return users[i].Accounts.Overwatch.SkillRating > users[j].Accounts.Overwatch.SkillRating
|
||||
})
|
||||
|
||||
if len(users) > 50 {
|
||||
users = users[:50]
|
||||
}
|
||||
|
||||
return ctx.HTML(components.OverwatchRankingList(users))
|
||||
}
|
||||
|
||||
// Staff ...
|
||||
func Staff(ctx *aero.Context) string {
|
||||
users := arn.FilterUsers(func(user *arn.User) bool {
|
||||
return user.IsActive() && user.HasAvatar() && user.Role != ""
|
||||
})
|
||||
|
||||
// Make order deterministic
|
||||
sort.Slice(users, func(i, j int) bool {
|
||||
if users[i].Role == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
if users[j].Role == "" {
|
||||
return true
|
||||
}
|
||||
|
||||
return users[i].Role == "admin"
|
||||
return users[i].Nick < users[j].Nick
|
||||
})
|
||||
|
||||
return ctx.HTML(components.Users(users))
|
||||
admins := &utils.UserList{
|
||||
Name: "Developer",
|
||||
Users: []*arn.User{},
|
||||
}
|
||||
|
||||
contributors := &utils.UserList{
|
||||
Name: "Contributors",
|
||||
Users: []*arn.User{},
|
||||
}
|
||||
|
||||
// contributors.Users = append(contributors.Users, )
|
||||
|
||||
editors := &utils.UserList{
|
||||
Name: "Editors",
|
||||
Users: []*arn.User{},
|
||||
}
|
||||
|
||||
for _, user := range users {
|
||||
if user.Role == "admin" {
|
||||
admins.Users = append(admins.Users, user)
|
||||
continue
|
||||
}
|
||||
|
||||
if user.ID == "VJOK1ckvx" || user.ID == "SUQOAFFkR" {
|
||||
contributors.Users = append(contributors.Users, user)
|
||||
continue
|
||||
}
|
||||
|
||||
if user.Role == "editor" {
|
||||
editors.Users = append(editors.Users, user)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
userLists := []*utils.UserList{
|
||||
admins,
|
||||
contributors,
|
||||
editors,
|
||||
}
|
||||
|
||||
return ctx.HTML(components.UserLists(userLists))
|
||||
}
|
||||
|
Reference in New Issue
Block a user