diff options
Diffstat (limited to 'src/lib/Data/AniList')
| -rw-r--r-- | src/lib/Data/AniList/activity.ts | 12 | ||||
| -rw-r--r-- | src/lib/Data/AniList/cacheHydration.ts | 2 | ||||
| -rw-r--r-- | src/lib/Data/AniList/character.ts | 32 | ||||
| -rw-r--r-- | src/lib/Data/AniList/follow.ts | 2 | ||||
| -rw-r--r-- | src/lib/Data/AniList/following.ts | 4 | ||||
| -rw-r--r-- | src/lib/Data/AniList/forum.ts | 2 | ||||
| -rw-r--r-- | src/lib/Data/AniList/identity.ts | 6 | ||||
| -rw-r--r-- | src/lib/Data/AniList/media.ts | 51 | ||||
| -rw-r--r-- | src/lib/Data/AniList/notifications.ts | 6 | ||||
| -rw-r--r-- | src/lib/Data/AniList/prequels.ts | 2 | ||||
| -rw-r--r-- | src/lib/Data/AniList/user.ts | 4 | ||||
| -rw-r--r-- | src/lib/Data/AniList/wrapped.ts | 15 |
12 files changed, 67 insertions, 71 deletions
diff --git a/src/lib/Data/AniList/activity.ts b/src/lib/Data/AniList/activity.ts index 11466cc5..07dbeff7 100644 --- a/src/lib/Data/AniList/activity.ts +++ b/src/lib/Data/AniList/activity.ts @@ -115,7 +115,7 @@ export const activityHistoryOptions = async ( }), }) ).json() - )["data"]["User"]; + ).data.User; }; const convertToTimezoneOffset = (timeStr: string) => { @@ -228,7 +228,7 @@ export const fullActivityHistory = async ( for (const activity of currentPage.data.Page.activities) activities.push(activity); - while (currentPage["data"]["Page"]["pageInfo"]["hasNextPage"]) { + while (currentPage.data.Page.pageInfo.hasNextPage) { if (disableLoopingActivityCounter) break; for (const activity of currentPage.data.Page.activities) @@ -276,7 +276,7 @@ export const fullActivityHistory = async ( } fullLocalActivityHistory = fullLocalActivityHistory.filter( - (a) => !isNaN(a.date), + (a) => !Number.isNaN(a.date), ); if (new Date().getMonth() > 6) @@ -320,7 +320,7 @@ export const activityLikes = async (id: number): Promise<Partial<User>[]> => { }) ).json(); - return activityResponse["data"]["Activity"]["likes"]; + return activityResponse.data.Activity.likes; }; export const activityText = async ( @@ -343,10 +343,10 @@ export const activityText = async ( }), }) ).json(); - let text = activityResponse["data"]["Activity"]["text"]; + let text = activityResponse.data.Activity.text; if (replies) - for (const reply of activityResponse["data"]["Activity"]["replies"]) + for (const reply of activityResponse.data.Activity.replies) text += reply.text; return text; diff --git a/src/lib/Data/AniList/cacheHydration.ts b/src/lib/Data/AniList/cacheHydration.ts index 61cb1e60..ee5ba2f1 100644 --- a/src/lib/Data/AniList/cacheHydration.ts +++ b/src/lib/Data/AniList/cacheHydration.ts @@ -1,8 +1,8 @@ +import localforage from "localforage"; import { browser } from "$app/environment"; import anime from "$stores/anime"; import lastPruneTimes from "$stores/lastPruneTimes"; import manga from "$stores/manga"; -import localforage from "localforage"; type MediaCacheKind = "anime" | "manga"; const cacheStorageKey = (kind: MediaCacheKind) => `${kind}:v3`; diff --git a/src/lib/Data/AniList/character.ts b/src/lib/Data/AniList/character.ts index 3c53b91b..e694edc7 100644 --- a/src/lib/Data/AniList/character.ts +++ b/src/lib/Data/AniList/character.ts @@ -43,28 +43,28 @@ export const todaysCharacterBirthdays = async (): Promise<Character[]> => { let page = 1; let currentPage = await charactersPage(page); - for (const character of currentPage["data"]["Page"]["characters"]) + for (const character of currentPage.data.Page.characters) characters.push({ - id: character["id"], + id: character.id, name: { - full: character["name"]["full"], + full: character.name.full, }, image: { - large: character["image"]["large"], - medium: character["image"]["medium"], + large: character.image.large, + medium: character.image.medium, }, }); - while (currentPage["data"]["Page"]["pageInfo"]["hasNextPage"]) { - for (const character of currentPage["data"]["Page"]["characters"]) + while (currentPage.data.Page.pageInfo.hasNextPage) { + for (const character of currentPage.data.Page.characters) characters.push({ - id: character["id"], + id: character.id, name: { - full: character["name"]["full"], + full: character.name.full, }, image: { - large: character["image"]["large"], - medium: character["image"]["medium"], + large: character.image.large, + medium: character.image.medium, }, }); @@ -72,15 +72,15 @@ export const todaysCharacterBirthdays = async (): Promise<Character[]> => { currentPage = await charactersPage(page); } - for (const character of currentPage["data"]["Page"]["characters"]) + for (const character of currentPage.data.Page.characters) characters.push({ - id: character["id"], + id: character.id, name: { - full: character["name"]["full"], + full: character.name.full, }, image: { - large: character["image"]["large"], - medium: character["image"]["medium"], + large: character.image.large, + medium: character.image.medium, }, }); diff --git a/src/lib/Data/AniList/follow.ts b/src/lib/Data/AniList/follow.ts index 6aec8b9a..daafc8f6 100644 --- a/src/lib/Data/AniList/follow.ts +++ b/src/lib/Data/AniList/follow.ts @@ -45,5 +45,5 @@ export const toggleFollow = async ( }), }) ).json() - )["data"]["ToggleFollow"]; + ).data.ToggleFollow; }; diff --git a/src/lib/Data/AniList/following.ts b/src/lib/Data/AniList/following.ts index 60bb3ccc..b8184e53 100644 --- a/src/lib/Data/AniList/following.ts +++ b/src/lib/Data/AniList/following.ts @@ -1,4 +1,4 @@ -import { user, type User } from "./user"; +import { type User, user } from "./user"; export interface FollowingPage { data: { @@ -46,7 +46,7 @@ export const followers = async (name: string): Promise<Partial<User>[]> => { for (const activity of currentPage.data.Page.following) activities.push(activity); - while (currentPage["data"]["Page"]["pageInfo"]["hasNextPage"]) { + while (currentPage.data.Page.pageInfo.hasNextPage) { for (const activity of currentPage.data.Page.following) activities.push(activity); diff --git a/src/lib/Data/AniList/forum.ts b/src/lib/Data/AniList/forum.ts index 05cb508c..b69e86ff 100644 --- a/src/lib/Data/AniList/forum.ts +++ b/src/lib/Data/AniList/forum.ts @@ -81,5 +81,5 @@ export const threadLikes = async (id: number): Promise<Partial<User>[]> => { }) ).json(); - return activityResponse["data"]["Thread"]["likes"]; + return activityResponse.data.Thread.likes; }; diff --git a/src/lib/Data/AniList/identity.ts b/src/lib/Data/AniList/identity.ts index 973e1184..073df29b 100644 --- a/src/lib/Data/AniList/identity.ts +++ b/src/lib/Data/AniList/identity.ts @@ -29,9 +29,9 @@ export const userIdentity = async ( ).json(); return { - id: userIdResponse["data"]["Viewer"]["id"], - name: userIdResponse["data"]["Viewer"]["name"], - avatar: userIdResponse["data"]["Viewer"]["avatar"]["large"], + id: userIdResponse.data.Viewer.id, + name: userIdResponse.data.Viewer.name, + avatar: userIdResponse.data.Viewer.avatar.large, }; }; diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts index 0a83dda6..d38d073e 100644 --- a/src/lib/Data/AniList/media.ts +++ b/src/lib/Data/AniList/media.ts @@ -1,16 +1,16 @@ +import localforage from "localforage"; +import { get } from "svelte/store"; import { browser } from "$app/environment"; import type { AniListAuthorisation } from "$lib/Data/AniList/identity"; import { parseJsonStringOrDefault } from "$lib/Effect/json"; -import type { UserIdentity } from "./identity"; +import { options as getOptions, type Options } from "$lib/Notification/options"; import anime from "$stores/anime"; +import lastPruneTimes from "$stores/lastPruneTimes"; +import locale from "$stores/locale"; import manga from "$stores/manga"; import settings from "$stores/settings"; -import lastPruneTimes from "$stores/lastPruneTimes"; -import { options as getOptions, type Options } from "$lib/Notification/options"; +import type { UserIdentity } from "./identity"; import type { PrequelRelation, PrequelRelations } from "./prequels"; -import localforage from "localforage"; -import locale from "$stores/locale"; -import { get } from "svelte/store"; export enum Type { Anime, @@ -340,21 +340,20 @@ export const mediaListCollection = async ( currentLastPruneAt = hydratedInputs.currentLastPruneAt; if (String(currentLastPruneAt) === "") { - if (type === Type.Anime) - lastPruneTimes.setKey("anime", new Date().getTime()); - else lastPruneTimes.setKey("manga", new Date().getTime()); + if (type === Type.Anime) lastPruneTimes.setKey("anime", Date.now()); + else lastPruneTimes.setKey("manga", Date.now()); } else { if ( - (new Date().getTime() - Number(currentLastPruneAt)) / 1000 / 60 > + (Date.now() - Number(currentLastPruneAt)) / 1000 / 60 > Number(currentCacheMinutes) || options.forcePrune ) { if (type === Type.Anime) { - lastPruneTimes.setKey("anime", new Date().getTime()); + lastPruneTimes.setKey("anime", Date.now()); if (usesSharedMediaStore(options)) anime.set(""); } else { - lastPruneTimes.setKey("manga", new Date().getTime()); + lastPruneTimes.setKey("manga", Date.now()); if (usesSharedMediaStore(options)) manga.set(""); } @@ -387,14 +386,14 @@ export const mediaListCollection = async ( ).json(); if ( - !userIdResponse["data"] || - !userIdResponse["data"]["MediaListCollection"] || - !userIdResponse["data"]["MediaListCollection"]["lists"] + !userIdResponse.data || + !userIdResponse.data.MediaListCollection || + !userIdResponse.data.MediaListCollection.lists ) return []; const flattened = flattenLists( - userIdResponse["data"]["MediaListCollection"]["lists"], + userIdResponse.data.MediaListCollection.lists, options.all, ); @@ -518,15 +517,13 @@ export const recentMediaActivities = async ( ).json(); const guesses: number[] = []; - activities["data"]["Page"]["activities"].forEach( - (activity: { progress: string }) => { - if (activity.progress !== null) { - const progress = Number((activity.progress.match(/\d+$/) || [0])[0]); + activities.data.Page.activities.forEach((activity: { progress: string }) => { + if (activity.progress !== null) { + const progress = Number((activity.progress.match(/\d+$/) || [0])[0]); - if (progress !== 65535) guesses.push(progress); - } - }, - ); + if (progress !== 65535) guesses.push(progress); + } + }); guesses.sort((a, b) => b - a); if (guesses.length) { @@ -588,8 +585,8 @@ export const recentMediaActivities = async ( // } // if (activities['data']['MediaList']['progress'] !== null) { - if (activities["data"]["MediaList"]["progress"] > bestGuess) - bestGuess = activities["data"]["MediaList"]["progress"]; + if (activities.data.MediaList.progress > bestGuess) + bestGuess = activities.data.MediaList.progress; // } return Math.round(bestGuess); @@ -614,7 +611,7 @@ export const mediaCover = async (id: number) => }), }) ).json() - )["data"]["Media"]["coverImage"]["extraLarge"]; + ).data.Media.coverImage.extraLarge; export interface UnwatchedRelationMap { media: Media; diff --git a/src/lib/Data/AniList/notifications.ts b/src/lib/Data/AniList/notifications.ts index a12fd402..587486c7 100644 --- a/src/lib/Data/AniList/notifications.ts +++ b/src/lib/Data/AniList/notifications.ts @@ -76,9 +76,9 @@ export const notifications = async ( }) ).json(); - if (data["errors"]) return null; + if (data.errors) return null; - return data["data"]["Page"]["notifications"]; + return data.data.Page.notifications; }; export const isNotificationQueued = ( @@ -89,7 +89,7 @@ export const isNotificationQueued = ( recentNotifications.length > 0 && (recentNotifications[0].id > (lastNotificationID as number) || new Date(recentNotifications[0].createdAt * 1000).getTime() + 30000 > - new Date().getTime()); + Date.now()); export const updateLastNotificationID = async ( userID: number, diff --git a/src/lib/Data/AniList/prequels.ts b/src/lib/Data/AniList/prequels.ts index b521616f..9d5f39f0 100644 --- a/src/lib/Data/AniList/prequels.ts +++ b/src/lib/Data/AniList/prequels.ts @@ -151,7 +151,7 @@ export const prequels = async ( for (const candidate of currentPage.data.Page.media) candidates.push(candidate); - while (currentPage["data"]["Page"]["pageInfo"]["hasNextPage"]) { + while (currentPage.data.Page.pageInfo.hasNextPage) { for (const candidate of currentPage.data.Page.media) candidates.push(candidate); diff --git a/src/lib/Data/AniList/user.ts b/src/lib/Data/AniList/user.ts index d16b8612..e6e37ac7 100644 --- a/src/lib/Data/AniList/user.ts +++ b/src/lib/Data/AniList/user.ts @@ -71,7 +71,7 @@ export const user = async ( }) ).json(); - return response["data"]["User"] === null ? null : response["data"]["User"]; + return response.data.User === null ? null : response.data.User; }; export const dumpUser = async (username: string): Promise<FullUser> => @@ -94,4 +94,4 @@ export const dumpUser = async (username: string): Promise<FullUser> => }), }) ).json() - )["data"]["User"]; + ).data.User; diff --git a/src/lib/Data/AniList/wrapped.ts b/src/lib/Data/AniList/wrapped.ts index a7b4f829..130c57d3 100644 --- a/src/lib/Data/AniList/wrapped.ts +++ b/src/lib/Data/AniList/wrapped.ts @@ -89,15 +89,15 @@ const profileActivities = async ( let response = await get(page); const beginningOfYear = new Date(now).setMonth(0, 1) / 1000; - pages.push(response["data"]["Page"]["activities"]); + pages.push(response.data.Page.activities); - while (response["data"]["Page"]["pageInfo"]["hasNextPage"]) { + while (response.data.Page.pageInfo.hasNextPage) { if (disableLoopingActivityCounter) break; page += 1; response = await get(page); - pages.push(response["data"]["Page"]["activities"]); + pages.push(response.data.Page.activities); } return { @@ -133,8 +133,7 @@ export const wrapped = async ( }; if (anilistAuthorisation) { - headers["Authorization"] = - `${anilistAuthorisation.tokenType} ${anilistAuthorisation.accessToken}`; + headers.Authorization = `${anilistAuthorisation.tokenType} ${anilistAuthorisation.accessToken}`; } const wrappedResponse = await ( @@ -178,12 +177,12 @@ export const wrapped = async ( } return { - statistics: wrappedResponse["data"]["User"]["statistics"], + statistics: wrappedResponse.data.User.statistics, activities: { statusCount: statusCountActivities, messageCount: messageCountActivities, }, - avatar: wrappedResponse["data"]["User"]["avatar"], + avatar: wrappedResponse.data.User.avatar, }; }; @@ -222,7 +221,7 @@ export const tops = ( } = {}; media.forEach((m) => { - if (m.mediaListEntry && m.mediaListEntry.score) { + if (m.mediaListEntry?.score) { m.genres.forEach((genre) => { if (!genresMap[genre]) genresMap[genre] = { totalScore: 0, count: 0, minutesWatched: 0 }; |