diff --git a/pages/animeimport/animeimport.go b/pages/animeimport/animeimport.go new file mode 100644 index 00000000..6e00257a --- /dev/null +++ b/pages/animeimport/animeimport.go @@ -0,0 +1,19 @@ +package animeimport + +import ( + "net/http" + + "github.com/aerogo/aero" +) + +// Kitsu anime import. +func Kitsu(ctx *aero.Context) string { + // id := ctx.Get("id") + // user := utils.GetUser(ctx) + + if true { + return ctx.Error(http.StatusUnauthorized, "Not authorized", nil) + } + + return "" +} diff --git a/pages/editor/kitsu.pixy b/pages/editor/kitsu.pixy index 77370727..774a1add 100644 --- a/pages/editor/kitsu.pixy +++ b/pages/editor/kitsu.pixy @@ -13,6 +13,7 @@ component NewKitsuAnime(animes []*kitsu.Anime, url string, user *arn.User) th Title th Type th Year + th Actions tbody each anime in animes tr.mountable @@ -25,4 +26,8 @@ component NewKitsuAnime(animes []*kitsu.Anime, url string, user *arn.User) td= anime.Attributes.ShowType td if len(anime.Attributes.StartDate) >= 4 - span= anime.Attributes.StartDate[:4] \ No newline at end of file + span= anime.Attributes.StartDate[:4] + td + button.action(data-action="importKitsuAnime", data-trigger="click", data-id=anime.ID) + Icon("download") + span Import \ No newline at end of file diff --git a/pages/index.go b/pages/index.go index 6c0a18bc..6143c4be 100644 --- a/pages/index.go +++ b/pages/index.go @@ -8,6 +8,7 @@ import ( "github.com/animenotifier/notify.moe/layout" "github.com/animenotifier/notify.moe/pages/admin" "github.com/animenotifier/notify.moe/pages/anime" + "github.com/animenotifier/notify.moe/pages/animeimport" "github.com/animenotifier/notify.moe/pages/animelist" "github.com/animenotifier/notify.moe/pages/animelistitem" "github.com/animenotifier/notify.moe/pages/apiview" @@ -221,6 +222,9 @@ func Configure(app *aero.Application) { l.Page("/shop/history", shop.PurchaseHistory) app.Post("/api/shop/buy/:item/:quantity", shop.BuyItem) + // Import anime + app.Post("/api/import/kitsu/anime/:id", animeimport.Kitsu) + // Upload app.Post("/api/upload/avatar", upload.Avatar) app.Post("/api/upload/cover", upload.Cover) diff --git a/scripts/Actions/Editor.ts b/scripts/Actions/Editor.ts index fc17805d..67a4da3b 100644 --- a/scripts/Actions/Editor.ts +++ b/scripts/Actions/Editor.ts @@ -26,4 +26,18 @@ export function malDiffFilterAnime(arn: AnimeNotifier, input: HTMLInputElement) let type = arn.app.find("filter-type") as HTMLSelectElement arn.app.load(`/editor/anime/maldiff/${year.value}/${status.value}/${type.value}`) +} + +// Import Kitsu anime +export async function importKitsuAnime(arn: AnimeNotifier, button: HTMLButtonElement) { + let response = await fetch(`/api/import/kitsu/anime/${button.dataset.id}`, { + method: "POST", + credentials: "same-origin" + }) + + if(response.ok) { + arn.reloadContent() + } else { + arn.statusMessage.showError(await response.text()) + } } \ No newline at end of file