From 84ed9e26cdeb7e02684f019ca7d07fef5286351e Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 22 Aug 2024 04:36:48 -0700 Subject: feat(settings): data saver --- src/lib/Data/AniList/character.ts | 12 ++++++++---- src/lib/Data/AniList/follow.ts | 1 + src/lib/Data/AniList/forum.ts | 3 ++- src/lib/Data/AniList/media.ts | 5 +++-- src/lib/Data/AniList/prequels.ts | 7 +++++-- src/lib/Data/AniList/schedule.ts | 3 ++- src/lib/Data/AniList/user.ts | 3 ++- src/lib/List/CleanGrid.svelte | 4 +++- src/lib/List/CleanList.svelte | 4 +++- src/lib/Locale/english.ts | 1 + src/lib/Locale/japanese.ts | 1 + src/lib/Locale/layout.ts | 1 + src/lib/Media/Cover/HoverCover.svelte | 5 ++++- src/lib/Schedule/CoverBypass.svelte | 4 +++- src/lib/Schedule/Days.svelte | 4 +++- src/lib/Settings/Categories/Display.svelte | 4 ++++ src/lib/Tools/Likes.svelte | 5 ++++- src/lib/Tools/SequelSpy.svelte | 6 +++++- src/routes/user/[user]/+page.svelte | 5 ++++- src/stores/settings.ts | 2 ++ 20 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/lib/Data/AniList/character.ts b/src/lib/Data/AniList/character.ts index 082af47a..94b2a717 100644 --- a/src/lib/Data/AniList/character.ts +++ b/src/lib/Data/AniList/character.ts @@ -5,6 +5,7 @@ export interface Character { id: number; image: { large: string; + medium: string; }; } @@ -30,7 +31,7 @@ const charactersPage = async (page: number): Promise => }, body: JSON.stringify({ query: `{ Page(page: ${page}, perPage: 50) { - characters(isBirthday: true) { name { full } id image { large } } + characters(isBirthday: true) { name { full } id image { large medium } } pageInfo { hasNextPage currentPage } } }` }) @@ -49,7 +50,8 @@ export const todaysCharacterBirthdays = async (): Promise => { full: character['name']['full'] }, image: { - large: character['image']['large'] + large: character['image']['large'], + medium: character['image']['medium'] } }); @@ -61,7 +63,8 @@ export const todaysCharacterBirthdays = async (): Promise => { full: character['name']['full'] }, image: { - large: character['image']['large'] + large: character['image']['large'], + medium: character['image']['medium'] } }); @@ -76,7 +79,8 @@ export const todaysCharacterBirthdays = async (): Promise => { full: character['name']['full'] }, image: { - large: character['image']['large'] + 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 3601d510..f03193cb 100644 --- a/src/lib/Data/AniList/follow.ts +++ b/src/lib/Data/AniList/follow.ts @@ -7,6 +7,7 @@ export interface User { isFollower: boolean; avatar: { large: string; + medium: string; }; } diff --git a/src/lib/Data/AniList/forum.ts b/src/lib/Data/AniList/forum.ts index 5a1bfc25..b7b838cd 100644 --- a/src/lib/Data/AniList/forum.ts +++ b/src/lib/Data/AniList/forum.ts @@ -8,6 +8,7 @@ export interface Thread { mediaCategories: { coverImage: { extraLarge: string; + medium: string; }; }[]; } @@ -34,7 +35,7 @@ const threadPage = async (page: number, userId: number): Promise => }, body: JSON.stringify({ query: `{ Page(perPage: 50, page: ${page}) { - threads(userId: ${userId}) { id title createdAt mediaCategories { coverImage { extraLarge } } } + threads(userId: ${userId}) { id title createdAt mediaCategories { coverImage { extraLarge medium } } } pageInfo { hasNextPage } } }` }) diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts index 18f2de07..703a55be 100644 --- a/src/lib/Data/AniList/media.ts +++ b/src/lib/Data/AniList/media.ts @@ -80,6 +80,7 @@ export interface Media { }; coverImage: { extraLarge: string; + medium: string; }; tags: { name: string; @@ -151,7 +152,7 @@ const collectionQueryTemplate = (type: Type, userId: number, options: Collection } startDate { year } endDate { year } - coverImage { extraLarge } + coverImage { extraLarge medium } ${ options.includeRelations ? ` @@ -163,7 +164,7 @@ const collectionQueryTemplate = (type: Type, userId: number, options: Collection title { english romaji } mediaListEntry { status progress } startDate { year } - coverImage { extraLarge } + coverImage { extraLarge medium } } } } diff --git a/src/lib/Data/AniList/prequels.ts b/src/lib/Data/AniList/prequels.ts index 0872dc7c..f995d727 100644 --- a/src/lib/Data/AniList/prequels.ts +++ b/src/lib/Data/AniList/prequels.ts @@ -17,6 +17,7 @@ export interface MediaPrequel { }; coverImage: { extraLarge: string; + medium: string; }; } @@ -31,6 +32,7 @@ export interface PrequelRelationNode { }; coverImage: { extraLarge: string; + medium: string; }; startDate: { year: number; @@ -64,6 +66,7 @@ interface PrequelsPage { }; coverImage: { extraLarge: string; + medium: string; }; }[]; pageInfo: { @@ -98,7 +101,7 @@ const prequelsPage = async ( english romaji } - coverImage { extraLarge } + coverImage { extraLarge medium } id nextAiringEpisode { episode airingAt } startDate { year month day } @@ -115,7 +118,7 @@ const prequelsPage = async ( status progress } - coverImage { extraLarge } + coverImage { extraLarge medium } } } } diff --git a/src/lib/Data/AniList/schedule.ts b/src/lib/Data/AniList/schedule.ts index 0db130ec..0477e4d8 100644 --- a/src/lib/Data/AniList/schedule.ts +++ b/src/lib/Data/AniList/schedule.ts @@ -15,6 +15,7 @@ interface SchedulePage { }; coverImage: { extraLarge: string; + medium: string; }; }[]; pageInfo: { @@ -46,7 +47,7 @@ const schedulePage = async ( id idMal episodes synonyms title { english romaji native } nextAiringEpisode { episode airingAt } - coverImage { extraLarge } + coverImage { extraLarge medium } } } }` diff --git a/src/lib/Data/AniList/user.ts b/src/lib/Data/AniList/user.ts index d2f06354..40097c13 100644 --- a/src/lib/Data/AniList/user.ts +++ b/src/lib/Data/AniList/user.ts @@ -17,6 +17,7 @@ export interface User { }; avatar: { large: string; + medium: string; }; bannerImage: string; } @@ -55,7 +56,7 @@ export const user = async (username: string, id = false): Promise => }, body: JSON.stringify({ query: `{ User(${id ? `id: ${username}` : `name: "${username}"`}) { - name id bannerImage avatar { large } statistics { + name id bannerImage avatar { large medium } statistics { anime { count meanScore minutesWatched episodesWatched } diff --git a/src/lib/List/CleanGrid.svelte b/src/lib/List/CleanGrid.svelte index bf5022f4..18ee51f6 100644 --- a/src/lib/List/CleanGrid.svelte +++ b/src/lib/List/CleanGrid.svelte @@ -46,7 +46,9 @@ > `} + content={``} pin={`${type}-${title.id}`} pinPosition={type === 'anime' ? 'right' : 'left'} disable={!$settings.displayHoverCover} diff --git a/src/lib/Locale/english.ts b/src/lib/Locale/english.ts index 68b3ad6c..15a1203a 100644 --- a/src/lib/Locale/english.ts +++ b/src/lib/Locale/english.ts @@ -81,6 +81,7 @@ const English: Locale = { interfaceLanguage: 'Interface language' } }, + dataSaver: 'Data Saver', collapsePanelsByDefault: 'Collapse panels by default', hidePanels: 'Hide panels', includeAdditionalMedia: 'Include additional media', diff --git a/src/lib/Locale/japanese.ts b/src/lib/Locale/japanese.ts index ee823381..4355a5b7 100644 --- a/src/lib/Locale/japanese.ts +++ b/src/lib/Locale/japanese.ts @@ -82,6 +82,7 @@ const Japanese: Locale = { interfaceLanguage: 'インターフェース言語' } }, + dataSaver: 'データセーバー', collapsePanelsByDefault: 'メディアパネルをデフォルトで折りたたむ', hidePanels: 'メディアパネルを隠す', includeAdditionalMedia: '追加メディアを含む', diff --git a/src/lib/Locale/layout.ts b/src/lib/Locale/layout.ts index 59aec787..2052010b 100644 --- a/src/lib/Locale/layout.ts +++ b/src/lib/Locale/layout.ts @@ -83,6 +83,7 @@ export interface Locale { interfaceLanguage: LocaleValue; }; }; + dataSaver: LocaleValue; collapsePanelsByDefault: LocaleValue; hidePanels: LocaleValue; includeAdditionalMedia: LocaleValue; diff --git a/src/lib/Media/Cover/HoverCover.svelte b/src/lib/Media/Cover/HoverCover.svelte index 873d6be1..eecbabe5 100644 --- a/src/lib/Media/Cover/HoverCover.svelte +++ b/src/lib/Media/Cover/HoverCover.svelte @@ -1,4 +1,5 @@