Added filters to maldiff
This commit is contained in:
parent
9626204f15
commit
0670e9f886
@ -2,6 +2,7 @@ package editor
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/animenotifier/notify.moe/utils/animediff"
|
"github.com/animenotifier/notify.moe/utils/animediff"
|
||||||
|
|
||||||
@ -18,9 +19,14 @@ const maxCompareMALEntries = 15
|
|||||||
func CompareMAL(ctx *aero.Context) string {
|
func CompareMAL(ctx *aero.Context) string {
|
||||||
user := utils.GetUser(ctx)
|
user := utils.GetUser(ctx)
|
||||||
year, _ := ctx.GetInt("year")
|
year, _ := ctx.GetInt("year")
|
||||||
|
status := ctx.Get("status")
|
||||||
animeType := ctx.Get("type")
|
animeType := ctx.Get("type")
|
||||||
|
|
||||||
animes := arn.FilterAnime(func(anime *arn.Anime) bool {
|
animes := arn.FilterAnime(func(anime *arn.Anime) bool {
|
||||||
|
if status != "" && anime.Status != status {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if year != 0 && year != anime.StartDateTime().Year() {
|
if year != 0 && year != anime.StartDateTime().Year() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -100,7 +106,7 @@ func CompareMAL(ctx *aero.Context) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Airing start date
|
// Airing start date
|
||||||
if anime.StartDate != malAnime.StartDate {
|
if anime.StartDate != malAnime.StartDate && malAnime.StartDate != "" {
|
||||||
hash := utils.HashString(malAnime.StartDate)
|
hash := utils.HashString(malAnime.StartDate)
|
||||||
|
|
||||||
if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "StartDate", hash) {
|
if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "StartDate", hash) {
|
||||||
@ -192,5 +198,5 @@ func CompareMAL(ctx *aero.Context) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctx.HTML(components.CompareMAL(comparisons, ctx.URI(), user))
|
return ctx.HTML(components.CompareMAL(comparisons, strconv.Itoa(year), status, animeType, ctx.URI(), user))
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
component CompareMAL(comparisons []*utils.MALComparison, url string, user *arn.User)
|
component CompareMAL(comparisons []*utils.MALComparison, year string, status string, typ string, url string, user *arn.User)
|
||||||
EditorTabs(url)
|
EditorTabs(url)
|
||||||
h1.mountable MAL comparison
|
h1.mountable MAL comparison
|
||||||
|
ExploreFilters(year, status, typ, "malDiffFilterAnime")
|
||||||
|
|
||||||
.data-comparisons
|
.data-comparisons
|
||||||
each comparison in comparisons
|
each comparison in comparisons
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
component ExploreAnime(animeList []*arn.Anime, year string, status string, typ string, user *arn.User)
|
component ExploreAnime(animeList []*arn.Anime, year string, status string, typ string, user *arn.User)
|
||||||
ExploreFilters(year, status, typ)
|
ExploreFilters(year, status, typ, "filterAnime")
|
||||||
|
|
||||||
.corner-buttons-hide-on-mobile
|
.corner-buttons-hide-on-mobile
|
||||||
button.action(data-trigger="click", data-action="hideAddedAnime", title="Hide anime in my collection")
|
button.action(data-trigger="click", data-action="hideAddedAnime", title="Hide anime in my collection")
|
||||||
@ -16,18 +16,18 @@ component ExploreAnime(animeList []*arn.Anime, year string, status string, typ s
|
|||||||
else
|
else
|
||||||
AnimeGrid(animeList, user)
|
AnimeGrid(animeList, user)
|
||||||
|
|
||||||
component ExploreFilters(year string, status string, typ string)
|
component ExploreFilters(year string, status string, typ string, action string)
|
||||||
.explore-filters
|
.explore-filters
|
||||||
select#filter-year.action(value=year, data-action="filterAnime", data-trigger="change")
|
select#filter-year.action(value=year, data-action=action, data-trigger="change")
|
||||||
for year := time.Now().Year()+1; year >= 1951; year--
|
for year := time.Now().Year()+1; year >= 1951; year--
|
||||||
option(value=year)= year
|
option(value=year)= year
|
||||||
|
|
||||||
select#filter-status.action(value=status, data-action="filterAnime", data-trigger="change")
|
select#filter-status.action(value=status, data-action=action, data-trigger="change")
|
||||||
option(value="current") Current
|
option(value="current") Current
|
||||||
option(value="upcoming") Upcoming
|
option(value="upcoming") Upcoming
|
||||||
option(value="finished") Finished
|
option(value="finished") Finished
|
||||||
|
|
||||||
select#filter-type.action(value=typ, data-action="filterAnime", data-trigger="change")
|
select#filter-type.action(value=typ, data-action=action, data-trigger="change")
|
||||||
option(value="tv") TV
|
option(value="tv") TV
|
||||||
option(value="movie") Movie
|
option(value="movie") Movie
|
||||||
option(value="ova") OVA
|
option(value="ova") OVA
|
||||||
|
@ -215,6 +215,9 @@ func Configure(app *aero.Application) {
|
|||||||
l.Page("/editor/anime/missing/genres/:year", editor.Genres)
|
l.Page("/editor/anime/missing/genres/:year", editor.Genres)
|
||||||
l.Page("/editor/anime/missing/genres/:year/:type", editor.Genres)
|
l.Page("/editor/anime/missing/genres/:year/:type", editor.Genres)
|
||||||
l.Page("/editor/anime/maldiff", editor.CompareMAL)
|
l.Page("/editor/anime/maldiff", editor.CompareMAL)
|
||||||
|
l.Page("/editor/anime/maldiff/:year", editor.CompareMAL)
|
||||||
|
l.Page("/editor/anime/maldiff/:year/:status", editor.CompareMAL)
|
||||||
|
l.Page("/editor/anime/maldiff/:year/:status/:type", editor.CompareMAL)
|
||||||
|
|
||||||
// Log
|
// Log
|
||||||
l.Page("/log", editlog.Get)
|
l.Page("/log", editlog.Get)
|
||||||
|
@ -18,3 +18,12 @@ export function newAnimeDiffIgnore(arn: AnimeNotifier, button: HTMLButtonElement
|
|||||||
})
|
})
|
||||||
.catch(err => arn.statusMessage.showError(err))
|
.catch(err => arn.statusMessage.showError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter anime on maldiff page
|
||||||
|
export function malDiffFilterAnime(arn: AnimeNotifier, input: HTMLInputElement) {
|
||||||
|
let year = arn.app.find("filter-year") as HTMLSelectElement
|
||||||
|
let status = arn.app.find("filter-status") as HTMLSelectElement
|
||||||
|
let type = arn.app.find("filter-type") as HTMLSelectElement
|
||||||
|
|
||||||
|
arn.app.load(`/editor/anime/maldiff/${year.value}/${status.value}/${type.value}`)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user