Added user lists by country
This commit is contained in:
parent
57297c7de2
commit
de8fec3114
@ -17,4 +17,5 @@ func Register(l *layout.Layout) {
|
|||||||
l.Page("/users/staff", users.Staff)
|
l.Page("/users/staff", users.Staff)
|
||||||
l.Page("/users/pro", users.Pro)
|
l.Page("/users/pro", users.Pro)
|
||||||
l.Page("/users/editors", users.Editors)
|
l.Page("/users/editors", users.Editors)
|
||||||
|
l.Page("/users/country/:country", users.ByCountry)
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ component ProfileHead(viewUser *arn.User, user *arn.User, uri string)
|
|||||||
span= viewUser.AgeInYears()
|
span= viewUser.AgeInYears()
|
||||||
|
|
||||||
if user != nil && viewUser.Settings().Privacy.ShowLocation && viewUser.Location.CountryName != ""
|
if user != nil && viewUser.Settings().Privacy.ShowLocation && viewUser.Location.CountryName != ""
|
||||||
.profile-tag.mountable.never-unmount(data-mountable-type="header")
|
a.profile-tag.mountable.never-unmount(href="/users/country/" + strings.ToLower(viewUser.Location.CountryName), data-mountable-type="header")
|
||||||
Icon("map-marker")
|
Icon("map-marker")
|
||||||
span= viewUser.Location.CountryName
|
span= viewUser.Location.CountryName
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package users
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/aerogo/aero"
|
"github.com/aerogo/aero"
|
||||||
"github.com/animenotifier/arn"
|
"github.com/animenotifier/arn"
|
||||||
@ -15,23 +16,7 @@ func Active(ctx *aero.Context) string {
|
|||||||
return user.HasAvatar() && user.HasNick() && user.IsActive()
|
return user.HasAvatar() && user.HasNick() && user.IsActive()
|
||||||
})
|
})
|
||||||
|
|
||||||
followCount := arn.UserFollowerCountMap()
|
arn.SortUsersFollowers(users)
|
||||||
|
|
||||||
sort.Slice(users, func(i, j int) bool {
|
|
||||||
if users[i].HasAvatar() != users[j].HasAvatar() {
|
|
||||||
return users[i].HasAvatar()
|
|
||||||
}
|
|
||||||
|
|
||||||
followersA := followCount[users[i].ID]
|
|
||||||
followersB := followCount[users[j].ID]
|
|
||||||
|
|
||||||
if followersA == followersB {
|
|
||||||
return users[i].Nick < users[j].Nick
|
|
||||||
}
|
|
||||||
|
|
||||||
return followersA > followersB
|
|
||||||
})
|
|
||||||
|
|
||||||
return ctx.HTML(components.Users(users, ctx.URI()))
|
return ctx.HTML(components.Users(users, ctx.URI()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,6 +156,18 @@ func FFXIV(ctx *aero.Context) string {
|
|||||||
return ctx.HTML(components.FinalFantasyXIVRankingList(users, ctx.URI()))
|
return ctx.HTML(components.FinalFantasyXIVRankingList(users, ctx.URI()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ByCountry ...
|
||||||
|
func ByCountry(ctx *aero.Context) string {
|
||||||
|
countryName := ctx.Get("country")
|
||||||
|
|
||||||
|
users := arn.FilterUsers(func(user *arn.User) bool {
|
||||||
|
return strings.ToLower(user.Location.CountryName) == countryName && user.Settings().Privacy.ShowLocation && user.HasAvatar() && user.HasNick() && user.IsActive()
|
||||||
|
})
|
||||||
|
|
||||||
|
arn.SortUsersFollowers(users)
|
||||||
|
return ctx.HTML(components.UsersByCountry(users, countryName))
|
||||||
|
}
|
||||||
|
|
||||||
// Staff ...
|
// Staff ...
|
||||||
func Staff(ctx *aero.Context) string {
|
func Staff(ctx *aero.Context) string {
|
||||||
users := arn.FilterUsers(func(user *arn.User) bool {
|
users := arn.FilterUsers(func(user *arn.User) bool {
|
||||||
|
@ -6,6 +6,16 @@ component Users(users []*arn.User, url string)
|
|||||||
each user in users
|
each user in users
|
||||||
Avatar(user)
|
Avatar(user)
|
||||||
|
|
||||||
|
component UsersByCountry(users []*arn.User, countryName string)
|
||||||
|
if len(users) == 0
|
||||||
|
p.no-data.mountable= "Seems like there are no users in " + stringutils.Capitalize(countryName)
|
||||||
|
else
|
||||||
|
h1= "Users in " + users[0].Location.CountryName
|
||||||
|
|
||||||
|
.user-avatars.mountable
|
||||||
|
each user in users
|
||||||
|
Avatar(user)
|
||||||
|
|
||||||
component ProUsers(users []*arn.User, url string)
|
component ProUsers(users []*arn.User, url string)
|
||||||
h1.page-title Supporters
|
h1.page-title Supporters
|
||||||
UsersTabs(url)
|
UsersTabs(url)
|
||||||
|
@ -106,6 +106,10 @@ var routeTests = map[string][]string{
|
|||||||
"/+Akyoto/recommended/anime",
|
"/+Akyoto/recommended/anime",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"/users/country/:country": []string{
|
||||||
|
"/users/country/japan",
|
||||||
|
},
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
"/anime/:id": []string{
|
"/anime/:id": []string{
|
||||||
"/anime/74y2cFiiR",
|
"/anime/74y2cFiiR",
|
||||||
|
Loading…
Reference in New Issue
Block a user