diff --git a/jobs/refresh-osu/refresh-osu.go b/jobs/refresh-osu/refresh-osu.go index e2ac7d19..10568a66 100644 --- a/jobs/refresh-osu/refresh-osu.go +++ b/jobs/refresh-osu/refresh-osu.go @@ -12,11 +12,17 @@ func main() { ticker := time.NewTicker(500 * time.Millisecond) - for user := range arn.MustStreamUsers() { + allUsers, _ := arn.AllUsers() + + for _, user := range allUsers { // Get osu info if user.RefreshOsuInfo() == nil { arn.PrettyPrint(user.Accounts.Osu) - user.Save() + + // Fetch user again to prevent writing old data + updatedUser, _ := arn.GetUser(user.ID) + updatedUser.Accounts.Osu = user.Accounts.Osu + updatedUser.Save() } // Wait for rate limiter diff --git a/mixins/SoundTrack.pixy b/mixins/SoundTrack.pixy index 2494b28a..fa96421a 100644 --- a/mixins/SoundTrack.pixy +++ b/mixins/SoundTrack.pixy @@ -27,7 +27,7 @@ component SoundTrackFooter(track *arn.SoundTrack) span posted span.utc-date(data-date=track.Created) span by - a.ajax(href=track.CreatedByUser().Link())= track.CreatedByUser().Nick + " " + a.ajax(href=track.Creator().Link())= track.Creator().Nick + " " component ExternalMedia(media *arn.ExternalMedia) iframe.lazy(data-src=media.EmbedLink(), allowfullscreen="allowfullscreen") \ No newline at end of file diff --git a/pages/groups/groups.go b/pages/groups/groups.go index eb364d9d..04082165 100644 --- a/pages/groups/groups.go +++ b/pages/groups/groups.go @@ -2,6 +2,7 @@ package groups import ( "net/http" + "sort" "github.com/aerogo/aero" "github.com/animenotifier/arn" @@ -9,6 +10,8 @@ import ( "github.com/animenotifier/notify.moe/utils" ) +const groupsPerPage = 12 + // Get ... func Get(ctx *aero.Context) string { user := utils.GetUser(ctx) @@ -17,9 +20,21 @@ func Get(ctx *aero.Context) string { return !group.IsDraft }) + sort.Slice(groups, func(i, j int) bool { + if len(groups[i].Members) == len(groups[j].Members) { + return groups[i].Created > groups[j].Created + } + + return len(groups[i].Members) > len(groups[j].Members) + }) + + if len(groups) > groupsPerPage { + groups = groups[:groupsPerPage] + } + if err != nil { return ctx.Error(http.StatusInternalServerError, "Error fetching groups", err) } - return ctx.HTML(components.Groups(groups, user)) + return ctx.HTML(components.Groups(groups, groupsPerPage, user)) } diff --git a/pages/groups/groups.pixy b/pages/groups/groups.pixy index d1c49e6f..de4c9e74 100644 --- a/pages/groups/groups.pixy +++ b/pages/groups/groups.pixy @@ -1,4 +1,4 @@ -component Groups(groups []*arn.Group, user *arn.User) +component Groups(groups []*arn.Group, groupsPerPage int, user *arn.User) .tabs Tab("Groups", "users", "/groups") @@ -15,11 +15,17 @@ component Groups(groups []*arn.Group, user *arn.User) Icon("pencil") span Edit draft - .groups + #load-more-target.groups each group in groups - .group - h3.group-name= group.Name - .group-tagline= group.Tagline - .group-member-count - Icon("user") - span= len(group.Members) \ No newline at end of file + a.group.mountable.ajax(href=group.Link()) + img.group-image.lazy(data-src=group.ImageURL(), alt=group.Name) + .group-info + h3.group-name= group.Name + .group-tagline= group.Tagline + .group-member-count + Icon("user") + span= len(group.Members) + + if len(groups) == groupsPerPage + .buttons + LoadMore(groupsPerPage) \ No newline at end of file diff --git a/pages/groups/groups.scarlet b/pages/groups/groups.scarlet index ec9a5d90..15f9184d 100644 --- a/pages/groups/groups.scarlet +++ b/pages/groups/groups.scarlet @@ -1,15 +1,32 @@ +group-padding-y = 0.75rem +group-padding-x = 0.75rem + .groups horizontal-wrap justify-content space-around .group - vertical + horizontal ui-element position relative width 100% - max-width 500px - padding 0.5rem 1rem + max-width 520px + padding group-padding-y group-padding-x margin calc(content-padding / 2) + color text-color + + :hover + color white + background-color rgb(60, 60, 60) + +.group-image + width 70px + height 70px + margin-right 1rem + border-radius ui-element-border-radius + +.group-info + vertical .group-name horizontal diff --git a/pages/soundtrack/soundtrack.pixy b/pages/soundtrack/soundtrack.pixy index cbf7f071..b695b439 100644 --- a/pages/soundtrack/soundtrack.pixy +++ b/pages/soundtrack/soundtrack.pixy @@ -38,7 +38,7 @@ component Track(track *arn.SoundTrack) span Posted span.utc-date(data-date=track.Created) span by - span= track.CreatedByUser().Nick + span= track.Creator().Nick span . diff --git a/styles/include/config.scarlet b/styles/include/config.scarlet index 0da623d1..3e60fc87 100644 --- a/styles/include/config.scarlet +++ b/styles/include/config.scarlet @@ -17,6 +17,7 @@ ui-background = rgb(254, 254, 254) // ui-background = linear-gradient(to bottom, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.037) 100%) // ui-hover-background = linear-gradient(to bottom, rgba(0, 0, 0, 0.01) 0%, rgba(0, 0, 0, 0.027) 100%) ui-disabled-color = rgb(224, 224, 224) +ui-element-border-radius = 3px // Input input-focus-border-color = rgb(248, 165, 130) diff --git a/styles/include/mixins.scarlet b/styles/include/mixins.scarlet index 1249b597..19d133db 100644 --- a/styles/include/mixins.scarlet +++ b/styles/include/mixins.scarlet @@ -26,7 +26,7 @@ mixin noise-strong mixin ui-element border 1px solid ui-border-color background ui-background - border-radius 3px + border-radius ui-element-border-radius default-transition :hover border-color ui-hover-border-color