Added recommendations view to the UI

This commit is contained in:
Eduard Urbach 2018-02-24 15:35:34 +01:00
parent b9f8cfc79e
commit d4d7294f4e
3 changed files with 15 additions and 15 deletions

View File

@ -10,9 +10,13 @@ component Profile(viewUser *arn.User, user *arn.User, animeList *arn.AnimeList,
a.profile-watching-list-item.ajax(href=item.Anime().Link(), title=item.Anime().Title.ByUser(user) + " (" + toString(item.Episodes) + " / " + arn.EpisodesToString(item.Anime().EpisodeCount) + ")") a.profile-watching-list-item.ajax(href=item.Anime().Link(), title=item.Anime().Title.ByUser(user) + " (" + toString(item.Episodes) + " / " + arn.EpisodesToString(item.Anime().EpisodeCount) + ")")
img.profile-watching-list-item-image.lazy(data-src=item.Anime().Image("small"), data-webp="true", alt=item.Anime().Title.ByUser(user)) img.profile-watching-list-item-image.lazy(data-src=item.Anime().Image("small"), data-webp="true", alt=item.Anime().Title.ByUser(user))
if user != nil && (user.Role == "admin" || user.Role == "editor") .footer
.footer .buttons
.buttons a.button.profile-action.ajax(href="/+" + viewUser.Nick + "/recommended/anime")
Icon("tv")
span View recommendations
if user != nil && (user.Role == "admin" || user.Role == "editor")
a.button.profile-action(href="/api/user/" + viewUser.ID, target="_blank", rel="noopener") a.button.profile-action(href="/api/user/" + viewUser.ID, target="_blank", rel="noopener")
Icon("search-plus") Icon("search-plus")
span JSON span JSON

View File

@ -1,13 +1,13 @@
package recommended package recommended
import ( import (
"fmt"
"net/http" "net/http"
"sort" "sort"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"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/utils"
) )
const ( const (
@ -17,14 +17,15 @@ const (
// Anime shows a list of recommended anime. // Anime shows a list of recommended anime.
func Anime(ctx *aero.Context) string { func Anime(ctx *aero.Context) string {
user := utils.GetUser(ctx)
nick := ctx.Get("nick") nick := ctx.Get("nick")
user, err := arn.GetUserByNick(nick) viewUser, err := arn.GetUserByNick(nick)
if err != nil { if err != nil {
return ctx.Error(http.StatusUnauthorized, "Not logged in", err) return ctx.Error(http.StatusUnauthorized, "Not logged in", err)
} }
animeList := user.AnimeList() animeList := viewUser.AnimeList()
genreItems := animeList.Genres() genreItems := animeList.Genres()
genreAffinity := map[string]float64{} genreAffinity := map[string]float64{}
worstGenres := []string{} worstGenres := []string{}
@ -57,8 +58,6 @@ func Anime(ctx *aero.Context) string {
worstGenres = worstGenres[:worstGenreCount] worstGenres = worstGenres[:worstGenreCount]
} }
fmt.Println(worstGenres)
// Get all anime // Get all anime
recommendations := arn.AllAnime() recommendations := arn.AllAnime()
@ -121,5 +120,5 @@ func Anime(ctx *aero.Context) string {
recommendations = recommendations[:maxRecommendations] recommendations = recommendations[:maxRecommendations]
} }
return ctx.HTML(components.RecommendedAnime(recommendations, user)) return ctx.HTML(components.RecommendedAnime(recommendations, worstGenres, viewUser, user))
} }

View File

@ -1,7 +1,4 @@
component RecommendedAnime(animes []*arn.Anime, user *arn.User) component RecommendedAnime(animes []*arn.Anime, worstGenres []string, viewUser *arn.User, user *arn.User)
h1= "Recommended anime for " + user.Nick h1(title="This is a machine-generated list of anime recommendations.")= "Recommended anime for " + viewUser.Nick
AnimeGrid(animes, user) AnimeGrid(animes, user)
//- ul
//- each anime in animes
//- li= anime.Title.Canonical