See friends who liked a character
This commit is contained in:
parent
e8062017b5
commit
290c18b8b9
@ -67,5 +67,18 @@ func Get(ctx *aero.Context) string {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctx.HTML(components.CharacterDetails(character, characterAnime, quotes, mainQuote, user))
|
// Friends
|
||||||
|
friendIDs := utils.Intersection(character.Likes, user.Follows().Items)
|
||||||
|
friendObjects := arn.DB.GetMany("User", friendIDs)
|
||||||
|
friends := []*arn.User{}
|
||||||
|
|
||||||
|
for _, obj := range friendObjects {
|
||||||
|
if obj == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
friends = append(friends, obj.(*arn.User))
|
||||||
|
}
|
||||||
|
|
||||||
|
return ctx.HTML(components.CharacterDetails(character, characterAnime, quotes, friends, mainQuote, user))
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ component CharacterTabs(character *arn.Character, user *arn.User)
|
|||||||
Tab("Edit", "pencil", character.Link() + "/edit")
|
Tab("Edit", "pencil", character.Link() + "/edit")
|
||||||
Tab("History", "history", character.Link() + "/history")
|
Tab("History", "history", character.Link() + "/history")
|
||||||
|
|
||||||
component CharacterDetails(character *arn.Character, characterAnime []*arn.Anime, quotes []*arn.Quote, mainQuote *arn.Quote, user *arn.User)
|
component CharacterDetails(character *arn.Character, characterAnime []*arn.Anime, quotes []*arn.Quote, friends []*arn.User, mainQuote *arn.Quote, user *arn.User)
|
||||||
.character-page
|
.character-page
|
||||||
.character-left-column
|
.character-left-column
|
||||||
.character-header
|
.character-header
|
||||||
@ -66,6 +66,19 @@ component CharacterDetails(character *arn.Character, characterAnime []*arn.Anime
|
|||||||
else
|
else
|
||||||
td.character-attributes-value= attribute.Value
|
td.character-attributes-value= attribute.Value
|
||||||
|
|
||||||
|
if len(friends) > 0
|
||||||
|
.character-friends
|
||||||
|
h3.mountable Friends
|
||||||
|
|
||||||
|
.user-avatars.mountable
|
||||||
|
each friend in friends
|
||||||
|
.mountable(data-mountable-type="friend")
|
||||||
|
if friend.IsActive()
|
||||||
|
Avatar(friend)
|
||||||
|
else
|
||||||
|
.inactive-user
|
||||||
|
Avatar(friend)
|
||||||
|
|
||||||
if character.GetMapping("myanimelist/character") != ""
|
if character.GetMapping("myanimelist/character") != ""
|
||||||
h3.mountable Links
|
h3.mountable Links
|
||||||
|
|
||||||
@ -77,4 +90,3 @@ component CharacterDetails(character *arn.Character, characterAnime []*arn.Anime
|
|||||||
a.light-button(href="/api" + character.Link(), target="_blank")
|
a.light-button(href="/api" + character.Link(), target="_blank")
|
||||||
Icon("code")
|
Icon("code")
|
||||||
span API
|
span API
|
||||||
|
|
||||||
|
@ -56,6 +56,10 @@
|
|||||||
.quote-footer
|
.quote-footer
|
||||||
display none
|
display none
|
||||||
|
|
||||||
|
.character-friends
|
||||||
|
.user-avatars
|
||||||
|
justify-content flex-start
|
||||||
|
|
||||||
> 1250px
|
> 1250px
|
||||||
.character-page
|
.character-page
|
||||||
horizontal
|
horizontal
|
||||||
|
16
utils/Intersection.go
Normal file
16
utils/Intersection.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import "github.com/animenotifier/arn"
|
||||||
|
|
||||||
|
// Intersection returns common elements of a and b.
|
||||||
|
func Intersection(a []string, b []string) []string {
|
||||||
|
var c []string
|
||||||
|
|
||||||
|
for _, obj := range a {
|
||||||
|
if arn.Contains(b, obj) {
|
||||||
|
c = append(c, obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return c
|
||||||
|
}
|
@ -6,6 +6,10 @@ var routeTests = map[string][]string{
|
|||||||
"/+Akyoto",
|
"/+Akyoto",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"/user/:nick/characters/liked": []string{
|
||||||
|
"/+Akyoto/characters/liked",
|
||||||
|
},
|
||||||
|
|
||||||
"/user/:nick/forum/threads": []string{
|
"/user/:nick/forum/threads": []string{
|
||||||
"/+Akyoto/forum/threads",
|
"/+Akyoto/forum/threads",
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user