From f22b497e03b68ce7759880c72cc64ed6a03a2194 Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Wed, 29 May 2024 17:06:37 -0700 Subject: [PATCH 001/146] fix: better userList caching and sorting --- common/modules/al.d.ts | 2 +- common/modules/anilist.js | 41 ++++----- common/modules/sections.js | 154 +++++++++++++++++++++------------- common/modules/settings.js | 2 +- common/views/Home/Home.svelte | 5 +- 5 files changed, 115 insertions(+), 89 deletions(-) diff --git a/common/modules/al.d.ts b/common/modules/al.d.ts index 15543da..67f15ad 100644 --- a/common/modules/al.d.ts +++ b/common/modules/al.d.ts @@ -144,7 +144,7 @@ export type MediaListCollection = { lists: { status: string entries: { - media: MediaListMedia + media: Media }[] }[] } diff --git a/common/modules/anilist.js b/common/modules/anilist.js index 8238443..08092c2 100644 --- a/common/modules/anilist.js +++ b/common/modules/anilist.js @@ -203,9 +203,9 @@ class AnilistClient { }) if (this.userID?.viewer?.data?.Viewer) { - this.userLists.value = this.getUserLists() + this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }) // update userLists every 15 mins - setInterval(() => { this.userLists.value = this.getUserLists() }, 1000 * 60 * 15) + setInterval(() => this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }), 1000 * 60 * 15) } } @@ -257,8 +257,8 @@ class AnilistClient { variables: { sort: 'TRENDING_DESC', page: 1, - perPage: 30, - status_in: '[CURRENT,PLANNING]', + perPage: 50, + status_in: '[CURRENT,PLANNING,COMPLETED,DROPPED,PAUSED,REPEATING]', ...variables } }) @@ -369,7 +369,7 @@ class AnilistClient { variables.lists.push('Watched using Miru') } await this.entry(variables) - this.userLists.value = this.getUserLists() + this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }) } } } @@ -458,40 +458,29 @@ class AnilistClient { } /** @returns {Promise>} */ - async getUserLists (variables = {}) { + async getUserLists (variables) { const userId = this.userID?.viewer?.data?.Viewer.id variables.id = userId + if (variables.sort) { variables.sort = variables.sort.replace('USER_SCORE_DESC', 'SCORE_DESC')} const query = /* js */` - query($id: Int){ - MediaListCollection(userId: $id, type: ANIME, forceSingleCompletedList: true) { + query($id: Int $sort: [MediaListSort]){ + MediaListCollection(userId: $id, type: ANIME, sort: $sort, forceSingleCompletedList: true) { lists { status, entries { media { - id, - status, - mediaListEntry { - progress - }, - nextAiringEpisode { - episode - }, - relations { - edges { - relationType(version:2) - node { - id - } - } - } + ${queryObjects} } } } } }` - // this doesn't need to be cached, as SearchIDStatus is already cached, which is the only thing that uses this - return await this.alRequest(query, variables) + const res = await this.alRequest(query, variables) + + this.updateCache(res.data.MediaListCollection.lists.flatMap(list => list.entries.map(entry => entry.media))); + + return res } /** @returns {Promise>} */ diff --git a/common/modules/sections.js b/common/modules/sections.js index 91f9bc8..56daf32 100644 --- a/common/modules/sections.js +++ b/common/modules/sections.js @@ -24,8 +24,7 @@ export default class SectionsManager { static createFallbackLoad (variables, type) { return (page = 1, perPage = 50, search = variables) => { - const options = { page, perPage, ...SectionsManager.sanitiseObject(search) } - const res = anilistClient.search(options) + const res = anilistClient.search({ page, perPage, ...SectionsManager.sanitiseObject(search) }) return SectionsManager.wrapResponse(res, perPage, type) } } @@ -49,6 +48,44 @@ export default class SectionsManager { const { data } = await arr return data?.Page.media[i] } + + static isUserSort(variables) { + return ['UPDATED_TIME_DESC', 'STARTED_ON_DESC', 'FINISHED_ON_DESC', 'PROGRESS_DESC', 'USER_SCORE_DESC'].includes(variables.sort); + } + + static async getPaginatedMediaList(_page, perPage, variables, mediaList) { + const ids = mediaList.filter(({ media }) => { + if ((!variables.search || (media.title.userPreferred && media.title.userPreferred.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.english && media.title.english.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.romaji && media.title.romaji.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.native && media.title.native.toLowerCase().includes(variables.search.toLowerCase()))) && + (!variables.genre || variables.genre.map(genre => genre.trim().toLowerCase()).every(genre => media.genres.map(genre => genre.trim().toLowerCase()).includes(genre))) && + (!variables.tag || variables.tag.map(tag => tag.trim().toLowerCase()).every(tag => media.tags.map(tag => tag.name.trim().toLowerCase()).includes(tag))) && + (!variables.season || variables.season === media.season) && + (!variables.year || variables.year === media.seasonYear) && + (!variables.format || variables.format === media.format) && + (!variables.status || variables.status === media.status) && + (!variables.continueWatching || (media.status === 'FINISHED' || media.mediaListEntry?.progress < media.nextAiringEpisode?.episode - 1))) { + return true; + } + }).map(({ media }) => (this.isUserSort(variables) ? media : media.id)); + if (!ids.length) return {} + if (this.isUserSort(variables)) { + const startIndex = (perPage * (_page - 1)); + const endIndex = startIndex + perPage; + const paginatedIds = ids.slice(startIndex, endIndex); + const hasNextPage = ids.length > endIndex; + return { + data: { + Page: { + pageInfo: { + hasNextPage: hasNextPage + }, + media: paginatedIds + } + } + } + } else { + return anilistClient.searchIDS({ _page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + } + } } // list of all possible home screen sections @@ -80,24 +117,6 @@ function createSections () { return section }), // user specific sections - { - title: 'Continue Watching', - load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const mediaList = res.data.MediaListCollection.lists.reduce((filtered, { status, entries }) => { - return (status === 'CURRENT' || status === 'REPEATING') ? filtered.concat(entries) : filtered - }, []) - const ids = mediaList.filter(({ media }) => { - if (media.status === 'FINISHED') return true - return media.mediaListEntry?.progress < media.nextAiringEpisode?.episode - 1 - }).map(({ media }) => media.id) - if (!ids.length) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) - }) - return SectionsManager.wrapResponse(res, perPage) - }, - hide: !alToken - }, { title: 'Sequels You Missed', load: (page = 1, perPage = 50, variables = {}) => { @@ -115,73 +134,92 @@ function createSections () { hide: !alToken }, { - title: 'Your List', - load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const ids = res.data.MediaListCollection.lists.find(({ status }) => status === 'PLANNING')?.entries.map(({ media }) => media.id) - if (!ids) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + title: 'Continue Watching', variables: { sort: 'UPDATED_TIME_DESC', userList: true, continueWatching: true }, + load: (_page = 1, perPage = 50, variables = {}) => { + const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) + const res = userLists.then(res => { + const mediaList = res.data.MediaListCollection.lists.reduce((filtered, { status, entries }) => { + return (status === 'CURRENT' || status === 'REPEATING') ? filtered.concat(entries) : filtered + }, []); + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + }); + return SectionsManager.wrapResponse(res, perPage); + }, + hide: !alToken + }, + { + title: 'Watching List', variables : { sort: 'UPDATED_TIME_DESC', userList: true }, + load: (_page = 1, perPage = 50, variables = {}) => { + const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) + const res = userLists.then(res => { + const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'CURRENT')?.entries + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, hide: !alToken }, { - title: 'Completed List', - load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const ids = res.data.MediaListCollection.lists.find(({ status }) => status === 'COMPLETED')?.entries.map(({ media }) => media.id) - if (!ids) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + title: 'Completed List', variables : { sort: 'UPDATED_TIME_DESC', userList: true, completedList: true }, + load: (_page = 1, perPage = 50, variables = {}) => { + const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) + const res = userLists.then(res => { + const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'COMPLETED')?.entries + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, hide: !alToken }, { - title: 'Paused List', - load: (page = 1, perPage = 50, variables = {}) => { + title: 'Planning List', variables : { sort: 'POPULARITY_DESC', userList: true }, + load: (_page = 1, perPage = 50, variables = {}) => { const res = anilistClient.userLists.value.then(res => { - const ids = res.data.MediaListCollection.lists.find(({ status }) => status === 'PAUSED')?.entries.map(({ media }) => media.id) - if (!ids) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'PLANNING')?.entries + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, hide: !alToken }, { - title: 'Dropped List', - load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const ids = res.data.MediaListCollection.lists.find(({ status }) => status === 'DROPPED')?.entries.map(({ media }) => media.id) - if (!ids) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + title: 'Paused List', variables : { sort: 'UPDATED_TIME_DESC', userList: true }, + load: (_page = 1, perPage = 50, variables = {}) => { + const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) + const res = userLists.then(res => { + const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'PAUSED')?.entries + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, hide: !alToken }, { - title: 'Currently Watching List', - load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const ids = res.data.MediaListCollection.lists.find(({ status }) => status === 'CURRENT')?.entries.map(({ media }) => media.id) - if (!ids) return {} - return anilistClient.searchIDS({ page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) + title: 'Dropped List', variables : { sort: 'UPDATED_TIME_DESC', userList: true}, + load: (_page = 1, perPage = 50, variables = {}) => { + const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) + const res = userLists.then(res => { + const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'DROPPED')?.entries + if (!mediaList) return {} + return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, hide: !alToken }, // common, non-user specific sections - { title: 'Popular This Season', variables: { sort: 'POPULARITY_DESC', season: currentSeason, year: currentYear } }, - { title: 'Trending Now', variables: { sort: 'TRENDING_DESC' } }, - { title: 'All Time Popular', variables: { sort: 'POPULARITY_DESC' } }, - { title: 'Romance', variables: { sort: 'TRENDING_DESC', genre: 'Romance' } }, - { title: 'Action', variables: { sort: 'TRENDING_DESC', genre: 'Action' } }, - { title: 'Adventure', variables: { sort: 'TRENDING_DESC', genre: 'Adventure' } }, - { title: 'Fantasy', variables: { sort: 'TRENDING_DESC', genre: 'Fantasy' } }, - { title: 'Comedy', variables: { sort: 'TRENDING_DESC', genre: 'Comedy' } } + { title: 'Popular This Season', variables: { sort: 'POPULARITY_DESC'} }, + { title: 'Trending Now', variables: { sort: 'TRENDING_DESC'} }, + { title: 'All Time Popular', variables: { sort: 'POPULARITY_DESC'} }, + { title: 'Romance', variables: { sort: 'TRENDING_DESC', genre: ['Romance']} }, + { title: 'Action', variables: { sort: 'TRENDING_DESC', genre: ['Action']} }, + { title: 'Adventure', variables: { sort: 'TRENDING_DESC', genre: ['Adventure'] } }, + { title: 'Fantasy', variables: { sort: 'TRENDING_DESC', genre: ['Fantasy']} }, + { title: 'Comedy', variables: { sort: 'TRENDING_DESC', genre: ['Comedy'] } } ] -} +} \ No newline at end of file diff --git a/common/modules/settings.js b/common/modules/settings.js index 018333a..f494ae4 100644 --- a/common/modules/settings.js +++ b/common/modules/settings.js @@ -15,7 +15,7 @@ try { } catch (e) {} try { scopedDefaults = { - homeSections: [...(storedSettings.rssFeedsNew || defaults.rssFeedsNew).map(([title]) => title), 'Continue Watching', 'Sequels You Missed', 'Your List', 'Popular This Season', 'Trending Now', 'All Time Popular', 'Romance', 'Action', 'Adventure', 'Fantasy', 'Comedy'] + homeSections: [...(storedSettings.rssFeedsNew || defaults.rssFeedsNew).map(([title]) => title), 'Continue Watching', 'Sequels You Missed', 'Planning List', 'Popular This Season', 'Trending Now', 'All Time Popular', 'Romance', 'Action', 'Adventure', 'Fantasy', 'Comedy'] } } catch (e) { resetSettings() diff --git a/common/views/Home/Home.svelte b/common/views/Home/Home.svelte index a55f34d..76ac2bf 100644 --- a/common/views/Home/Home.svelte +++ b/common/views/Home/Home.svelte @@ -16,13 +16,12 @@ for (const sectionTitle of settings.value.homeSections) manager.add(mappedSections[sectionTitle]) if (anilistClient.userID?.viewer?.data?.Viewer) { - const userSections = ['Continue Watching', 'Sequels You Missed', 'Your List', 'Completed List', 'Paused List', 'Dropped List', 'Currently Watching List'] - + const userSections = ['Continue Watching', 'Sequels You Missed', 'Planning List', 'Completed List', 'Paused List', 'Dropped List', 'Watching List'] anilistClient.userLists.subscribe(value => { if (!value) return for (const section of manager.sections) { // remove preview value, to force UI to re-request data, which updates it once in viewport - if (userSections.includes(section.title)) section.preview.value = section.load(1, 15) + if (userSections.includes(section.title)) section.preview.value = section.load(1, 15, section.variables) } }) } From 13fa10f475aca0db987becff8adb8689dd243ed6 Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Wed, 29 May 2024 17:07:56 -0700 Subject: [PATCH 002/146] feat: tags and multiple genres --- common/components/Search.svelte | 238 ++++++++++++++++++++++++++------ common/modules/al.d.ts | 4 + common/modules/anilist.js | 12 +- 3 files changed, 209 insertions(+), 45 deletions(-) diff --git a/common/components/Search.svelte b/common/components/Search.svelte index cee7e6d..9abf55d 100644 --- a/common/components/Search.svelte +++ b/common/components/Search.svelte @@ -1,5 +1,7 @@ + +{#if !banner && !viewAnime && !example && settings.value.cardAudio} + + {isDubbed ? 'mic' : isPartial ? 'mic_off' : 'closed_caption'} + +{:else if !viewAnime && !example} + {isDubbed ? 'Dub' : isPartial ? 'Partial Dub' : 'Sub'} +{:else if !example} + + {isDubbed ? 'mic' : isPartial ? 'mic_off' : 'closed_caption'} + + + {isDubbed ? 'Dub' : isPartial ? 'Partial Dub' : 'Sub'} + +{:else} +
+ closed_caption + Sub Only + mic_off + Partial Dub + mic + Dub +
+{/if} + + diff --git a/common/views/ViewAnime/ViewAnime.svelte b/common/views/ViewAnime/ViewAnime.svelte index 3c12239..9fa2b5f 100644 --- a/common/views/ViewAnime/ViewAnime.svelte +++ b/common/views/ViewAnime/ViewAnime.svelte @@ -8,6 +8,7 @@ import Details from './Details.svelte' import EpisodeList from './EpisodeList.svelte' import ToggleList from './ToggleList.svelte' + import AudioLabel from './AudioLabel.svelte' import Following from './Following.svelte' import smoothScroll from '@/modules/scroll.js' import IPC from '@/modules/ipc.js' @@ -114,6 +115,9 @@ {/if} +
+ +
- {#if sanitisedSearch?.length} - sell - {#each badgeKeys as key} - {#each sanitisedSearch as badge} - {#if badge.key === key} - {#if badge.key !== 'hideStatus' && (search.userList || badge.key !== 'title') } - - {badge.key === 'sort' ? 'Sort: ' : getBadgeDisplayName(badge.key)} {badge.key === 'sort' ? getSortDisplayName(badge.value) : (badge.key !== 'hideMyAnime' ? ('' + badge.value).replace(/_/g, ' ').toLowerCase() : '')} - - - {/if} - {/if} - {/each} - {/each} - {/if} +
+
+ {#if sanitisedSearch?.length} + sell + {#each badgeKeys as key} + {#each sanitisedSearch as badge} + {#if badge.key === key} + {#if badge.key !== 'hideStatus' && (search.userList || badge.key !== 'title') } + + {badge.key === 'sort' ? 'Sort: ' : getBadgeDisplayName(badge.key)} {badge.key === 'sort' ? getSortDisplayName(badge.value) : (badge.key !== 'hideMyAnime' ? ('' + badge.value).replace(/_/g, ' ').toLowerCase() : '')} + + + {/if} + {/if} + {/each} + {/each} + {/if} +
+
changeCardMode('small')}>grid_on changeCardMode('full')}>grid_view
From 7b3ed60b8608c88d8922519a71f82d2b1858b033 Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Fri, 31 May 2024 15:54:28 -0700 Subject: [PATCH 010/146] chore: css cleanup --- common/components/Search.svelte | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/common/components/Search.svelte b/common/components/Search.svelte index bff1138..bf22dce 100644 --- a/common/components/Search.svelte +++ b/common/components/Search.svelte @@ -360,7 +360,7 @@ {#if badge.key !== 'hideStatus' && (search.userList || badge.key !== 'title') } {badge.key === 'sort' ? 'Sort: ' : getBadgeDisplayName(badge.key)} {badge.key === 'sort' ? getSortDisplayName(badge.value) : (badge.key !== 'hideMyAnime' ? ('' + badge.value).replace(/_/g, ' ').toLowerCase() : '')} - + {/if} {/if} @@ -399,16 +399,4 @@ .font-size-30 { font-size: 3rem !important; } - - .badge-remove-btn { - background: none; - border: none; - color: white; - margin-left: 10px; - cursor: pointer; - font-size: 12px; - } - .badge-remove-btn:hover { - color: red; - } From ced891ef29cbd05053126bcaff47725e2e1eedad Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Fri, 31 May 2024 18:24:47 -0700 Subject: [PATCH 011/146] fix: fetching wrong anime season idk why an array is returned for some seasons resulting in '3,03' so instead of it failing and returning the default season we can now return the first entry in the array. --- common/modules/anime.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/modules/anime.js b/common/modules/anime.js index 57e299f..1883618 100644 --- a/common/modules/anime.js +++ b/common/modules/anime.js @@ -175,6 +175,8 @@ export async function anitomyscript (...args) { obj.anime_season = seasonMatch[1] obj.episode_number = seasonMatch[2] obj.anime_title = obj.anime_title.replace(/S(\d{2})E(\d{2})/, '') + } else if (Array.isArray(obj.anime_season)) { + obj.anime_season = obj.anime_season[0] } const yearMatch = obj.anime_title.match(/ (19[5-9]\d|20\d{2})/) if (yearMatch && Number(yearMatch[1]) <= (new Date().getUTCFullYear() + 1)) { From ccb322587341696d49a5368a7a9f630a55b4923a Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Fri, 31 May 2024 21:57:09 -0700 Subject: [PATCH 012/146] fix: interval dub cache --- common/modules/audiolabel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/modules/audiolabel.js b/common/modules/audiolabel.js index 2c1f8e8..9d24052 100644 --- a/common/modules/audiolabel.js +++ b/common/modules/audiolabel.js @@ -13,7 +13,7 @@ export async function cacheDubs() { dubInfo.value = await getDubInfo() initialized.set(true) // update dubInfo every hour - setInterval(() => dubInfo.value = getDubInfo(), 1000 * 60 * 60) + setInterval(async () => dubInfo.value = await getDubInfo(), 1000 * 60 * 60) } }) } From ceb2eb6a06f8be098c194550862e75e4bda2158d Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Sat, 1 Jun 2024 19:49:37 -0700 Subject: [PATCH 013/146] fix: audio label --- common/modules/anilist.js | 4 ++++ common/modules/audiolabel.js | 14 +++----------- common/views/ViewAnime/AudioLabel.svelte | 10 ++++------ 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/common/modules/anilist.js b/common/modules/anilist.js index 79ca7de..543c848 100644 --- a/common/modules/anilist.js +++ b/common/modules/anilist.js @@ -6,6 +6,8 @@ import { alToken } from '@/modules/settings.js' import { toast } from 'svelte-sonner' import { sleep } from './util.js' +import { cacheDubs } from '@/modules/audiolabel.js' + export const codes = { 400: 'Bad Request', 401: 'Unauthorized', @@ -206,6 +208,8 @@ class AnilistClient { return time }) + cacheDubs() + if (this.userID?.viewer?.data?.Viewer) { this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }) // update userLists every 15 mins diff --git a/common/modules/audiolabel.js b/common/modules/audiolabel.js index 9d24052..5febd84 100644 --- a/common/modules/audiolabel.js +++ b/common/modules/audiolabel.js @@ -4,18 +4,10 @@ import { codes } from '@/modules/anilist.js' export const dubInfo = writable() -const initialized = writable(false) - - export async function cacheDubs() { - await initialized.subscribe(async value => { - if (!value) { - dubInfo.value = await getDubInfo() - initialized.set(true) - // update dubInfo every hour - setInterval(async () => dubInfo.value = await getDubInfo(), 1000 * 60 * 60) - } - }) + dubInfo.value = await getDubInfo() + // update dubInfo every hour + setInterval(async () => dubInfo.value = await getDubInfo(), 1000 * 60 * 60) } async function getDubInfo() { diff --git a/common/views/ViewAnime/AudioLabel.svelte b/common/views/ViewAnime/AudioLabel.svelte index 1d84d1a..4276665 100644 --- a/common/views/ViewAnime/AudioLabel.svelte +++ b/common/views/ViewAnime/AudioLabel.svelte @@ -1,7 +1,6 @@ From 4087a241267dcc195ed6eb432792ae8483648f85 Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Wed, 5 Jun 2024 00:24:21 -0700 Subject: [PATCH 014/146] fix: audio label refresh --- common/modules/anilist.js | 4 --- common/modules/audiolabel.js | 19 ++++++++++--- common/views/ViewAnime/AudioLabel.svelte | 35 ++++++++++++------------ 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/common/modules/anilist.js b/common/modules/anilist.js index 543c848..79ca7de 100644 --- a/common/modules/anilist.js +++ b/common/modules/anilist.js @@ -6,8 +6,6 @@ import { alToken } from '@/modules/settings.js' import { toast } from 'svelte-sonner' import { sleep } from './util.js' -import { cacheDubs } from '@/modules/audiolabel.js' - export const codes = { 400: 'Bad Request', 401: 'Unauthorized', @@ -208,8 +206,6 @@ class AnilistClient { return time }) - cacheDubs() - if (this.userID?.viewer?.data?.Viewer) { this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }) // update userLists every 15 mins diff --git a/common/modules/audiolabel.js b/common/modules/audiolabel.js index 5febd84..f983833 100644 --- a/common/modules/audiolabel.js +++ b/common/modules/audiolabel.js @@ -2,12 +2,23 @@ import { toast } from 'svelte-sonner' import { writable } from 'simple-store-svelte' import { codes } from '@/modules/anilist.js' +const initialized = writable(false) + export const dubInfo = writable() -export async function cacheDubs() { - dubInfo.value = await getDubInfo() - // update dubInfo every hour - setInterval(async () => dubInfo.value = await getDubInfo(), 1000 * 60 * 60) +export async function loadDubs() { + initialized.subscribe(async value => { + if (!value) { + initialized.set(true) + dubInfo.value = await getDubInfo() + window.dispatchEvent(new Event('audio-label')); + // update dubInfo every hour + setInterval(async () => { + dubInfo.value = await getDubInfo(); + window.dispatchEvent(new Event('audio-label')) + }, 1000 * 60 * 60); + } + }) } async function getDubInfo() { diff --git a/common/views/ViewAnime/AudioLabel.svelte b/common/views/ViewAnime/AudioLabel.svelte index 4276665..f458d2d 100644 --- a/common/views/ViewAnime/AudioLabel.svelte +++ b/common/views/ViewAnime/AudioLabel.svelte @@ -1,7 +1,8 @@ {#if !banner && !viewAnime && !example && settings.value.cardAudio} - - {isDubbed ? 'mic' : isPartial ? 'mic_off' : 'closed_caption'} + + {$isDubbed ? 'mic' : $isPartial ? 'mic_off' : 'closed_caption'} {:else if !viewAnime && !example} - {isDubbed ? 'Dub' : isPartial ? 'Partial Dub' : 'Sub'} + {$isDubbed ? 'Dub' : $isPartial ? 'Partial Dub' : 'Sub'} {:else if !example} - {isDubbed ? 'mic' : isPartial ? 'mic_off' : 'closed_caption'} + {$isDubbed ? 'mic' : $isPartial ? 'mic_off' : 'closed_caption'} - {isDubbed ? 'Dub' : isPartial ? 'Partial Dub' : 'Sub'} + {$isDubbed ? 'Dub' : $isPartial ? 'Partial Dub' : 'Sub'} {:else}
From 47c8eb0064c8ae1060feb6ac43c8acc485ffb25e Mon Sep 17 00:00:00 2001 From: RockinChaos Date: Wed, 5 Jun 2024 00:27:23 -0700 Subject: [PATCH 015/146] feat: list editor --- common/components/banner/FullBanner.svelte | 18 +- common/components/cards/PreviewCard.svelte | 18 +- common/modules/anilist.js | 1 + common/views/ViewAnime/Scoring.svelte | 197 +++++++++++++++++++++ common/views/ViewAnime/ViewAnime.svelte | 17 +- 5 files changed, 207 insertions(+), 44 deletions(-) create mode 100644 common/views/ViewAnime/Scoring.svelte diff --git a/common/components/banner/FullBanner.svelte b/common/components/banner/FullBanner.svelte index 9a8b259..c8e8ec2 100644 --- a/common/components/banner/FullBanner.svelte +++ b/common/components/banner/FullBanner.svelte @@ -1,23 +1,13 @@ + + + + + diff --git a/common/views/ViewAnime/ViewAnime.svelte b/common/views/ViewAnime/ViewAnime.svelte index 9fa2b5f..667f829 100644 --- a/common/views/ViewAnime/ViewAnime.svelte +++ b/common/views/ViewAnime/ViewAnime.svelte @@ -1,6 +1,6 @@ + + + + + + diff --git a/common/components/Logout.svelte b/common/components/Logout.svelte index 5b58012..790d54b 100644 --- a/common/components/Logout.svelte +++ b/common/components/Logout.svelte @@ -1,11 +1,13 @@ diff --git a/common/components/cards/Card.svelte b/common/components/cards/Card.svelte index a859f64..f2101e6 100644 --- a/common/components/cards/Card.svelte +++ b/common/components/cards/Card.svelte @@ -10,6 +10,7 @@ export let card + export let variables = null const type = card.type || $settings.cards @@ -29,7 +30,7 @@ {:then media} {#if media} - + {/if} {/await} @@ -39,7 +40,7 @@ {:then media} {#if media} - + {/if} {/await} diff --git a/common/components/cards/FullCard.svelte b/common/components/cards/FullCard.svelte index fb7a88d..2a61510 100644 --- a/common/components/cards/FullCard.svelte +++ b/common/components/cards/FullCard.svelte @@ -7,6 +7,7 @@ import AudioLabel from '@/views/ViewAnime/AudioLabel.svelte' /** @type {import('@/modules/al.d.ts').Media} */ export let media + export let variables = null const view = getContext('view') function viewMedia () { @@ -15,7 +16,7 @@
-
= media?.nextAiringEpisode?.episode - 1} style:--color={media.coverImage.color || '#1890ff'}>
@@ -95,6 +96,9 @@ } .details span + span::before { content: ' • '; +.opacity-half { + opacity: 30%; +} white-space: normal; } .card { diff --git a/common/components/cards/SmallCard.svelte b/common/components/cards/SmallCard.svelte index 7b86220..33ccab2 100644 --- a/common/components/cards/SmallCard.svelte +++ b/common/components/cards/SmallCard.svelte @@ -9,6 +9,7 @@ import { page } from '@/App.svelte' /** @type {import('@/modules/al.d.ts').Media} */ export let media + export let variables = null let preview = false const view = getContext('view') @@ -24,7 +25,7 @@ {#if preview} {/if} -
+
= media?.nextAiringEpisode?.episode - 1}> {#if $page === 'schedule'}
{#if media.airingSchedule?.nodes?.[0]?.airingAt} @@ -65,7 +66,9 @@ z-index: 30; /* fixes transform scaling on click causing z-index issues */ } - + .opacity-half { + opacity: 30%; + } .title { display: -webkit-box; -webkit-line-clamp: 2; diff --git a/common/modules/anilist.js b/common/modules/anilist.js index 01f179a..7275454 100644 --- a/common/modules/anilist.js +++ b/common/modules/anilist.js @@ -2,9 +2,10 @@ import lavenshtein from 'js-levenshtein' import { writable } from 'simple-store-svelte' import Bottleneck from 'bottleneck' -import { alToken } from '@/modules/settings.js' +import { alToken, settings } from '@/modules/settings.js' import { toast } from 'svelte-sonner' import { sleep } from './util.js' +import Helper from '@/modules/helper.js' import IPC from '@/modules/ipc.js' export const codes = { @@ -136,6 +137,7 @@ relations { id, title {userPreferred}, coverImage {medium}, + idMal, type, status, format, @@ -361,50 +363,13 @@ class AnilistClient { return Object.entries(searchResults).map(([filename, id]) => [filename, search.data.Page.media.find(media => media.id === id)]) } - async alEntry (filemedia) { - // check if values exist - if (filemedia.media && alToken) { - const { media, failed } = filemedia - - if (failed) return - if (media.status !== 'FINISHED' && media.status !== 'RELEASING') return - - // check if media can even be watched, ex: it was resolved incorrectly - // some anime/OVA's can have a single episode, or some movies can have multiple episodes - const singleEpisode = ((!media.episodes && (Number(filemedia.episode) === 1 || isNaN(Number(filemedia.episode)))) || (media.format === 'MOVIE' && media.episodes === 1)) && 1 // movie check - const videoEpisode = Number(filemedia.episode) || singleEpisode - const mediaEpisode = media.episodes || media.nextAiringEpisode?.episode || singleEpisode - - if (!videoEpisode || !mediaEpisode) return - // check episode range, safety check if `failed` didn't catch this - if (videoEpisode > mediaEpisode) return - - const lists = media.mediaListEntry?.customLists.filter(list => list.enabled).map(list => list.name) || [] - - const status = media.mediaListEntry?.status === 'REPEATING' ? 'REPEATING' : 'CURRENT' - const progress = media.mediaListEntry?.progress - - // check user's own watch progress - if (progress > videoEpisode) return - if (progress === videoEpisode && videoEpisode !== mediaEpisode && !singleEpisode) return - - const variables = { - repeat: media.mediaListEntry?.repeat || 0, - id: media.id, - status, - episode: videoEpisode, - lists - } - if (videoEpisode === mediaEpisode) { - variables.status = 'COMPLETED' - if (media.mediaListEntry?.status === 'REPEATING') variables.repeat = media.mediaListEntry.repeat + 1 - } - if (!lists.includes('Watched using Miru')) { - variables.lists.push('Watched using Miru') - } - await this.entry(variables) - this.userLists.value = this.getUserLists() + async alEntry (lists, variables) { + if (!lists.includes('Watched using Miru')) { + variables.lists.push('Watched using Miru') } + const res = await this.entry(variables) + this.userLists.value = this.getUserLists({ sort: 'UPDATED_TIME_DESC' }) + return res } async searchName (variables = {}) { @@ -424,8 +389,7 @@ class AnilistClient { /** @type {import('./al.d.ts').PagedQuery<{media: import('./al.d.ts').Media[]}>} */ const res = await this.alRequest(query, variables) - - this.updateCache(res.data.Page.media) + await this.updateCache(res.data.Page.media) return res } @@ -441,19 +405,19 @@ class AnilistClient { /** @type {import('./al.d.ts').Query<{Media: import('./al.d.ts').Media}>} */ const res = await this.alRequest(query, variables) - this.updateCache([res.data.Media]) + await this.updateCache([res.data.Media]) return res } async searchIDS (variables) { const query = /* js */` - query($id: [Int], $page: Int, $perPage: Int, $status: [MediaStatus], $onList: Boolean, $sort: [MediaSort], $search: String, $season: MediaSeason, $year: Int, $genre: [String], $tag: [String], $format: MediaFormat) { + query($id: [Int], $idMal: [Int], $page: Int, $perPage: Int, $status: [MediaStatus], $onList: Boolean, $sort: [MediaSort], $search: String, $season: MediaSeason, $year: Int, $genre: [String], $tag: [String], $format: MediaFormat) { Page(page: $page, perPage: $perPage) { pageInfo { hasNextPage }, - media(id_in: $id, type: ANIME, status_in: $status, onList: $onList, search: $search, sort: $sort, season: $season, seasonYear: $year, genre_in: $genre, tag_in: $tag, format: $format) { + media(id_in: $id, idMal_in: $idMal, type: ANIME, status_in: $status, onList: $onList, search: $search, sort: $sort, season: $season, seasonYear: $year, genre_in: $genre, tag_in: $tag, format: $format) { ${queryObjects} } } @@ -462,7 +426,7 @@ class AnilistClient { /** @type {import('./al.d.ts').PagedQuery<{media: import('./al.d.ts').Media[]}>} */ const res = await this.alRequest(query, variables) - this.updateCache(res.data.Page.media) + await this.updateCache(res.data.Page.media) return res } @@ -532,9 +496,8 @@ class AnilistClient { /** @returns {Promise>} */ async getUserLists (variables) { - const userId = this.userID?.viewer?.data?.Viewer.id - variables.id = userId - variables.sort = variables.sort?.replace('USER_SCORE_DESC', 'SCORE_DESC'); + variables.id = this.userID?.viewer?.data?.Viewer.id + variables.sort = variables.sort?.replace('USER_SCORE_DESC', 'SCORE_DESC') const query = /* js */` query($id: Int, $sort: [MediaListSort]) { MediaListCollection(userId: $id, type: ANIME, sort: $sort, forceSingleCompletedList: true) { @@ -551,7 +514,7 @@ class AnilistClient { const res = await this.alRequest(query, variables) - this.updateCache(res.data.MediaListCollection.lists.flatMap(list => list.entries.map(entry => entry.media))); + await this.updateCache(res.data.MediaListCollection.lists.flatMap(list => list.entries.map(entry => entry.media))) return res } @@ -594,7 +557,7 @@ class AnilistClient { /** @type {import('./al.d.ts').PagedQuery<{ airingSchedules: { timeUntilAiring: number, airingAt: number, episode: number, media: import('./al.d.ts').Media}[]}>} */ const res = await this.alRequest(query, variables) - this.updateCache(res.data.Page.airingSchedules?.map(({ media }) => media)) + await this.updateCache(res.data.Page.airingSchedules?.map(({media}) => media)) return res } @@ -617,12 +580,12 @@ class AnilistClient { async search (variables = {}) { variables.sort ||= 'SEARCH_MATCH' const query = /* js */` - query($page: Int, $perPage: Int, $sort: [MediaSort], $search: String, $onList: Boolean, $status: MediaStatus, $status_not: MediaStatus, $season: MediaSeason, $year: Int, $genre: [String], $tag: [String], $format: MediaFormat, $id_not: [Int]) { + query($page: Int, $perPage: Int, $sort: [MediaSort], $search: String, $onList: Boolean, $status: MediaStatus, $status_not: MediaStatus, $season: MediaSeason, $year: Int, $genre: [String], $tag: [String], $format: MediaFormat, $id_not: [Int], $idMal_not: [Int], $idMal: [Int]) { Page(page: $page, perPage: $perPage) { pageInfo { hasNextPage }, - media(id_not_in: $id_not, type: ANIME, search: $search, sort: $sort, onList: $onList, status: $status, status_not: $status_not, season: $season, seasonYear: $year, genre_in: $genre, tag_in: $tag, format: $format, format_not: MUSIC) { + media(id_not_in: $id_not, idMal_not_in: $idMal_not, idMal_in: $idMal, type: ANIME, search: $search, sort: $sort, onList: $onList, status: $status, status_not: $status_not, season: $season, seasonYear: $year, genre_in: $genre, tag_in: $tag, format: $format, format_not: MUSIC) { ${queryObjects} } } @@ -631,7 +594,7 @@ class AnilistClient { /** @type {import('./al.d.ts').PagedQuery<{media: import('./al.d.ts').Media[]}>} */ const res = await this.alRequest(query, variables) - this.updateCache(res.data.Page.media) + await this.updateCache(res.data.Page.media) return res } @@ -672,13 +635,23 @@ class AnilistClient { entry (variables) { const query = /* js */` - mutation($lists: [String], $id: Int, $status: MediaListStatus, $episode: Int, $repeat: Int, $score: Int) { - SaveMediaListEntry(mediaId: $id, status: $status, progress: $episode, repeat: $repeat, scoreRaw: $score, customLists: $lists) { + mutation($lists: [String], $id: Int, $status: MediaListStatus, $episode: Int, $repeat: Int, $score: Int, $startedAt: FuzzyDateInput, $completedAt: FuzzyDateInput) { + SaveMediaListEntry(mediaId: $id, status: $status, progress: $episode, repeat: $repeat, scoreRaw: $score, customLists: $lists, startedAt: $startedAt, completedAt: $completedAt) { id, status, progress, score, - repeat + repeat, + startedAt { + year, + month, + day + }, + completedAt { + year, + month, + day + } } }` @@ -718,8 +691,15 @@ class AnilistClient { } /** @param {import('./al.d.ts').Media[]} medias */ - updateCache (medias) { - this.mediaCache = { ...this.mediaCache, ...Object.fromEntries(medias.map(media => [media.id, media])) } + async updateCache (medias) { + for (const media of medias) { + if (!alToken) { + // attach any alternative authorization userList information + await Helper.fillEntry(media) + } + // Update the cache + this.mediaCache[media.id] = media + } } } diff --git a/common/modules/anime.js b/common/modules/anime.js index 1883618..1deb72e 100644 --- a/common/modules/anime.js +++ b/common/modules/anime.js @@ -9,6 +9,7 @@ import clipboard from './clipboard.js' import { search, key } from '@/views/Search.svelte' import { playAnime } from '@/views/TorrentSearch/TorrentModal.svelte' +import Helper from "@/modules/helper.js" const imageRx = /\.(jpeg|jpg|gif|png|webp)/i @@ -227,12 +228,17 @@ export async function playMedia (media) { } export function setStatus (status, other = {}, media) { + const fuzzyDate = Helper.getFuzzyDate(media, status) const variables = { id: media.id, + idMal: media.idMal, status, + score: media.mediaListEntry?.score || 0, + repeat: media.mediaListEntry?.repeat || 0, + ...fuzzyDate, ...other } - return anilistClient.entry(variables) + return Helper.entry(media, variables) } const episodeMetadataMap = {} diff --git a/common/modules/helper.js b/common/modules/helper.js new file mode 100644 index 0000000..6b3d853 --- /dev/null +++ b/common/modules/helper.js @@ -0,0 +1,310 @@ +import { alToken, malToken, isAuthorized } from '@/modules/settings.js' +import { anilistClient, codes } from '@/modules/anilist.js' +import { malClient } from '@/modules/myanimelist.js' +import { malDubs } from "@/modules/animedubs.js" +import { toast } from 'svelte-sonner' +import Fuse from 'fuse.js' + +export default class Helper { + + static statusName = { + CURRENT: 'Watching', + PLANNING: 'Planning', + COMPLETED: 'Completed', + PAUSED: 'Paused', + DROPPED: 'Dropped', + REPEATING: 'Rewatching' + } + + static sortMap(sort) { + switch(sort) { + case 'UPDATED_TIME_DESC': + return 'list_updated_at' + case 'STARTED_ON_DESC': + return 'list_start_date_nan' // doesn't exist, therefore we use custom logic. + case 'FINISHED_ON_DESC': + return 'list_finish_date_nan' // doesn't exist, therefore we use custom logic. + case 'PROGRESS_DESC': + return 'list_progress_nan' // doesn't exist, therefore we use custom logic. + case 'USER_SCORE_DESC': + return 'list_score' + } + } + + static statusMap(status) { + switch(status) { + // MyAnimeList to AniList + case 'watching': + return 'CURRENT' + case 'rewatching': + return 'REPEATING' // rewatching is determined by is_rewatching boolean (no individual list) + case 'plan_to_watch': + return 'PLANNING' + case 'completed': + return 'COMPLETED' + case 'dropped': + return 'DROPPED' + case 'on_hold': + return 'PAUSED' + // AniList to MyAnimeList + case 'CURRENT': + return 'watching' + case 'PLANNING': + return 'plan_to_watch' + case 'COMPLETED': + return 'completed' + case 'DROPPED': + return 'dropped' + case 'PAUSED': + return 'on_hold' + case 'REPEATING': + return 'watching' // repeating is determined by is_rewatching boolean (no individual list) + } + } + + static airingMap(status) { + switch(status) { + case 'finished_airing': + return 'FINISHED' + case 'currently_airing': + return 'RELEASING' + case 'not_yet_aired': + return 'NOT_YET_RELEASED' + } + } + + static getFuzzyDate(media, status) { + const updatedDate = new Date() + const fuzzyDate = { + year: updatedDate.getFullYear(), + month: updatedDate.getMonth() + 1, + day: updatedDate.getDate() + } + const startedAt = media.mediaListEntry?.startedAt?.year && media.mediaListEntry?.startedAt?.month && media.mediaListEntry?.startedAt?.day ? media.mediaListEntry.startedAt : (['CURRENT', 'REPEATING'].includes(status) ? fuzzyDate : undefined) + const completedAt = media.mediaListEntry?.completedAt?.year && media.mediaListEntry?.completedAt?.month && media.mediaListEntry?.completedAt?.day ? media.mediaListEntry.completedAt : (status === 'COMPLETED' ? fuzzyDate : undefined) + return {startedAt, completedAt} + } + + static sanitiseObject (object = {}) { + const safe = {} + for (const [key, value] of Object.entries(object)) { + if (value) safe[key] = value + } + return safe + } + + static isAniAuth() { + return alToken + } + + static isMalAuth() { + return malToken + } + + static isAuthorized() { + return isAuthorized() + } + + static getClient() { + return this.isAniAuth() ? anilistClient : malClient + } + + static getUser() { + return this.getClient().userID?.viewer?.data?.Viewer + } + + static getUserAvatar() { + if (anilistClient.userID?.viewer?.data?.Viewer) { + return anilistClient.userID.viewer.data.Viewer.avatar.medium + } else if (malClient.userID?.viewer?.data?.Viewer) { + return malClient.userID.viewer.data.Viewer.picture + } + } + + static isUserSort(variables) { + return ['UPDATED_TIME_DESC', 'STARTED_ON_DESC', 'FINISHED_ON_DESC', 'PROGRESS_DESC', 'USER_SCORE_DESC'].includes(variables?.sort) + } + + static userLists(variables) { + return (!this.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') + ? this.getClient().userLists.value + : this.getClient().getUserLists({sort: (this.isAniAuth() ? variables.sort : this.sortMap(variables.sort))}) + } + + static async entry(media, variables) { + let res = await this.getClient().entry(variables) + media.mediaListEntry = res.data.SaveMediaListEntry + return res + } + + static async delete(media) { + return await this.getClient().delete(...(this.isAniAuth() ? {id: media.mediaListEntry.id} : {idMal: media.idMal})) + } + + static matchTitle(media, phrase, keys) { + if (!phrase) { + return true + } + const options = { + includeScore: true, + threshold: 0.4, + keys: keys + } + return new Fuse([media], options).search(phrase).length > 0 + } + + /* + * This exists to fill in any queried AniList media with the user list media data from alternate authorizations. + */ + static async fillEntry(media) { + if (this.isMalAuth()) { + const userLists = await malClient.userLists.value + const malEntry = userLists.data.MediaList.find(({ node }) => node.id === media.idMal) + if (malEntry) { + const start_date = malEntry.node.my_list_status.start_date ? new Date(malEntry.node.my_list_status.start_date) : undefined + const finish_date = malEntry.node.my_list_status.finish_date ? new Date(malEntry.node.my_list_status.finish_date) : undefined + const startedAt = start_date ? { + year: start_date.getFullYear(), + month: start_date.getMonth() + 1, + day: start_date.getDate() + } : undefined + const completedAt = finish_date ? { + year: finish_date.getFullYear(), + month: finish_date.getMonth() + 1, + day: finish_date.getDate() + } : undefined + media.mediaListEntry = { + id: media.id, + progress: malEntry.node.my_list_status.num_episodes_watched, + repeat: malEntry.node.my_list_status.number_times_rewatched, + status: this.statusMap(malEntry.node.my_list_status?.is_rewatching ? 'rewatching' : malEntry.node.my_list_status?.status), + customLists: [], + score: malEntry.node.my_list_status.score, + startedAt, + completedAt + } + } + } + } + + static async updateEntry(filemedia) { + // check if values exist + if (filemedia.media && this.isAuthorized()) { + const { media, failed } = filemedia + + if (failed) return + if (media.status !== 'FINISHED' && media.status !== 'RELEASING') return + + // check if media can even be watched, ex: it was resolved incorrectly + // some anime/OVA's can have a single episode, or some movies can have multiple episodes + const singleEpisode = ((!media.episodes && (Number(filemedia.episode) === 1 || isNaN(Number(filemedia.episode)))) || (media.format === 'MOVIE' && media.episodes === 1)) && 1 // movie check + const videoEpisode = Number(filemedia.episode) || singleEpisode + const mediaEpisode = media.episodes || media.nextAiringEpisode?.episode || singleEpisode + + if (!videoEpisode || !mediaEpisode) return + // check episode range, safety check if `failed` didn't catch this + if (videoEpisode > mediaEpisode) return + + const lists = media.mediaListEntry?.customLists.filter(list => list.enabled).map(list => list.name) || [] + + const status = media.mediaListEntry?.status === 'REPEATING' ? 'REPEATING' : 'CURRENT' + const progress = media.mediaListEntry?.progress + + // check user's own watch progress + if (progress > videoEpisode) return + if (progress === videoEpisode && videoEpisode !== mediaEpisode && !singleEpisode) return + + const variables = { + repeat: media.mediaListEntry?.repeat || 0, + id: media.id, + status, + score: (media.mediaListEntry?.score ? media.mediaListEntry?.score : 0), + episode: videoEpisode, + lists + } + if (videoEpisode === mediaEpisode) { + variables.status = 'COMPLETED' + if (media.mediaListEntry?.status === 'REPEATING') variables.repeat = media.mediaListEntry.repeat + 1 + } + + Object.assign(variables, this.getFuzzyDate(media, status)) + + let res + if (this.isAniAuth()) { + res = await anilistClient.alEntry(lists, variables) + } else if (this.isMalAuth()) { + res = await malClient.malEntry(media, variables) + } + + const description = `Title: ${anilistClient.title(media)}\nStatus: ${this.statusName[media.mediaListEntry.status]}\nEpisode: ${videoEpisode} / ${media.episodes ? media.episodes : '?'}` + if (res?.data?.mediaListEntry || res?.data?.SaveMediaListEntry) { + console.log('List Updated: ' + description) + toast.success('List Updated', { + description, + duration: 6000 + }) + } else { + const error = `\n${429} - ${codes[429]}` + console.error('Failed to update user list with: ' + description + error) + toast.error('Failed to Update List', { + description: description + error, + duration: 9000 + }) + } + } + } + + static getPaginatedMediaList(page, perPage, variables, mediaList) { + const ids = this.isAniAuth() ? mediaList.filter(({ media }) => { + if ((!variables.hideSubs || malDubs.dubLists.value.dubbed.includes(media.idMal)) && + this.matchTitle(media, variables.search, ['title.userPreferred', 'title.english', 'title.romaji', 'title.native']) && + (!variables.genre || variables.genre.map(genre => genre.trim().toLowerCase()).every(genre => media.genres.map(genre => genre.trim().toLowerCase()).includes(genre))) && + (!variables.tag || variables.tag.map(tag => tag.trim().toLowerCase()).every(tag => media.tags.map(tag => tag.name.trim().toLowerCase()).includes(tag))) && + (!variables.season || variables.season === media.season) && + (!variables.year || variables.year === media.seasonYear) && + (!variables.format || variables.format === media.format) && + (!variables.status || variables.status === media.status) && + (!variables.continueWatching || (media.status === 'FINISHED' || media.mediaListEntry?.progress < media.nextAiringEpisode?.episode - 1))) { + return true + } + }).map(({ media }) => (this.isUserSort(variables) ? media : media.id)) : mediaList.filter(({ node }) => { + if ((!variables.hideSubs || malDubs.dubLists.value.dubbed.includes(node.id)) && + this.matchTitle(node, variables.search, ['title', 'alternative_titles.en', 'alternative_titles.ja']) && + (!variables.season || variables.season.toLowerCase() === node.start_season?.season.toLowerCase()) && + (!variables.year || variables.year === node.start_season?.year) && + (!variables.format || (variables.format !== 'TV_SHORT' && variables.format === node.media_type.toUpperCase()) || (variables.format === 'TV_SHORT' && node.average_episode_duration < 1200)) && + (!variables.status || variables.status === 'CANCELLED' || variables.status === this.airingMap(node.status))) { + // api does provide airing episode or tags, additionally genres are inaccurate and tags do not exist. + return true + } + }).map(({ node }) => node.id) + if (!ids.length) return {} + if (this.isUserSort(variables)) { + const updatedVariables = { ...variables } + delete updatedVariables.sort // delete user sort as you can't sort by user specific sorting on AniList when logged into MyAnimeList. + const startIndex = (perPage * (page - 1)) + const endIndex = startIndex + perPage + const paginatedIds = ids.slice(startIndex, endIndex) + const hasNextPage = ids.length > endIndex + const idIndexMap = paginatedIds.reduce((map, id, index) => { map[id] = index; return map }, {}) + return this.isAniAuth() ? { + data: { + Page: { + pageInfo: { + hasNextPage: hasNextPage + }, + media: paginatedIds + } + } + } : anilistClient.searchIDS({ page: 1, perPage, idMal: paginatedIds, ...this.sanitiseObject(updatedVariables) }).then(res => { + res.data.Page.pageInfo.hasNextPage = hasNextPage + res.data.Page.media = res.data.Page.media.sort((a, b) => { return idIndexMap[a.idMal] - idIndexMap[b.idMal] }) + return res + }) + } else { + return anilistClient.searchIDS({ page, perPage, ...({[this.isAniAuth() ? 'id' : 'idMal']: ids}), ...this.sanitiseObject(variables) }).then(res => { + return res + }) + } + } +} diff --git a/common/modules/mal.d.ts b/common/modules/mal.d.ts new file mode 100644 index 0000000..b62bcb5 --- /dev/null +++ b/common/modules/mal.d.ts @@ -0,0 +1,51 @@ +export type Media = { + id: number + title: string + alternative_titles: { + synonyms: string[] + en: string + ja: string + } + rank?: number + nsfw?: string + media_type: string + status: string + my_list_status?: AnimeListStatus + start_season?: { + year: number + season: string + } + average_episode_duration?: number + related_anime?: { + node: Media + relation_type: string + relation_type_formatted: string + }[] +} + +export type AnimeListStatus = { + status: string + score: number + num_episodes_watched: number + is_rewatching: boolean + start_date?: string + finish_date?: string + priority: number + number_times_rewatched: number + rewatch_value: number + updated_at: number +} + +export type Viewer = { + id: number + name: string + picture: string +} + +export type MediaList = { + node: Media +}[]; + +export type Query = { + data: T +} \ No newline at end of file diff --git a/common/modules/myanimelist.js b/common/modules/myanimelist.js new file mode 100644 index 0000000..49decf7 --- /dev/null +++ b/common/modules/myanimelist.js @@ -0,0 +1,252 @@ +import { writable } from 'simple-store-svelte' + +import { malToken, refreshMalToken } from '@/modules/settings.js' +import { codes } from "@/modules/anilist"; +import { toast } from 'svelte-sonner' +import Helper from '@/modules/helper.js' + +export const clientID = '4c2c172971b9164f924fd5925b443ac3' // app type MUST be set to other, do not generate a seed. + +function printError (error) { + console.warn(error) + toast.error('Search Failed', { + description: `Failed making request to MyAnimeList!\nTry again in a minute.\n${error.status || 429} - ${error.message || codes[error.status || 429]}`, + duration: 3000 + }) +} + +const queryFields = [ + 'synopsis', + 'alternative_titles', + 'mean', + 'rank', + 'popularity', + 'num_list_users', + 'num_scoring_users', + 'related_anime', + 'media_type', + 'num_episodes', + 'status', + 'my_list_status', + 'start_date', + 'end_date', + 'start_season', + 'broadcast', + 'studios', + 'authors{first_name,last_name}', + 'source', + 'genres', + 'average_episode_duration', + 'rating' +] + +class MALClient { + /** @type {import('simple-store-svelte').Writable>} */ + userLists = writable() + + userID = malToken + + constructor () { + if (this.userID?.viewer?.data?.Viewer) { + this.userLists.value = this.getUserLists({ sort: 'list_updated_at' }) + // update userLists every 15 mins + setInterval(() => { + this.userLists.value = this.getUserLists({ sort: 'list_updated_at' }) + }, 1000 * 60 * 15) + } + } + + /** + * @param {Record} query + * @param {Record} body + * @returns {Promise>} + */ + malRequest (query, body = {}) { + /** @type {RequestInit} */ + const options = { + method: `${query.type}`, + headers: { + 'Authorization': `Bearer ${query.token ? query.token : this.userID.token}`, + 'Content-Type': 'application/x-www-form-urlencoded' + } + } + if (Object.keys(body).length > 0) { + options.body = new URLSearchParams(body) + } + return this.handleRequest(query, options) + } + + /** + * @param {Record} query + * @param {Record} options + * @returns {Promise>} + */ + async handleRequest (query, options) { + let res = {} + try { + res = await fetch(`https://api.myanimelist.net/v2/${query.path}`, options) + } catch (e) { + if (res && res && res.status !== 404) { + switch (res.error) { + case 'forbidden': + case 'invalid_token': + if (await refreshMalToken()) { // refresh authorization token as it typically expires every 31 days. + return this.handleRequest(query, options); + } + throw new Error("NotAuthenticatedError: " + res.message ?? res.error); + case 'invalid_content': + throw new Error(`This Entry is currently pending approval. It can't be saved to mal for now`); + default: + throw new Error(res.message ?? res.error); + } + } else if (!res || res.status !== 404) { + throw e + } + } + if (!res.ok && (res.status === 429 || res.status === 500)) { + throw res + } + let json = null + try { + json = await res.json() + } catch (error) { + if (res.ok) printError(error) + } + if (!res.ok && res.status !== 404) { + if (json) { + for (const error of json?.errors || []) { + printError(error) + } + } else { + printError(res) + } + } + return json + } + + async malEntry (media, variables) { + variables.idMal = media.idMal + const res = await malClient.entry(variables) + media.mediaListEntry = res.data.SaveMediaListEntry + return res + } + + /** @returns {Promise>} */ + async getUserLists (variables) { + const limit = 1000 // max possible you can fetch + let offset = 0 + let allMediaList = [] + let hasNextPage = true + + // Check and replace specific sort values + const customSorts = ['list_start_date_nan', 'list_finish_date_nan', 'list_progress_nan'] + if (customSorts.includes(variables.sort)) { + variables.originalSort = variables.sort + variables.sort = 'list_updated_at' + } + + while (hasNextPage) { + const query = { + type: 'GET', + path: `users/@me/animelist?fields=${queryFields}&nsfw=true&limit=${limit}&offset=${offset}&sort=${variables.sort}` + } + + const res = await this.malRequest(query) + allMediaList = allMediaList.concat(res.data) + + if (res.data.length < limit) { + hasNextPage = false + } else { + offset += limit + await new Promise(resolve => setTimeout(resolve, 1000)); // 1-second delay to prevent too many consecutive requests ip block. + } + } + + // Custom sorting based on original variables.sort value + if (variables.originalSort === 'list_start_date_nan') { + allMediaList.sort((a, b) => { + return new Date(b.node.my_list_status.start_date) - new Date(a.node.my_list_status.start_date); + }); + } else if (variables.originalSort === 'list_finish_date_nan') { + allMediaList.sort((a, b) => { + return new Date(b.node.my_list_status.finish_date) - new Date(a.node.my_list_status.finish_date); + }); + } else if (variables.originalSort === 'list_progress_nan') { + allMediaList.sort((a, b) => { + return b.node.my_list_status.num_episodes_watched - a.node.my_list_status.num_episodes_watched + }) + } + + return { + data: { + MediaList: allMediaList + } + } + } + + /** @returns {Promise>} */ + async viewer (token) { + const query = { + type: 'GET', + path: 'users/@me', + token + } + return { + data: { + Viewer: await this.malRequest(query) + } + } + } + + async entry (variables) { + const query = { + type: 'PUT', + path: `anime/${variables.idMal}/my_list_status` + } + const padNumber = (num) => num !== undefined && num !== null ? String(num).padStart(2, '0') : null; + const start_date = variables.startedAt?.year && variables.startedAt.month && variables.startedAt.day ? `${variables.startedAt.year}-${padNumber(variables.startedAt.month)}-${padNumber(variables.startedAt.day)}` : null + const finish_date = variables.completedAt?.year && variables.completedAt.month && variables.completedAt.day ? `${variables.completedAt.year}-${padNumber(variables.completedAt.month)}-${padNumber(variables.completedAt.day)}` : null + const updateData = { + status: Helper.statusMap(variables.status), + is_rewatching: variables.status?.includes('REPEATING'), + num_watched_episodes: variables.episode || 0, + num_times_rewatched: variables.repeat || 0, + score: variables.score || 0 + } + if (start_date) { + updateData.start_date = start_date + } + if (finish_date) { + updateData.finish_date = finish_date + } + const res = await this.malRequest(query, updateData) + this.userLists.value = this.getUserLists({ sort: 'list_updated_at' }) + + return res ? { + data: { + SaveMediaListEntry: { + id: variables.id, + status: variables.status, + progress: variables.episode, + score: variables.score, + repeat: variables.repeat, + startedAt: variables.startedAt, + completedAt: variables.completedAt, + customLists: [] + } + } + } : res + } + + async delete (variables) { + const query = { + type: 'DELETE', + path: `anime/${variables.idMal}/my_list_status` + } + const res = await this.malRequest(query) + this.userLists.value = this.getUserLists({ sort: 'list_updated_at' }) + return res + } +} + +export const malClient = new MALClient() diff --git a/common/modules/sections.js b/common/modules/sections.js index 69bb42f..5f972af 100644 --- a/common/modules/sections.js +++ b/common/modules/sections.js @@ -1,7 +1,9 @@ import { anilistClient, currentSeason, currentYear } from '@/modules/anilist.js' +import { malDubs } from "@/modules/animedubs.js" import { writable } from 'simple-store-svelte' -import { settings, alToken } from '@/modules/settings.js' +import { settings } from '@/modules/settings.js' import { RSSManager } from '@/modules/rss.js' +import Helper from '@/modules/helper.js' export const hasNextPage = writable(true) @@ -24,16 +26,13 @@ export default class SectionsManager { static createFallbackLoad (variables, type) { return (page = 1, perPage = 50, search = variables) => { - if (search.hideMyAnime) { - const res = anilistClient.userLists.value.then(res => { - const ids = Array.from(new Set(res.data.MediaListCollection.lists.filter(({ status }) => search.hideStatus.includes(status)).flatMap(list => list.entries.map(({ media }) => media.id)))); - return anilistClient.search({ page, perPage, id_not: ids, ...SectionsManager.sanitiseObject(search) }) - }) - return SectionsManager.wrapResponse(res, perPage, type) - } else { - const res = anilistClient.search({ page, perPage, ...SectionsManager.sanitiseObject(search) }) - return SectionsManager.wrapResponse(res, perPage, type) - } + const hideSubs = search.hideSubs ? { idMal: malDubs.dubLists.value.dubbed } : {} + const res = (search.hideMyAnime && Helper.isAuthorized()) ? Helper.userLists(search).then(res => { + const hideMyAnime = Helper.isAniAuth() ? { id_not: Array.from(new Set(res.data.MediaListCollection.lists.filter(({ status }) => search.hideStatus.includes(status)).flatMap(list => list.entries.map(({ media }) => media.id)))) } + : {idMal_not: res.data.MediaList.filter(({ node }) => search.hideStatus.includes(Helper.statusMap(node.my_list_status.status))).map(({ node }) => node.id)} + return anilistClient.search({ page, perPage, ...hideSubs, ...hideMyAnime, ...SectionsManager.sanitiseObject(search) }) + }) : anilistClient.search({ page, perPage, ...hideSubs, ...SectionsManager.sanitiseObject(search) }) + return SectionsManager.wrapResponse(res, perPage, type) } } @@ -44,56 +43,12 @@ export default class SectionsManager { return Array.from({ length }, (_, i) => ({ type, data: SectionsManager.fromPending(res, i) })) } - static sanitiseObject (object = {}) { - const safe = {} - for (const [key, value] of Object.entries(object)) { - if (value) safe[key] = value - } - return safe - } - static async fromPending (arr, i) { const { data } = await arr return data?.Page.media[i] } - - static isUserSort(variables) { - return ['UPDATED_TIME_DESC', 'STARTED_ON_DESC', 'FINISHED_ON_DESC', 'PROGRESS_DESC', 'USER_SCORE_DESC'].includes(variables.sort); - } - static async getPaginatedMediaList(_page, perPage, variables, mediaList) { - const ids = mediaList.filter(({ media }) => { - if ((!variables.search || (media.title.userPreferred && media.title.userPreferred.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.english && media.title.english.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.romaji && media.title.romaji.toLowerCase().includes(variables.search.toLowerCase())) || (media.title.native && media.title.native.toLowerCase().includes(variables.search.toLowerCase()))) && - (!variables.genre || variables.genre.map(genre => genre.trim().toLowerCase()).every(genre => media.genres.map(genre => genre.trim().toLowerCase()).includes(genre))) && - (!variables.tag || variables.tag.map(tag => tag.trim().toLowerCase()).every(tag => media.tags.map(tag => tag.name.trim().toLowerCase()).includes(tag))) && - (!variables.season || variables.season === media.season) && - (!variables.year || variables.year === media.seasonYear) && - (!variables.format || variables.format === media.format) && - (!variables.status || variables.status === media.status) && - (!variables.continueWatching || (media.status === 'FINISHED' || media.mediaListEntry?.progress < media.nextAiringEpisode?.episode - 1))) { - return true; - } - }).map(({ media }) => (this.isUserSort(variables) ? media : media.id)); - if (!ids.length) return {} - if (this.isUserSort(variables)) { - const startIndex = (perPage * (_page - 1)); - const endIndex = startIndex + perPage; - const paginatedIds = ids.slice(startIndex, endIndex); - const hasNextPage = ids.length > endIndex; - return { - data: { - Page: { - pageInfo: { - hasNextPage: hasNextPage - }, - media: paginatedIds - } - } - } - } else { - return anilistClient.searchIDS({ _page, perPage, id: ids, ...SectionsManager.sanitiseObject(variables) }) - } - } + static sanitiseObject = Helper.sanitiseObject } // list of all possible home screen sections @@ -127,9 +82,10 @@ function createSections () { }), // user specific sections { - title: 'Sequels You Missed', variables : { disableHide: true }, + title: 'Sequels You Missed', variables : { sort: 'POPULARITY_DESC', userList: true, disableHide: true }, load: (page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { + if (Helper.isMalAuth()) return {} // not going to bother handling this, see below. + const res = Helper.userLists(variables).then(res => { const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'COMPLETED')?.entries if (!mediaList) return {} const ids = mediaList.flatMap(({ media }) => { @@ -140,86 +96,91 @@ function createSections () { }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() || Helper.isMalAuth() // disable this section when authenticated with MyAnimeList. API for userLists fail to return relations and likely will never be fixed on their end. }, { title: 'Continue Watching', variables: { sort: 'UPDATED_TIME_DESC', userList: true, continueWatching: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) - const res = userLists.then(res => { - const mediaList = res.data.MediaListCollection.lists.reduce((filtered, { status, entries }) => { + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() ? res.data.MediaListCollection.lists.reduce((filtered, { status, entries }) => { return (status === 'CURRENT' || status === 'REPEATING') ? filtered.concat(entries) : filtered - }, []); + }, []) : res.data.MediaList.filter(({ node }) => (node.my_list_status.status === Helper.statusMap('CURRENT') || node.my_list_status.is_rewatching)) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) - }); - return SectionsManager.wrapResponse(res, perPage); + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) + }) + return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, { title: 'Watching List', variables : { sort: 'UPDATED_TIME_DESC', userList: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) - const res = userLists.then(res => { - const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'CURRENT')?.entries + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() + ? res.data.MediaListCollection.lists.find(({ status }) => status === 'CURRENT')?.entries + : res.data.MediaList.filter(({ node }) => node.my_list_status.status === Helper.statusMap('CURRENT')) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, { title: 'Completed List', variables : { sort: 'UPDATED_TIME_DESC', userList: true, completedList: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) - const res = userLists.then(res => { - const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'COMPLETED')?.entries + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() + ? res.data.MediaListCollection.lists.find(({ status }) => status === 'COMPLETED')?.entries + : res.data.MediaList.filter(({ node }) => node.my_list_status.status === Helper.statusMap('COMPLETED')) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, { - title: 'Planning List', variables : { sort: 'POPULARITY_DESC', userList: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const res = anilistClient.userLists.value.then(res => { - const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'PLANNING')?.entries + title: 'Planning List', variables : { test: 'Planning', sort: 'POPULARITY_DESC', userList: true, disableHide: true }, + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() + ? res.data.MediaListCollection.lists.find(({ status }) => status === 'PLANNING')?.entries + : res.data.MediaList.filter(({ node }) => node.my_list_status.status === Helper.statusMap('PLANNING')) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, { title: 'Paused List', variables : { sort: 'UPDATED_TIME_DESC', userList: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) - const res = userLists.then(res => { - const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'PAUSED')?.entries + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() + ? res.data.MediaListCollection.lists.find(({ status }) => status === 'PAUSED')?.entries + : res.data.MediaList.filter(({ node }) => node.my_list_status.status === Helper.statusMap('PAUSED')) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, { title: 'Dropped List', variables : { sort: 'UPDATED_TIME_DESC', userList: true, disableHide: true }, - load: (_page = 1, perPage = 50, variables = {}) => { - const userLists = (!SectionsManager.isUserSort(variables) || variables.sort === 'UPDATED_TIME_DESC') ? anilistClient.userLists.value : anilistClient.getUserLists({ sort: variables.sort }) - const res = userLists.then(res => { - const mediaList = res.data.MediaListCollection.lists.find(({ status }) => status === 'DROPPED')?.entries + load: (page = 1, perPage = 50, variables = {}) => { + const res = Helper.userLists(variables).then(res => { + const mediaList = Helper.isAniAuth() + ? res.data.MediaListCollection.lists.find(({ status }) => status === 'DROPPED')?.entries + : res.data.MediaList.filter(({ node }) => node.my_list_status.status === Helper.statusMap('DROPPED')) if (!mediaList) return {} - return SectionsManager.getPaginatedMediaList(_page, perPage, variables, mediaList) + return Helper.getPaginatedMediaList(page, perPage, variables, mediaList) }) return SectionsManager.wrapResponse(res, perPage) }, - hide: !alToken + hide: !Helper.isAuthorized() }, // common, non-user specific sections { title: 'Popular This Season', variables: { sort: 'POPULARITY_DESC', season: currentSeason, year: currentYear, hideMyAnime: settings.value.hideMyAnime, hideStatus: ['COMPLETED', 'DROPPED'] } }, diff --git a/common/modules/settings.js b/common/modules/settings.js index f494ae4..040c193 100644 --- a/common/modules/settings.js +++ b/common/modules/settings.js @@ -1,10 +1,11 @@ import { writable } from 'simple-store-svelte' import { defaults } from './util.js' import IPC from '@/modules/ipc.js' -import { anilistClient } from './anilist.js' import { toast } from 'svelte-sonner' /** @type {{viewer: import('./al').Query<{Viewer: import('./al').Viewer}>, token: string} | null} */ export let alToken = JSON.parse(localStorage.getItem('ALviewer')) || null +/** @type {{viewer: import('./mal').Query<{Viewer: import('./mal').Viewer}>, token: string} | null} */ +export let malToken = JSON.parse(localStorage.getItem('MALviewer')) || null let storedSettings = { ...defaults } @@ -35,14 +36,29 @@ export function resetSettings () { settings.value = { ...defaults, ...scopedDefaults } } +export function isAuthorized() { + return alToken || malToken +} + window.addEventListener('paste', ({ clipboardData }) => { if (clipboardData.items?.[0]) { if (clipboardData.items[0].type === 'text/plain' && clipboardData.items[0].kind === 'string') { clipboardData.items[0].getAsString(text => { - let token = text.split('access_token=')?.[1]?.split('&token_type')?.[0] - if (token) { - if (token.endsWith('/')) token = token.slice(0, -1) - handleToken(token) + if (text.includes("access_token=")) { // is an AniList token + let token = text.split('access_token=')?.[1]?.split('&token_type')?.[0] + if (token) { + if (token.endsWith('/')) token = token.slice(0, -1) + handleToken(token) + } + } else if (text.includes("code=") && text.includes("&state")) { // is a MyAnimeList authorization + let code = line.split('code=')[1].split('&state')[0] + let state = line.split('&state=')[1] + if (code && state) { + if (code.endsWith('/')) code = code.slice(0, -1) + if (state.endsWith('/')) state = state.slice(0, -1) + if (state.includes('%')) state = decodeURIComponent(state) + handleMalToken(code, state) + } } }) } @@ -51,6 +67,7 @@ window.addEventListener('paste', ({ clipboardData }) => { IPC.on('altoken', handleToken) async function handleToken (token) { alToken = { token, viewer: null } + const { anilistClient } = await import('./anilist.js') const viewer = await anilistClient.viewer({ token }) if (!viewer.data?.Viewer) { toast.error('Failed to sign in with AniList. Please try again.', { description: JSON.stringify(viewer) }) @@ -64,3 +81,68 @@ async function handleToken (token) { localStorage.setItem('ALviewer', JSON.stringify({ token, viewer })) location.reload() } + +IPC.on('maltoken', handleMalToken) +async function handleMalToken (code, state) { + const { clientID, malClient } = await import('./myanimelist.js') + if (!state || !code) { + toast.error('Failed to sign in with MyAnimeList. Please try again.') + console.error('Failed to get the state and code from MyAnimeList.') + return + } + const response = await fetch('https://myanimelist.net/v1/oauth2/token', { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ + client_id: clientID, + grant_type: 'authorization_code', + code: code, + code_verifier: sessionStorage.getItem(state) + }) + }) + if (!response.ok) { + toast.error('Failed to sign in with MyAnimeList. Please try again.', { description: JSON.stringify(response.status) }) + console.error('Failed to get MyAnimeList User Token.', response) + return + } + const oauth = await response.json() + malToken = { token: oauth.access_token, refresh:oauth.refresh_token, viewer: null } + const viewer = await malClient.viewer(oauth.access_token) + if (!viewer?.data?.Viewer?.id) { + toast.error('Failed to sign in with MyAnimeList. Please try again.', { description: JSON.stringify(viewer) }) + console.error(viewer) + return + } else if (!viewer?.data?.Viewer?.picture) { + viewer.data.Viewer.picture = 'https://cdn.myanimelist.net/images/kaomoji_mal_white.png' // set default image if user doesn't have an image. + } + localStorage.setItem('MALviewer', JSON.stringify({ token: oauth.access_token, refresh: oauth.refresh_token, viewer })) + location.reload() +} + +export async function refreshMalToken () { + const { clientID } = await import('./myanimelist.js') + const response = await fetch('https://myanimelist.net/v1/oauth2/token', { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ + client_id: clientID, + grant_type: 'refresh_token', + refresh_token: malToken.refresh + }) + }) + if (!response.ok) { + toast.error('Failed to re-authenticate with MyAnimeList. You will need to log in again.', { description: JSON.stringify(response.status) }) + console.error('Failed to refresh MyAnimeList User Token.', response) + malToken = null + localStorage.removeItem('MALviewer') + return + } + const oauth = await response.json() + const viewer = malToken.viewer + malToken = { token: oauth.access_token, refresh:oauth.refresh_token, viewer: viewer } + localStorage.setItem('MALviewer', JSON.stringify({ token: oauth.access_token, refresh: oauth.refresh_token, viewer })) +} diff --git a/common/modules/util.js b/common/modules/util.js index 8857420..de17765 100644 --- a/common/modules/util.js +++ b/common/modules/util.js @@ -1,4 +1,5 @@ import { SUPPORTS } from '@/modules/support.js' +import levenshtein from 'js-levenshtein' export function countdown (s) { const d = Math.floor(s / (3600 * 24)) @@ -93,6 +94,23 @@ export function generateRandomHexCode (len) { return hexCode } +export function matchPhrase(search, phrase, threshold) { + if (!search) return false + const normalizedSearch = search.toLowerCase().replace(/[^\w\s]/g, '') + phrase = Array.isArray(phrase) ? phrase : [phrase] + + for (let p of phrase) { + const normalizedPhrase = p.toLowerCase().replace(/[^\w\s]/g, '') + if (normalizedSearch.includes(normalizedPhrase)) return true + + const wordsInFileName = normalizedSearch.split(/\s+/) + for (let word of wordsInFileName) { + if (levenshtein(word, normalizedPhrase) <= threshold) return true + } + } + return false +} + export function throttle (fn, time) { let wait = false return (...args) => { diff --git a/common/public/anilist_logo.png b/common/public/anilist_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..78590b39cb4850cb44968668a44b8dca711b857b GIT binary patch literal 77072 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 H*FN&Uj`uZH literal 0 HcmV?d00001 diff --git a/common/public/myanimelist_logo.png b/common/public/myanimelist_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7d1f9e1e36c896681b611c7dab42275ed5f1f3f6 GIT binary patch literal 223688 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%0D;jv++e9 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 ZQbGem?Lnv`hKs+RYCeFdma05_{(q!RJMRDh literal 0 HcmV?d00001 diff --git a/common/views/Home/Home.svelte b/common/views/Home/Home.svelte index 6251dfe..1228be9 100644 --- a/common/views/Home/Home.svelte +++ b/common/views/Home/Home.svelte @@ -2,6 +2,7 @@ import SectionsManager, { sections } from '@/modules/sections.js' import { settings } from '@/modules/settings.js' import { anilistClient, currentSeason, currentYear } from '@/modules/anilist.js' + import Helper from '@/modules/helper.js' const bannerData = anilistClient.search({ method: 'Search', sort: 'POPULARITY_DESC', perPage: 15, onList: false, season: currentSeason, year: currentYear, status_not: 'NOT_YET_RELEASED' }) @@ -15,9 +16,9 @@ for (const sectionTitle of settings.value.homeSections) manager.add(mappedSections[sectionTitle]) - if (anilistClient.userID?.viewer?.data?.Viewer) { + if (Helper.getUser()) { const userSections = ['Continue Watching', 'Sequels You Missed', 'Planning List', 'Completed List', 'Paused List', 'Dropped List', 'Watching List'] - anilistClient.userLists.subscribe(value => { + Helper.getClient().userLists.subscribe(value => { if (!value) return for (const section of manager.sections) { // remove preview value, to force UI to re-request data, which updates it once in viewport diff --git a/common/views/Home/Section.svelte b/common/views/Home/Section.svelte index eb66ef5..87fa99d 100644 --- a/common/views/Home/Section.svelte +++ b/common/views/Home/Section.svelte @@ -14,7 +14,7 @@ function deferredLoad (element) { const observer = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { - if (!opts.preview.value) opts.preview.value = opts.load(1, 15) + if (!opts.preview.value) opts.preview.value = opts.load(1, 15, { ...opts.variables }) observer.unobserve(element) } }, { threshold: 0 }) @@ -42,7 +42,7 @@