added ability to get anime as needed from MAL

This commit is contained in:
2024-08-16 15:07:06 -04:00
parent 3b5518113e
commit fb2d5fbdea
10 changed files with 572 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
<script lang="ts" context="module">
import {
GetAniListItem,
GetAniListLoggedInUser, GetAniListUserWatchingList, GetMyAnimeListLoggedInUser,
GetAniListLoggedInUser, GetAniListUserWatchingList, GetMyAnimeListAnime, GetMyAnimeListLoggedInUser,
GetSimklLoggedInUser, LogoutAniList, LogoutMyAnimeList, LogoutSimkl
} from "../wailsjs/go/main/App";
import type {
@@ -11,7 +11,7 @@
import {writable} from 'svelte/store'
import type {SimklUser, SimklWatchList} from "./simkl/types/simklTypes";
import {type AniListUser, MediaListSort} from "./anilist/types/AniListTypes";
import type {MALWatchlist, MyAnimeListUser} from "./mal/types/MALTypes";
import type {MALAnime, MALWatchlist, MyAnimeListUser} from "./mal/types/MALTypes";
export let aniListAnime: AniListGetSingleAnime
export let title = writable("")
@@ -21,11 +21,13 @@
export let malLoggedIn = writable(false)
export let simklWatchList = writable({} as SimklWatchList)
export let aniListPrimary = writable(true)
export let malPrimary = writable(false)
export let simklUser = writable({} as SimklUser)
export let aniListUser = writable({} as AniListUser)
export let malUser = writable({} as MyAnimeListUser)
export let aniListWatchlist = writable({} as AniListCurrentUserWatchList)
export let malWatchList = writable({} as MALWatchlist)
export let malAnime = writable({} as MALAnime)
export let watchListPage = writable(1)
export let animePerPage = writable(20)
@@ -35,18 +37,30 @@
let perPage: number
let aniWatchlist: AniListCurrentUserWatchList
let isMalLoggedIn: boolean
aniListPrimary.subscribe(value => isAniListPrimary = value)
watchListPage.subscribe(value => page = value)
animePerPage.subscribe(value => perPage = value)
aniListWatchlist.subscribe(value => aniWatchlist = value)
malLoggedIn.subscribe(value => isMalLoggedIn = value)
export function GetAniListSingleItemAndOpenModal(aniId: number, login: boolean): void {
GetAniListItem(aniId, login).then(result => {
aniListAnime = result
GetAniListItem(aniId, login).then(aniListResult => {
aniListAnime = aniListResult
title.set(aniListAnime.data.MediaList.media.title.english === "" ?
aniListAnime.data.MediaList.media.title.romaji :
aniListAnime.data.MediaList.media.title.english)
anilistModal.set(true)
if(isMalLoggedIn) {
GetMyAnimeListAnime(aniListAnime.data.MediaList.media.idMal).then(malResult => {
console.log(malResult)
malAnime.set(malResult)
anilistModal.set(true)
})
} else {
anilistModal.set(true)
}
})
}