From cb9e27771808c1afd3828566eb53710d65f0ac19 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Fri, 9 Mar 2018 14:48:00 +0100 Subject: [PATCH] Added difference ignore button --- pages/editor/mal.go | 22 +++++++++++++--------- pages/editor/mal.pixy | 6 +++++- pages/editor/mal.scarlet | 12 ++++++++++++ scripts/Actions.ts | 1 + scripts/Actions/Editor.ts | 20 ++++++++++++++++++++ utils/animediff/CanonicalTitle.go | 10 ++++++++-- utils/animediff/Genres.go | 10 ++++++++-- utils/animediff/Interface.go | 1 + utils/animediff/JapaneseTitle.go | 10 ++++++++-- utils/animediff/Synopsis.go | 10 ++++++++-- 10 files changed, 84 insertions(+), 18 deletions(-) create mode 100644 scripts/Actions/Editor.ts diff --git a/pages/editor/mal.go b/pages/editor/mal.go index 670f53b2..1cb5db9a 100644 --- a/pages/editor/mal.go +++ b/pages/editor/mal.go @@ -12,7 +12,7 @@ import ( "github.com/animenotifier/notify.moe/utils" ) -const maxCompareMALEntries = 20 +const maxCompareMALEntries = 10 // CompareMAL ... func CompareMAL(ctx *aero.Context) string { @@ -66,8 +66,9 @@ func CompareMAL(ctx *aero.Context) string { if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "CanonicalTitle", hash) { differences = append(differences, &animediff.CanonicalTitle{ - TitleA: anime.Title.Canonical, - TitleB: malAnime.Title, + TitleA: anime.Title.Canonical, + TitleB: malAnime.Title, + NumericHash: hash, }) } } @@ -78,8 +79,9 @@ func CompareMAL(ctx *aero.Context) string { if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "JapaneseTitle", hash) { differences = append(differences, &animediff.JapaneseTitle{ - TitleA: anime.Title.Japanese, - TitleB: malAnime.JapaneseTitle, + TitleA: anime.Title.Japanese, + TitleB: malAnime.JapaneseTitle, + NumericHash: hash, }) } } @@ -90,8 +92,9 @@ func CompareMAL(ctx *aero.Context) string { if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "Synopsis", hash) { differences = append(differences, &animediff.Synopsis{ - SynopsisA: anime.Summary, - SynopsisB: malAnime.Synopsis, + SynopsisA: anime.Summary, + SynopsisB: malAnime.Synopsis, + NumericHash: hash, }) } } @@ -103,8 +106,9 @@ func CompareMAL(ctx *aero.Context) string { if hashA != hashB { if !arn.IsAnimeDifferenceIgnored(anime.ID, "mal", malAnime.ID, "Genres", hashB) { differences = append(differences, &animediff.Genres{ - GenresA: anime.Genres, - GenresB: malAnime.Genres, + GenresA: anime.Genres, + GenresB: malAnime.Genres, + NumericHash: hashB, }) } } diff --git a/pages/editor/mal.pixy b/pages/editor/mal.pixy index 1bd81725..716363b8 100644 --- a/pages/editor/mal.pixy +++ b/pages/editor/mal.pixy @@ -23,8 +23,12 @@ component CompareMAL(comparisons []*utils.MALComparison, url string, user *arn.U .data-comparison-differences each difference in comparison.Differences .data-comparison-difference - .data-comparison-difference-title= difference.Explanation() + .data-comparison-difference-title + span= difference.Explanation() .data-comparison-difference-details .data-comparison-difference-detail= difference.DetailsA() .data-comparison-difference-detail= difference.DetailsB() + + button.data-comparison-difference-ignore.action(data-action="newAnimeDiffIgnore", data-trigger="click", data-id=arn.CreateDifferenceID(comparison.Anime.ID, "mal", comparison.MALAnime.ID, difference.Type()), data-hash=difference.Hash()) + RawIcon("trash") diff --git a/pages/editor/mal.scarlet b/pages/editor/mal.scarlet index f3a3924c..c7674842 100644 --- a/pages/editor/mal.scarlet +++ b/pages/editor/mal.scarlet @@ -36,6 +36,7 @@ .data-comparison-difference vertical ui-element + position relative padding 0.5rem 0.75rem margin-bottom 0.5rem @@ -48,3 +49,14 @@ .data-comparison-difference-detail flex 1 padding 0.5rem 0.75rem + +.data-comparison-difference-ignore + position absolute + top 0.5rem + right 0.5rem + width 30px + height 30px + padding 0 + display flex + justify-content center + align-items center diff --git a/scripts/Actions.ts b/scripts/Actions.ts index 7b581847..ed7cb936 100644 --- a/scripts/Actions.ts +++ b/scripts/Actions.ts @@ -1,5 +1,6 @@ export * from "./Actions/AnimeList" export * from "./Actions/Diff" +export * from "./Actions/Editor" export * from "./Actions/Explore" export * from "./Actions/FollowUser" export * from "./Actions/Forum" diff --git a/scripts/Actions/Editor.ts b/scripts/Actions/Editor.ts new file mode 100644 index 00000000..daa88b22 --- /dev/null +++ b/scripts/Actions/Editor.ts @@ -0,0 +1,20 @@ +import { AnimeNotifier } from "../AnimeNotifier" + +// newAnimeDiffIgnore +export function newAnimeDiffIgnore(arn: AnimeNotifier, button: HTMLButtonElement) { + if(!confirm("Are you sure you want to permanently ignore this difference?")) { + return + } + + let id = button.dataset.id + let hash = button.dataset.hash + + arn.post(`/api/new/ignoreanimedifference`, { + id, + hash + }) + .then(() => { + arn.reloadContent() + }) + .catch(err => arn.statusMessage.showError(err)) +} \ No newline at end of file diff --git a/utils/animediff/CanonicalTitle.go b/utils/animediff/CanonicalTitle.go index dcbd9c9a..8c937ede 100644 --- a/utils/animediff/CanonicalTitle.go +++ b/utils/animediff/CanonicalTitle.go @@ -2,8 +2,9 @@ package animediff // CanonicalTitle describes differing titles. type CanonicalTitle struct { - TitleA string - TitleB string + TitleA string + TitleB string + NumericHash uint64 } // Type returns the diff type. @@ -25,3 +26,8 @@ func (diff *CanonicalTitle) DetailsA() string { func (diff *CanonicalTitle) DetailsB() string { return diff.TitleB } + +// Hash returns the hash for the suggested value (from anime B). +func (diff *CanonicalTitle) Hash() uint64 { + return diff.NumericHash +} diff --git a/utils/animediff/Genres.go b/utils/animediff/Genres.go index 76ef97dc..29b79a15 100644 --- a/utils/animediff/Genres.go +++ b/utils/animediff/Genres.go @@ -4,8 +4,9 @@ import "strings" // Genres describes differing genres. type Genres struct { - GenresA []string - GenresB []string + GenresA []string + GenresB []string + NumericHash uint64 } // Type returns the diff type. @@ -27,3 +28,8 @@ func (diff *Genres) DetailsA() string { func (diff *Genres) DetailsB() string { return strings.Join(diff.GenresB, ", ") } + +// Hash returns the hash for the suggested value (from anime B). +func (diff *Genres) Hash() uint64 { + return diff.NumericHash +} diff --git a/utils/animediff/Interface.go b/utils/animediff/Interface.go index 87c65d8e..61ee3ac2 100644 --- a/utils/animediff/Interface.go +++ b/utils/animediff/Interface.go @@ -6,4 +6,5 @@ type Difference interface { Explanation() string DetailsA() string DetailsB() string + Hash() uint64 } diff --git a/utils/animediff/JapaneseTitle.go b/utils/animediff/JapaneseTitle.go index 22cb5133..cff44bec 100644 --- a/utils/animediff/JapaneseTitle.go +++ b/utils/animediff/JapaneseTitle.go @@ -2,8 +2,9 @@ package animediff // JapaneseTitle describes differing Japanese titles. type JapaneseTitle struct { - TitleA string - TitleB string + TitleA string + TitleB string + NumericHash uint64 } // Type returns the diff type. @@ -25,3 +26,8 @@ func (diff *JapaneseTitle) DetailsA() string { func (diff *JapaneseTitle) DetailsB() string { return diff.TitleB } + +// Hash returns the hash for the suggested value (from anime B). +func (diff *JapaneseTitle) Hash() uint64 { + return diff.NumericHash +} diff --git a/utils/animediff/Synopsis.go b/utils/animediff/Synopsis.go index a4395bd8..fbaf236c 100644 --- a/utils/animediff/Synopsis.go +++ b/utils/animediff/Synopsis.go @@ -2,8 +2,9 @@ package animediff // Synopsis describes differing synopsis. type Synopsis struct { - SynopsisA string - SynopsisB string + SynopsisA string + SynopsisB string + NumericHash uint64 } // Type returns the diff type. @@ -25,3 +26,8 @@ func (diff *Synopsis) DetailsA() string { func (diff *Synopsis) DetailsB() string { return diff.SynopsisB } + +// Hash returns the hash for the suggested value (from anime B). +func (diff *Synopsis) Hash() uint64 { + return diff.NumericHash +}