Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

Commit

Permalink
💄 Made the anime sort algo selectable from explore page
Browse files Browse the repository at this point in the history
  • Loading branch information
Soulcramer committed Feb 7, 2019
1 parent 515f4a1 commit 94b8abe
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pages/editor/editor.pixy
Original file line number Diff line number Diff line change
Expand Up @@ -99,5 +99,5 @@ component EditorTabs(url string, user *arn.User)
if strings.Contains(url, "/editor/anime/") || strings.Contains(url, "/editor/mal/diff/anime")
.editor-filters
#filter-root(data-url=url)
ExploreFilters(user.Settings().Editor.Filter.Year, user.Settings().Editor.Filter.Season, user.Settings().Editor.Filter.Status, user.Settings().Editor.Filter.Type, true)
ExploreFilters(user.Settings().Editor.Filter.Year, user.Settings().Editor.Filter.Season, user.Settings().Editor.Filter.Status, user.Settings().Editor.Filter.Type, user.Settings().Editor.Filter.Sort, true)

13 changes: 9 additions & 4 deletions pages/explore/explore.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ func Filter(ctx *aero.Context) string {
season := ctx.Get("season")
status := ctx.Get("status")
typ := ctx.Get("type")
sort := ctx.Get("sort")
user := utils.GetUser(ctx)
now := time.Now()

Expand All @@ -35,7 +36,7 @@ func Filter(ctx *aero.Context) string {
typ = "tv"
}

results := filterAnime(year, season, status, typ)
results := filterAnime(year, season, status, typ, sort, user)

if year == "any" {
year = ""
Expand All @@ -53,10 +54,14 @@ func Filter(ctx *aero.Context) string {
typ = ""
}

return ctx.HTML(components.ExploreAnime(results, year, season, status, typ, user))
if sort == "Popularity" {
sort = ""
}

return ctx.HTML(components.ExploreAnime(results, year, season, status, typ, sort, user))
}

func filterAnime(year, season, status, typ string) []*arn.Anime {
func filterAnime(year, season, status, typ string, sortAlgo string, user *arn.User) []*arn.Anime {
var results []*arn.Anime

for anime := range arn.StreamAnime() {
Expand Down Expand Up @@ -85,6 +90,6 @@ func filterAnime(year, season, status, typ string) []*arn.Anime {
results = append(results, anime)
}

arn.SortAnimeByQualityDetailed(results, status)
arn.SortAnimeWithAlgo(results, status, sortAlgo, user)
return results
}
18 changes: 14 additions & 4 deletions pages/explore/explore.pixy
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
component ExploreAnime(animes []*arn.Anime, year string, season string, status string, typ string, user *arn.User)
component ExploreAnime(animes []*arn.Anime, year string, season string, status string, typ string, sort string, user *arn.User)
#filter-root(data-url="/explore/anime")
ExploreFilters(year, season, status, typ, false)
ExploreFilters(year, season, status, typ, sort, false)

.corner-buttons-hide-on-mobile
if user != nil
Expand Down Expand Up @@ -30,7 +30,7 @@ component ExploreAnime(animes []*arn.Anime, year string, season string, status s
else
AnimeGrid(animes, user)

component ExploreFilters(year string, season string, status string, typ string, advancedFilters bool)
component ExploreFilters(year string, season string, status string, typ string, sort string, advancedFilters bool)
.explore-filters
.filter-select-container
select#filter-year.filter-select.action(value=year, data-action="filterAnime", data-trigger="change")
Expand Down Expand Up @@ -76,4 +76,14 @@ component ExploreFilters(year string, season string, status string, typ string,
if advancedFilters
option(value="music") Music

.filter-label Type
.filter-label Type

.filter-select-container
select#sort.filter-select.action(value=sort, data-action="filterAnime", data-trigger="change")
option.option-any(value="") Popularity
option(value="Title") Title
option(value="StartDate") Start date
option(value="EpisodeCount") Episode count
option(value="EpisodeLength") Episode length

.filter-label Order By
2 changes: 1 addition & 1 deletion pages/index/exploreroutes/exploreroutes.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
func Register(l *layout.Layout) {
// Explore
l.Page("/explore", explore.Filter)
l.Page("/explore/anime/:year/:season/:status/:type", explore.Filter)
l.Page("/explore/anime/:year/:season/:status/:type/:sort", explore.Filter)
l.Page("/explore/color/:color/anime", explorecolor.AnimeByAverageColor)
l.Page("/explore/color/:color/anime/from/:index", explorecolor.AnimeByAverageColor)
l.Page("/halloffame", halloffame.Get)
Expand Down
4 changes: 3 additions & 1 deletion scripts/Actions/Explore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export function filterAnime(arn: AnimeNotifier, input: HTMLInputElement) {
let elementSeason = document.getElementById("filter-season") as HTMLSelectElement
let elementStatus = document.getElementById("filter-status") as HTMLSelectElement
let elementType = document.getElementById("filter-type") as HTMLSelectElement
let elementSort = document.getElementById("sort") as HTMLSelectElement

for(let element of findAll("anime-grid-image")) {
let img = element as HTMLImageElement
Expand All @@ -21,8 +22,9 @@ export function filterAnime(arn: AnimeNotifier, input: HTMLInputElement) {
let season = elementSeason.value || "any"
let status = elementStatus.value || "any"
let type = elementType.value || "any"
let sort = elementSort.value || "Popularity"

arn.diff(`${root.dataset.url}/${year}/${season}/${status}/${type}`)
arn.diff(`${root.dataset.url}/${year}/${season}/${status}/${type}/${sort}`)
}

// Toggle hiding added anime.
Expand Down

0 comments on commit 94b8abe

Please sign in to comment.