From 998b63a35256ac985a5a2714dd1ca451af4dfd8a Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 9 Oct 2024 00:41:20 -0700 Subject: chore(prettier): use spaces instead of tabs --- src/routes/+error.svelte | 48 +- src/routes/+layout.server.ts | 20 +- src/routes/+layout.svelte | 636 +++--- src/routes/+page.svelte | 212 +- .../api/animeschedule/oauth/callback/+server.ts | 24 +- src/routes/api/authentication/log-out/+server.ts | 18 +- src/routes/api/badges/+server.ts | 6 +- src/routes/api/birthdays/primary/+server.ts | 60 +- src/routes/api/birthdays/secondary/+server.ts | 46 +- src/routes/api/configuration/+server.ts | 102 +- src/routes/api/events/+server.ts | 10 +- src/routes/api/events/group/+server.ts | 2 +- .../api/myanimelist/oauth/callback/+server.ts | 26 +- src/routes/api/notifications/subscribe/+server.ts | 30 +- .../api/notifications/unsubscribe/+server.ts | 30 +- src/routes/api/oauth/callback/+server.ts | 22 +- src/routes/api/oauth/refresh/+server.ts | 40 +- src/routes/api/preferences/+server.ts | 136 +- src/routes/api/preferences/pin/+server.ts | 44 +- src/routes/api/subsplease/+server.ts | 30 +- src/routes/api/updates/all-novels/+server.ts | 34 +- src/routes/api/updates/manga/+server.ts | 26 +- src/routes/api/updates/novels/+server.ts | 26 +- src/routes/completed/+page.svelte | 112 +- src/routes/events/+page.svelte | 36 +- src/routes/events/group/[group]/+page.server.ts | 6 +- src/routes/events/group/[group]/+page.svelte | 114 +- src/routes/events/groups/+page.svelte | 62 +- src/routes/feeds/activity-notifications/+server.ts | 86 +- src/routes/girls/+page.svelte | 234 +-- src/routes/girls/[language]/+page.server.ts | 6 +- src/routes/girls/[language]/+page.svelte | 56 +- src/routes/hololive/[[stream]]/+page.server.ts | 6 +- src/routes/hololive/[[stream]]/+page.svelte | 120 +- src/routes/reader/+page.svelte | 62 +- src/routes/schedule/+page.svelte | 96 +- src/routes/settings/+page.svelte | 160 +- src/routes/tools/+page.svelte | 106 +- src/routes/tools/[tool]/+page.server.ts | 6 +- src/routes/tools/[tool]/+page.svelte | 136 +- src/routes/updates/+page.svelte | 268 +-- src/routes/user/+page.svelte | 40 +- src/routes/user/[user]/+page.gql | 30 +- src/routes/user/[user]/+page.svelte | 1076 +++++------ src/routes/user/[user]/+page.ts | 24 +- src/routes/user/[user]/badges/+page.gql | 54 +- src/routes/user/[user]/badges/+page.svelte | 2040 ++++++++++---------- src/routes/welcome/+page.svelte | 2 +- 48 files changed, 3283 insertions(+), 3283 deletions(-) (limited to 'src/routes') diff --git a/src/routes/+error.svelte b/src/routes/+error.svelte index 9e1bca13..f822d521 100644 --- a/src/routes/+error.svelte +++ b/src/routes/+error.svelte @@ -1,31 +1,31 @@ -

- {$page.url.pathname} not found -

+

+ {$page.url.pathname} not found +

-
- Did you mean "{suggestion.charAt(0).toUpperCase() + suggestion.slice(1)}"? -
+
+ Did you mean "{suggestion.charAt(0).toUpperCase() + suggestion.slice(1)}"? +
diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index d2fdce1b..1b7bf69a 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -1,14 +1,14 @@ export const load = ({ locals, url, cookies }) => { - const { user } = locals; + const { user } = locals; - if (cookies.get('logout') === '1') { - cookies.delete('user', { path: '/' }); - cookies.delete('logout', { path: '/' }); - } + if (cookies.get('logout') === '1') { + cookies.delete('user', { path: '/' }); + cookies.delete('logout', { path: '/' }); + } - return { - user, - url: url.pathname, - commit: process.env.VERCEL_GIT_COMMIT_SHA ?? 'ffffffffffffffffffffffffffffffffffffffff' - }; + return { + user, + url: url.pathname, + commit: process.env.VERCEL_GIT_COMMIT_SHA ?? 'ffffffffffffffffffffffffffffffffffffffff' + }; }; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index d9b257e9..6d7fe757 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,329 +1,329 @@ {#if !$locales.includes('en') || !$locale().navigation} - - - {#if data.url === '/settings'} - - - - {:else} - - - {/if} + + + {#if data.url === '/settings'} + + + + {:else} + + + {/if} {:else} - - -
-
-
- {$locale().navigation.home} - {$locale().navigation.completed} - - - {$locale().navigation.schedule} - - {$locale().navigation.tools} - {$locale().navigation.settings} - - - - {#if data.user} - { - localStorage.removeItem('identity'); - localStorage.removeItem('commit'); - - document.cookie = 'user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; - - window.location.href = root('/api/authentication/log-out'); - } - } - ]} - header={false} - > - - {$locale().navigation.profile} - - - {/if} - - {#if data.user === undefined} - { - localStorage.setItem( - 'redirect', - window.location.origin + window.location.pathname + window.location.search - ); - }} - > - {$locale().navigation.logIn} - - {:else if data.user} - - Avatar - - {/if} -
-
- -

- - - - {#if $userIdentity.id !== -1} - - {:else if data.url === '/settings'} - - - - {:else} - - - {/if} - - -

+ + +
+
+
+ {$locale().navigation.home} + {$locale().navigation.completed} + + + {$locale().navigation.schedule} + + {$locale().navigation.tools} + {$locale().navigation.settings} + + + + {#if data.user} + { + localStorage.removeItem('identity'); + localStorage.removeItem('commit'); + + document.cookie = 'user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; + + window.location.href = root('/api/authentication/log-out'); + } + } + ]} + header={false} + > + + {$locale().navigation.profile} + + + {/if} + + {#if data.user === undefined} + { + localStorage.setItem( + 'redirect', + window.location.origin + window.location.pathname + window.location.search + ); + }} + > + {$locale().navigation.logIn} + + {:else if data.user} + + Avatar + + {/if} +
+
+ +

+ + + + {#if $userIdentity.id !== -1} + + {:else if data.url === '/settings'} + + + + {:else} + + + {/if} + + +

{/if} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 3f130f96..653c3836 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,25 +1,25 @@ @@ -27,97 +27,97 @@ {#if data.user === undefined} -
Please log in to view due media.
+
Please log in to view due media.
-

+

- + {:else} -

a + b) > 1 - ? '1fr 1fr' - : '1fr' - } + [!$settings.disableUpcomingAnime, !$settings.disableAnime, !$settings.disableManga] + .map(Number) + .reduce((a, b) => a + b) > 1 + ? '1fr 1fr' + : '1fr' + } `} - > -
- {#if !$settings.disableUpcomingAnime} -
- {#if $userIdentity.id !== -2} - - {:else} - - - - {/if} -
- {/if} - - {#if !$settings.disableAnime && !$settings.disableManga} - - {/if} -
- -
- {#if !$settings.disableAnime && $settings.disableManga} - - {/if} - - {#if !$settings.disableManga} -
- {#if $userIdentity.id !== -2} - - {:else} - - - - {/if} -
- {/if} -
- - {#if $settings.disableUpcomingAnime && $settings.disableAnime && $settings.disableManga} - - {/if} -
+ > +
+ {#if !$settings.disableUpcomingAnime} +
+ {#if $userIdentity.id !== -2} + + {:else} + + + + {/if} +
+ {/if} + + {#if !$settings.disableAnime && !$settings.disableManga} + + {/if} +
+ +
+ {#if !$settings.disableAnime && $settings.disableManga} + + {/if} + + {#if !$settings.disableManga} +
+ {#if $userIdentity.id !== -2} + + {:else} + + + + {/if} +
+ {/if} +
+ + {#if $settings.disableUpcomingAnime && $settings.disableAnime && $settings.disableManga} + + {/if} + {/if} diff --git a/src/routes/api/animeschedule/oauth/callback/+server.ts b/src/routes/api/animeschedule/oauth/callback/+server.ts index 69a48600..2b96ab81 100644 --- a/src/routes/api/animeschedule/oauth/callback/+server.ts +++ b/src/routes/api/animeschedule/oauth/callback/+server.ts @@ -3,15 +3,15 @@ import { env } from '$env/dynamic/private'; import { env as env2 } from '$env/dynamic/public'; export const GET = async ({ url, cookies }) => - callback({ - url, - cookies, - cookie: 'animeschedule', - authorise: 'https://animeschedule.net/api/v3/oauth2/token', - redirect: '/settings', - client: { - id: env2.PUBLIC_ANIMESCHEDULE_CLIENT_ID, - secret: env.ANIMESCHEDULE_CLIENT_SECRET, - redirectURI: env2.PUBLIC_ANIMESCHEDULE_REDIRECT_URI - } - }); + callback({ + url, + cookies, + cookie: 'animeschedule', + authorise: 'https://animeschedule.net/api/v3/oauth2/token', + redirect: '/settings', + client: { + id: env2.PUBLIC_ANIMESCHEDULE_CLIENT_ID, + secret: env.ANIMESCHEDULE_CLIENT_SECRET, + redirectURI: env2.PUBLIC_ANIMESCHEDULE_REDIRECT_URI + } + }); diff --git a/src/routes/api/authentication/log-out/+server.ts b/src/routes/api/authentication/log-out/+server.ts index e3ce347a..305c846f 100644 --- a/src/routes/api/authentication/log-out/+server.ts +++ b/src/routes/api/authentication/log-out/+server.ts @@ -2,14 +2,14 @@ import root from '$lib/Utility/root.js'; import { redirect } from '@sveltejs/kit'; export const GET = ({ cookies }) => { - cookies.delete('user', { path: '/' }); - cookies.set('logout', '1', { - path: '/', - maxAge: 60 * 60 * 24 * 7, - httpOnly: false, - sameSite: 'lax', - secure: false - }); + cookies.delete('user', { path: '/' }); + cookies.set('logout', '1', { + path: '/', + maxAge: 60 * 60 * 24 * 7, + httpOnly: false, + sameSite: 'lax', + secure: false + }); - throw redirect(303, root('/')); + throw redirect(303, root('/')); }; diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts index e7a26320..7c62285d 100644 --- a/src/routes/api/badges/+server.ts +++ b/src/routes/api/badges/+server.ts @@ -100,9 +100,9 @@ export const PUT = async ({ cookies, url, request }) => { allBadges .filter((badge) => badge.category === (url.searchParams.get('category') || '')) .filter((badge) => badge.hidden).length > - allBadges.filter( - (badge) => badge.category === (url.searchParams.get('category') || '') - ).length / + allBadges.filter( + (badge) => badge.category === (url.searchParams.get('category') || '') + ).length / 2 ? false : true diff --git a/src/routes/api/birthdays/primary/+server.ts b/src/routes/api/birthdays/primary/+server.ts index 0b92a11e..1e480283 100644 --- a/src/routes/api/birthdays/primary/+server.ts +++ b/src/routes/api/birthdays/primary/+server.ts @@ -1,40 +1,40 @@ import { JSDOM } from 'jsdom'; export const GET = async ({ url }: { url: URL }) => { - const document = new JSDOM( - await ( - await fetch( - `https://www.anisearch.com/character/birthdays?month=${url.searchParams.get('month')}` - ) - ).text() - ).window.document; - const section = document.querySelector(`#day-${url.searchParams.get('day')}`); + const document = new JSDOM( + await ( + await fetch( + `https://www.anisearch.com/character/birthdays?month=${url.searchParams.get('month')}` + ) + ).text() + ).window.document; + const section = document.querySelector(`#day-${url.searchParams.get('day')}`); - if (!section) return Response.json([]); + if (!section) return Response.json([]); - const ul = section.querySelector('ul.covers.simple'); + const ul = section.querySelector('ul.covers.simple'); - if (!ul) return Response.json([]); + if (!ul) return Response.json([]); - return Response.json( - Array.from(ul.querySelectorAll('li')).map((li) => { - const anchor = li.querySelector('a'); - const title = li.querySelector('.title'); + return Response.json( + Array.from(ul.querySelectorAll('li')).map((li) => { + const anchor = li.querySelector('a'); + const title = li.querySelector('.title'); - if (!anchor || !title) return { image: '', title: '' }; + if (!anchor || !title) return { image: '', title: '' }; - return { - image: anchor.getAttribute('data-bg') - ? `https://cdn.anisearch.com/images/${anchor.getAttribute('data-bg')}` - : null, - name: title.textContent?.trim() - }; - }), - { - headers: { - 'Cache-Control': 'max-age=10800, s-maxage=10800', - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return { + image: anchor.getAttribute('data-bg') + ? `https://cdn.anisearch.com/images/${anchor.getAttribute('data-bg')}` + : null, + name: title.textContent?.trim() + }; + }), + { + headers: { + 'Cache-Control': 'max-age=10800, s-maxage=10800', + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/api/birthdays/secondary/+server.ts b/src/routes/api/birthdays/secondary/+server.ts index ae9178a0..f28e2e71 100644 --- a/src/routes/api/birthdays/secondary/+server.ts +++ b/src/routes/api/birthdays/secondary/+server.ts @@ -1,25 +1,25 @@ export const GET = async ({ url }: { url: URL }) => { - return Response.json( - await ( - await fetch( - `https://www.animecharactersdatabase.com/api_series_characters.php?month=${url.searchParams.get( - 'month' - )}&day=${url.searchParams.get('day')}`, - { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0', - 'Cache-Control': 'max-age=10, s-maxage=10' - } - } - ) - ).json(), - { - headers: { - 'Cache-Control': 'max-age=10800, s-maxage=10800', - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await ( + await fetch( + `https://www.animecharactersdatabase.com/api_series_characters.php?month=${url.searchParams.get( + 'month' + )}&day=${url.searchParams.get('day')}`, + { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0', + 'Cache-Control': 'max-age=10, s-maxage=10' + } + } + ) + ).json(), + { + headers: { + 'Cache-Control': 'max-age=10800, s-maxage=10800', + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/api/configuration/+server.ts b/src/routes/api/configuration/+server.ts index 65fd8d8b..41a70f7b 100644 --- a/src/routes/api/configuration/+server.ts +++ b/src/routes/api/configuration/+server.ts @@ -1,70 +1,70 @@ import { userIdentity } from '$lib/Data/AniList/identity'; import { - deleteUserConfiguration, - getUserConfiguration, - setUserConfiguration + deleteUserConfiguration, + getUserConfiguration, + setUserConfiguration } from '$lib/Database/SB/User/configuration'; const unauthorised = new Response('Unauthorised', { status: 401 }); export const GET = async ({ url }) => - Response.json(await getUserConfiguration(Number(url.searchParams.get('id') || 0)), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + Response.json(await getUserConfiguration(Number(url.searchParams.get('id') || 0)), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); export const PUT = async ({ cookies, request }) => { - const userCookie = cookies.get('user'); + const userCookie = cookies.get('user'); - if (!userCookie) return unauthorised; + if (!userCookie) return unauthorised; - const user = JSON.parse(userCookie); + const user = JSON.parse(userCookie); - return Response.json( - await setUserConfiguration( - ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id, - { - configuration: await request.json() - } - ), - { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await setUserConfiguration( + ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id, + { + configuration: await request.json() + } + ), + { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; export const DELETE = async ({ cookies }) => { - const userCookie = cookies.get('user'); + const userCookie = cookies.get('user'); - if (!userCookie) return unauthorised; + if (!userCookie) return unauthorised; - const user = JSON.parse(userCookie); + const user = JSON.parse(userCookie); - return Response.json( - await deleteUserConfiguration( - ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id - ), - { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await deleteUserConfiguration( + ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id + ), + { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/api/events/+server.ts b/src/routes/api/events/+server.ts index 2f7d72d4..22280394 100644 --- a/src/routes/api/events/+server.ts +++ b/src/routes/api/events/+server.ts @@ -1,8 +1,8 @@ import { getEvents, getGroupEvents } from '$lib/Database/SB/events'; export const GET = async ({ url }) => - Response.json( - url.searchParams.get('group') - ? await getGroupEvents(url.searchParams.get('group') || '') - : await getEvents() - ); + Response.json( + url.searchParams.get('group') + ? await getGroupEvents(url.searchParams.get('group') || '') + : await getEvents() + ); diff --git a/src/routes/api/events/group/+server.ts b/src/routes/api/events/group/+server.ts index 430578a3..9bd4c33a 100644 --- a/src/routes/api/events/group/+server.ts +++ b/src/routes/api/events/group/+server.ts @@ -1,4 +1,4 @@ import { getGroup } from '$lib/Database/SB/groups'; export const GET = async ({ url }) => - Response.json(await getGroup(url.searchParams.get('slug') || '')); + Response.json(await getGroup(url.searchParams.get('slug') || '')); diff --git a/src/routes/api/myanimelist/oauth/callback/+server.ts b/src/routes/api/myanimelist/oauth/callback/+server.ts index d5dce3c1..0bb78a64 100644 --- a/src/routes/api/myanimelist/oauth/callback/+server.ts +++ b/src/routes/api/myanimelist/oauth/callback/+server.ts @@ -3,16 +3,16 @@ import { env } from '$env/dynamic/private'; import { env as env2 } from '$env/dynamic/public'; export const GET = async ({ url, cookies }) => - callback({ - url, - cookies, - cookie: 'myanimelist', - authorise: 'https://myanimelist.net/v1/oauth2/token', - redirect: '/settings', - verifier: env.CODE_VERIFIER, - client: { - id: env2.PUBLIC_MYANIMELIST_CLIENT_ID, - secret: env.MYANIMELIST_CLIENT_SECRET, - redirectURI: env2.PUBLIC_MYANIMLIST_REDIRECT_URI - } - }); + callback({ + url, + cookies, + cookie: 'myanimelist', + authorise: 'https://myanimelist.net/v1/oauth2/token', + redirect: '/settings', + verifier: env.CODE_VERIFIER, + client: { + id: env2.PUBLIC_MYANIMELIST_CLIENT_ID, + secret: env.MYANIMELIST_CLIENT_SECRET, + redirectURI: env2.PUBLIC_MYANIMLIST_REDIRECT_URI + } + }); diff --git a/src/routes/api/notifications/subscribe/+server.ts b/src/routes/api/notifications/subscribe/+server.ts index 3ffa0331..d410dc9d 100644 --- a/src/routes/api/notifications/subscribe/+server.ts +++ b/src/routes/api/notifications/subscribe/+server.ts @@ -4,24 +4,24 @@ import { setUserSubscription } from '$lib/Database/SB/User/notifications'; const unauthorised = new Response('Unauthorised', { status: 401 }); export const POST = async ({ cookies, request, url }) => { - const userCookie = cookies.get('user'); - const fingerprint = url.searchParams.get('p'); + const userCookie = cookies.get('user'); + const fingerprint = url.searchParams.get('p'); - if (!userCookie || !fingerprint) return unauthorised; + if (!userCookie || !fingerprint) return unauthorised; - const user = JSON.parse(userCookie); - const userId = ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id; + const user = JSON.parse(userCookie); + const userId = ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id; - if (!userId) return unauthorised; + if (!userId) return unauthorised; - await setUserSubscription(userId, await request.json(), fingerprint); + await setUserSubscription(userId, await request.json(), fingerprint); - return new Response(null, { status: 200 }); + return new Response(null, { status: 200 }); }; diff --git a/src/routes/api/notifications/unsubscribe/+server.ts b/src/routes/api/notifications/unsubscribe/+server.ts index 92494ce7..ded228f3 100644 --- a/src/routes/api/notifications/unsubscribe/+server.ts +++ b/src/routes/api/notifications/unsubscribe/+server.ts @@ -4,24 +4,24 @@ import { deleteUserSubscription } from '$lib/Database/SB/User/notifications'; const unauthorised = new Response('Unauthorised', { status: 401 }); export const POST = async ({ cookies, url }) => { - const userCookie = cookies.get('user'); - const fingerprint = url.searchParams.get('p'); + const userCookie = cookies.get('user'); + const fingerprint = url.searchParams.get('p'); - if (!userCookie || !fingerprint) return unauthorised; + if (!userCookie || !fingerprint) return unauthorised; - const user = JSON.parse(userCookie); - const userId = ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id; + const user = JSON.parse(userCookie); + const userId = ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id; - if (!userId) return unauthorised; + if (!userId) return unauthorised; - await deleteUserSubscription(userId, fingerprint); + await deleteUserSubscription(userId, fingerprint); - return new Response(null, { status: 200 }); + return new Response(null, { status: 200 }); }; diff --git a/src/routes/api/oauth/callback/+server.ts b/src/routes/api/oauth/callback/+server.ts index 4510c4a2..986520f9 100644 --- a/src/routes/api/oauth/callback/+server.ts +++ b/src/routes/api/oauth/callback/+server.ts @@ -3,14 +3,14 @@ import { env } from '$env/dynamic/private'; import { env as env2 } from '$env/dynamic/public'; export const GET = async ({ url, cookies }) => - callback({ - url, - cookies, - cookie: 'user', - authorise: 'https://anilist.co/api/v2/oauth/token', - client: { - id: env2.PUBLIC_ANILIST_CLIENT_ID, - secret: env.ANILIST_CLIENT_SECRET, - redirectURI: env2.PUBLIC_ANILIST_REDIRECT_URI - } - }); + callback({ + url, + cookies, + cookie: 'user', + authorise: 'https://anilist.co/api/v2/oauth/token', + client: { + id: env2.PUBLIC_ANILIST_CLIENT_ID, + secret: env.ANILIST_CLIENT_SECRET, + redirectURI: env2.PUBLIC_ANILIST_REDIRECT_URI + } + }); diff --git a/src/routes/api/oauth/refresh/+server.ts b/src/routes/api/oauth/refresh/+server.ts index b2b36db2..66b4209c 100644 --- a/src/routes/api/oauth/refresh/+server.ts +++ b/src/routes/api/oauth/refresh/+server.ts @@ -3,28 +3,28 @@ import { env as env2 } from '$env/dynamic/public'; import { redirect } from '@sveltejs/kit'; export const GET = async ({ url, cookies }) => { - const formData = new FormData(); + const formData = new FormData(); - formData.append('grant_type', 'refresh_token'); - formData.append('client_id', env2.PUBLIC_ANILIST_CLIENT_ID as string); - formData.append('client_secret', env.ANILIST_CLIENT_SECRET as string); - formData.append('refresh_token', url.searchParams.get('token') || ''); + formData.append('grant_type', 'refresh_token'); + formData.append('client_id', env2.PUBLIC_ANILIST_CLIENT_ID as string); + formData.append('client_secret', env.ANILIST_CLIENT_SECRET as string); + formData.append('refresh_token', url.searchParams.get('token') || ''); - const newUser = await ( - await fetch('https://anilist.co/api/v2/oauth/token', { - method: 'POST', - body: formData - }) - ).json(); + const newUser = await ( + await fetch('https://anilist.co/api/v2/oauth/token', { + method: 'POST', + body: formData + }) + ).json(); - cookies.set('user', JSON.stringify(newUser), { - path: '/', - maxAge: 60 * 60 * 24 * 7, - httpOnly: false, - sameSite: 'lax', - secure: false - }); + cookies.set('user', JSON.stringify(newUser), { + path: '/', + maxAge: 60 * 60 * 24 * 7, + httpOnly: false, + sameSite: 'lax', + secure: false + }); - if (url.searchParams.get('redirect')) throw redirect(303, '/'); - else return Response.json(newUser); + if (url.searchParams.get('redirect')) throw redirect(303, '/'); + else return Response.json(newUser); }; diff --git a/src/routes/api/preferences/+server.ts b/src/routes/api/preferences/+server.ts index 0b3be7e5..0fb91f45 100644 --- a/src/routes/api/preferences/+server.ts +++ b/src/routes/api/preferences/+server.ts @@ -1,89 +1,89 @@ import { userIdentity } from '$lib/Data/AniList/identity'; import { - getUserPreferences, - toggleHideMissingBadges, - setCSS, - setBiography, - toggleHideAWCBadges, - togglePinnedBadgeWallCategory, - setPinnedBadgeWallCategories + getUserPreferences, + toggleHideMissingBadges, + setCSS, + setBiography, + toggleHideAWCBadges, + togglePinnedBadgeWallCategory, + setPinnedBadgeWallCategories } from '$lib/Database/SB/User/preferences'; const unauthorised = new Response('Unauthorised', { status: 401 }); export const GET = async ({ url }) => { - const preferences = await getUserPreferences(Number(url.searchParams.get('id') || 0)); + const preferences = await getUserPreferences(Number(url.searchParams.get('id') || 0)); - return Response.json(preferences ? preferences : {}, { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + return Response.json(preferences ? preferences : {}, { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); }; export const PUT = async ({ url, cookies, request }) => { - const userCookie = cookies.get('user'); + const userCookie = cookies.get('user'); - if (!userCookie) return unauthorised; + if (!userCookie) return unauthorised; - const user = JSON.parse(userCookie); - const userId = ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id; + const user = JSON.parse(userCookie); + const userId = ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id; - if (url.searchParams.get('toggleHideMissingBadges') !== null) - return Response.json(await toggleHideMissingBadges(userId), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + if (url.searchParams.get('toggleHideMissingBadges') !== null) + return Response.json(await toggleHideMissingBadges(userId), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); - if (url.searchParams.get('toggleHideAWCBadges') !== null) - return Response.json(await toggleHideAWCBadges(userId), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + if (url.searchParams.get('toggleHideAWCBadges') !== null) + return Response.json(await toggleHideAWCBadges(userId), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); - if (url.searchParams.get('badgeWallCSS') !== null) - return Response.json(await setCSS(userId, await request.text()), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + if (url.searchParams.get('badgeWallCSS') !== null) + return Response.json(await setCSS(userId, await request.text()), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); - if (url.searchParams.get('toggleCategory') !== null) - return Response.json( - await togglePinnedBadgeWallCategory(userId, url.searchParams.get('toggleCategory') || ''), - { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + if (url.searchParams.get('toggleCategory') !== null) + return Response.json( + await togglePinnedBadgeWallCategory(userId, url.searchParams.get('toggleCategory') || ''), + { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); - if (url.searchParams.get('setCategories') !== null) - return Response.json(await setPinnedBadgeWallCategories(userId, await request.json()), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + if (url.searchParams.get('setCategories') !== null) + return Response.json(await setPinnedBadgeWallCategories(userId, await request.json()), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); - if (url.searchParams.get('biography') !== null) - return Response.json(await setBiography(userId, (await request.text()).slice(0, 3000)), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + if (url.searchParams.get('biography') !== null) + return Response.json(await setBiography(userId, (await request.text()).slice(0, 3000)), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); - return Response.json(await getUserPreferences(Number(url.searchParams.get('id') || 0)), { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - }); + return Response.json(await getUserPreferences(Number(url.searchParams.get('id') || 0)), { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + }); }; diff --git a/src/routes/api/preferences/pin/+server.ts b/src/routes/api/preferences/pin/+server.ts index 73c4d5de..28398cf0 100644 --- a/src/routes/api/preferences/pin/+server.ts +++ b/src/routes/api/preferences/pin/+server.ts @@ -4,29 +4,29 @@ import { toggleHololiveStreamPinning } from '$lib/Database/SB/User/preferences'; const unauthorised = new Response('Unauthorised', { status: 401 }); export const PUT = async ({ cookies, url }) => { - const userCookie = cookies.get('user'); + const userCookie = cookies.get('user'); - if (!userCookie) return unauthorised; + if (!userCookie) return unauthorised; - const user = JSON.parse(userCookie); + const user = JSON.parse(userCookie); - return Response.json( - await toggleHololiveStreamPinning( - ( - await userIdentity({ - tokenType: user['token_type'], - expiresIn: user['expires_in'], - accessToken: user['access_token'], - refreshToken: user['refresh_token'] - }) - ).id, - url.searchParams.get('stream') || '' - ), - { - headers: { - method: 'PUT', - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await toggleHololiveStreamPinning( + ( + await userIdentity({ + tokenType: user['token_type'], + expiresIn: user['expires_in'], + accessToken: user['access_token'], + refreshToken: user['refresh_token'] + }) + ).id, + url.searchParams.get('stream') || '' + ), + { + headers: { + method: 'PUT', + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/api/subsplease/+server.ts b/src/routes/api/subsplease/+server.ts index 82631047..93e734c2 100644 --- a/src/routes/api/subsplease/+server.ts +++ b/src/routes/api/subsplease/+server.ts @@ -1,16 +1,16 @@ export const GET = async ({ url }) => - Response.json( - await ( - await fetch( - `https://subsplease.org/api/?f=schedule&tz=${ - url.searchParams.get('tz') || 'America/Los_Angeles' - }` - ) - ).json(), - { - headers: { - 'Cache-Control': 'max-age=86400, s-maxage=86400', - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + Response.json( + await ( + await fetch( + `https://subsplease.org/api/?f=schedule&tz=${ + url.searchParams.get('tz') || 'America/Los_Angeles' + }` + ) + ).json(), + { + headers: { + 'Cache-Control': 'max-age=86400, s-maxage=86400', + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); diff --git a/src/routes/api/updates/all-novels/+server.ts b/src/routes/api/updates/all-novels/+server.ts index b5dea142..5dd2aaad 100644 --- a/src/routes/api/updates/all-novels/+server.ts +++ b/src/routes/api/updates/all-novels/+server.ts @@ -1,20 +1,20 @@ export const GET = async ({ setHeaders }) => { - setHeaders({ - 'Cache-Control': 'public, max-age=600, s-maxage=600' - }); + setHeaders({ + 'Cache-Control': 'public, max-age=600, s-maxage=600' + }); - return Response.json( - await ( - await fetch('https://www.wlnupdates.com/api', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Access-Control-Allow-Origin': 'https://due.moe' - }, - body: JSON.stringify({ - mode: 'get-releases' - }) - }) - ).json() - ); + return Response.json( + await ( + await fetch('https://www.wlnupdates.com/api', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Access-Control-Allow-Origin': 'https://due.moe' + }, + body: JSON.stringify({ + mode: 'get-releases' + }) + }) + ).json() + ); }; diff --git a/src/routes/api/updates/manga/+server.ts b/src/routes/api/updates/manga/+server.ts index dcc0df5c..af078c05 100644 --- a/src/routes/api/updates/manga/+server.ts +++ b/src/routes/api/updates/manga/+server.ts @@ -1,18 +1,18 @@ import Parser from 'rss-parser'; export const GET = async ({ setHeaders }) => { - setHeaders({ - 'Cache-Control': 'public, max-age=600, s-maxage=600' - }); + setHeaders({ + 'Cache-Control': 'public, max-age=600, s-maxage=600' + }); - return Response.json( - await new Parser().parseString( - await (await fetch('https://www.mangaupdates.com/rss.php')).text() - ), - { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await new Parser().parseString( + await (await fetch('https://www.mangaupdates.com/rss.php')).text() + ), + { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/api/updates/novels/+server.ts b/src/routes/api/updates/novels/+server.ts index 676d1bd2..7ca6ca43 100644 --- a/src/routes/api/updates/novels/+server.ts +++ b/src/routes/api/updates/novels/+server.ts @@ -1,18 +1,18 @@ import Parser from 'rss-parser'; export const GET = async ({ setHeaders }) => { - setHeaders({ - 'Cache-Control': 'public, max-age=600, s-maxage=600' - }); + setHeaders({ + 'Cache-Control': 'public, max-age=600, s-maxage=600' + }); - return Response.json( - await new Parser().parseString( - await (await fetch('https://api.syosetu.com/allnovel.Atom')).text() - ), - { - headers: { - 'Access-Control-Allow-Origin': 'https://due.moe' - } - } - ); + return Response.json( + await new Parser().parseString( + await (await fetch('https://api.syosetu.com/allnovel.Atom')).text() + ), + { + headers: { + 'Access-Control-Allow-Origin': 'https://due.moe' + } + } + ); }; diff --git a/src/routes/completed/+page.svelte b/src/routes/completed/+page.svelte index 8a5724fd..d483d7fe 100644 --- a/src/routes/completed/+page.svelte +++ b/src/routes/completed/+page.svelte @@ -1,24 +1,24 @@ @@ -26,54 +26,54 @@ {#if data.user === undefined} -
Please log in to view completed media.
+
Please log in to view completed media.
-

+

- + {:else} -

- {#if !$settings.displayFiltersIncludeCompleted || !$settings.disableAnime} -
- {#if $userIdentity.id !== -2} - - {:else} - +
+ {#if !$settings.displayFiltersIncludeCompleted || !$settings.disableAnime} +
+ {#if $userIdentity.id !== -2} + + {:else} + - - {/if} -
- {/if} + + {/if} +
+ {/if} - {#if !$settings.displayFiltersIncludeCompleted || !$settings.disableManga} -
- {#if $userIdentity.id !== -2} - - {:else} - + {#if !$settings.displayFiltersIncludeCompleted || !$settings.disableManga} +
+ {#if $userIdentity.id !== -2} + + {:else} + - - {/if} -
- {/if} -
+ + {/if} + + {/if} + {/if} diff --git a/src/routes/events/+page.svelte b/src/routes/events/+page.svelte index f7018ec9..d3270e30 100644 --- a/src/routes/events/+page.svelte +++ b/src/routes/events/+page.svelte @@ -1,26 +1,26 @@ {#await fetch(root(`/api/events`))} - + {:then eventsResponse} - {#await eventsResponse.json()} - - {:then events} - {#if events} - {#each events as rawEvent, i} - + {#await eventsResponse.json()} + + {:then events} + {#if events} + {#each events as rawEvent, i} + - {#if i < events.length - 1} -

- {/if} - {/each} - {/if} - {:catch} - Error parsing events. - {/await} + {#if i < events.length - 1} +

+ {/if} + {/each} + {/if} + {:catch} + Error parsing events. + {/await} {/await} diff --git a/src/routes/events/group/[group]/+page.server.ts b/src/routes/events/group/[group]/+page.server.ts index b4094b4f..3df284fb 100644 --- a/src/routes/events/group/[group]/+page.server.ts +++ b/src/routes/events/group/[group]/+page.server.ts @@ -1,5 +1,5 @@ export const load = ({ params }) => { - return { - group: params.group - }; + return { + group: params.group + }; }; diff --git a/src/routes/events/group/[group]/+page.svelte b/src/routes/events/group/[group]/+page.svelte index 01203563..37c23c40 100644 --- a/src/routes/events/group/[group]/+page.svelte +++ b/src/routes/events/group/[group]/+page.svelte @@ -1,74 +1,74 @@ {#await groupsResponse} - + {:then group} - {#if group} - {#await group.json()} - - {:then json} - {#if json === null} - - This group may not exist. Please - location.reload()}>try again later. - - {:else} - {@const group = asGroup(json)} + {#if group} + {#await group.json()} + + {:then json} + {#if json === null} + + This group may not exist. Please + location.reload()}>try again later. + + {:else} + {@const group = asGroup(json)} - + -

+

-

- Events +
+ Events - {#await fetch(root(`/api/events?group=${data.group}`))} - - {:then eventsResponse} - {#await eventsResponse.json()} - - {:then events} - {#if events} - {#each events as rawEvent, i} - + {#await fetch(root(`/api/events?group=${data.group}`))} + + {:then eventsResponse} + {#await eventsResponse.json()} + + {:then events} + {#if events} + {#each events as rawEvent, i} + - {#if i < events.length - 1} -

- {/if} - {/each} - {/if} - {:catch} - Error parsing events. - {/await} - {/await} -

- {/if} - {:catch} - Error parsing group. - {/await} - {:else} - - {/if} + {#if i < events.length - 1} +

+ {/if} + {/each} + {/if} + {:catch} + Error parsing events. + {/await} + {/await} +

+ {/if} + {:catch} + Error parsing group. + {/await} + {:else} + + {/if} {:catch} - Error loading group. + Error loading group. {/await} diff --git a/src/routes/events/groups/+page.svelte b/src/routes/events/groups/+page.svelte index a28e11a6..d90cce34 100644 --- a/src/routes/events/groups/+page.svelte +++ b/src/routes/events/groups/+page.svelte @@ -1,43 +1,43 @@ {#await groupsResponse} - + {:then groups} - {#if groups} - {#await groups.json()} - - {:then json} - {#each json as rawGroup, i} - {@const group = asGroup(rawGroup)} + {#if groups} + {#await groups.json()} + + {:then json} + {#each json as rawGroup, i} + {@const group = asGroup(rawGroup)} - - - + + + - {#if i < json.length - 1} -

- {/if} - {/each} - {:catch} - Error parsing groups. - {/await} - {:else} - - {/if} + {#if i < json.length - 1} +

+ {/if} + {/each} + {:catch} + Error parsing groups. + {/await} + {:else} + + {/if} {:catch} - Error loading groups. + Error loading groups. {/await} diff --git a/src/routes/feeds/activity-notifications/+server.ts b/src/routes/feeds/activity-notifications/+server.ts index 354f80a0..b8675de9 100644 --- a/src/routes/feeds/activity-notifications/+server.ts +++ b/src/routes/feeds/activity-notifications/+server.ts @@ -2,7 +2,7 @@ import { notifications, type Notification } from '$lib/Data/AniList/notification import root from '$lib/Utility/root'; const htmlEncode = (input: string) => { - return input.replace(/[\u00A0-\u9999<>&]/g, (i) => '&#' + i.charCodeAt(0) + ';'); + return input.replace(/[\u00A0-\u9999<>&]/g, (i) => '&#' + i.charCodeAt(0) + ';'); }; const render = (posts: Notification[] = []) => ` @@ -22,33 +22,33 @@ const render = (posts: Notification[] = []) => `en-US https://due.moe/favicon-196x196.png ${posts - .filter((notification: Notification) => notification.type !== undefined) - .map((notification: Notification) => { - let title = `${notification.user.name} ${notification.context}`; - let link = `https://anilist.co/user/${notification.user.name}`; - const prettyType = notification.type - .toString() - .replace(/_/g, ' ') - .toLowerCase() - .replace(/\w\S*/g, (text) => { - return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase(); - }); + .filter((notification: Notification) => notification.type !== undefined) + .map((notification: Notification) => { + let title = `${notification.user.name} ${notification.context}`; + let link = `https://anilist.co/user/${notification.user.name}`; + const prettyType = notification.type + .toString() + .replace(/_/g, ' ') + .toLowerCase() + .replace(/\w\S*/g, (text) => { + return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase(); + }); - try { - if ( - !['FOLLOWING', 'ACTIVITY_MESSAGE'].includes(notification.type.toString()) && - !notification.type.toString().includes('THREAD') - ) { - link = `https://anilist.co/activity/${notification.activity.id}`; - } else if (notification.type.toString().includes('THREAD')) { - title += `${notification.thread.title}`; - link = `https://anilist.co/forum/thread/${notification.thread.id}`; - } - } catch { - return ''; - } + try { + if ( + !['FOLLOWING', 'ACTIVITY_MESSAGE'].includes(notification.type.toString()) && + !notification.type.toString().includes('THREAD') + ) { + link = `https://anilist.co/activity/${notification.activity.id}`; + } else if (notification.type.toString().includes('THREAD')) { + title += `${notification.thread.title}`; + link = `https://anilist.co/forum/thread/${notification.thread.id}`; + } + } catch { + return ''; + } - return ` + return ` ${notification.id} ${htmlEncode(title)} ${link} @@ -57,29 +57,29 @@ const render = (posts: Notification[] = []) => `${prettyType} ${new Date(notification.createdAt * 1000).toUTCString()} `; - }) - .join('')} + }) + .join('')} `; export const GET = async ({ url }) => { - let token = url.searchParams.get('token'); - const refresh = url.searchParams.get('refresh'); - let notification = await notifications(token || ''); + let token = url.searchParams.get('token'); + const refresh = url.searchParams.get('refresh'); + let notification = await notifications(token || ''); - if (notification === null) { - token = (await (await fetch(root(`/api/oauth/refresh?token=${refresh}`))).json())[ - 'access_token' - ]; + if (notification === null) { + token = (await (await fetch(root(`/api/oauth/refresh?token=${refresh}`))).json())[ + 'access_token' + ]; - notification = await notifications(token as string); - } + notification = await notifications(token as string); + } - return new Response(token ? render(notification || []) : render(), { - headers: { - 'Cache-Control': `max-age=0`, - 'Content-Type': 'application/xml' - } - }); + return new Response(token ? render(notification || []) : render(), { + headers: { + 'Cache-Control': `max-age=0`, + 'Content-Type': 'application/xml' + } + }); }; diff --git a/src/routes/girls/+page.svelte b/src/routes/girls/+page.svelte index 6d3cbc62..71982c32 100644 --- a/src/routes/girls/+page.svelte +++ b/src/routes/girls/+page.svelte @@ -1,132 +1,132 @@

-
-
- {#await Senpy.getRandomImage()} - - - - {:then randomImage} -
- - A random anime girl holding a programming book - -
- {/await} -
-
- The Senpy Club | Anime Girls Holding Programming Books - -

- -

    -
  • - Front-end Version 1. — Similar functionality to this page, but with a different design -
  • -
  • - REST API — The Official - Senpy Club REST API -
  • -
  • - Command-line Interface — Access - The Senpy Club API from your terminal (and export to files too) -
  • -
  • - senpy-rs — Rust bindings to - The Senpy Club API -
  • -
  • - senpy-ffi — Access The - Senpy Club API from any programming language (with FFI support) -
  • -
  • - GraphQL API — - Official GraphQL access to The Senpy Club API ( - Playground) -
  • -
-
-
+
+
+ {#await Senpy.getRandomImage()} + + + + {:then randomImage} +
+ + A random anime girl holding a programming book + +
+ {/await} +
+
+ The Senpy Club | Anime Girls Holding Programming Books + +

+ +

    +
  • + Front-end Version 1. — Similar functionality to this page, but with a different design +
  • +
  • + REST API — The Official + Senpy Club REST API +
  • +
  • + Command-line Interface — Access + The Senpy Club API from your terminal (and export to files too) +
  • +
  • + senpy-rs — Rust bindings to + The Senpy Club API +
  • +
  • + senpy-ffi — Access The + Senpy Club API from any programming language (with FFI support) +
  • +
  • + GraphQL API — + Official GraphQL access to The Senpy Club API ( + Playground) +
  • +
+
+

- Languages - - {#await Senpy.getLanguages()} - - - - {:then languages} -
    - {#each languages as language} -
  • {language}
  • - {/each} -
- {/await} + Languages + + {#await Senpy.getLanguages()} + + + + {:then languages} +
    + {#each languages as language} +
  • {language}
  • + {/each} +
+ {/await}
diff --git a/src/routes/girls/[language]/+page.server.ts b/src/routes/girls/[language]/+page.server.ts index 7084986f..62fbb311 100644 --- a/src/routes/girls/[language]/+page.server.ts +++ b/src/routes/girls/[language]/+page.server.ts @@ -1,5 +1,5 @@ export const load = ({ params }) => { - return { - language: params.language - }; + return { + language: params.language + }; }; diff --git a/src/routes/girls/[language]/+page.svelte b/src/routes/girls/[language]/+page.svelte index 8b8764d0..91b18628 100644 --- a/src/routes/girls/[language]/+page.svelte +++ b/src/routes/girls/[language]/+page.svelte @@ -1,39 +1,39 @@
- {#await Senpy.getImages(data.language)} - + {#await Senpy.getImages(data.language)} + - - {:then images} -
- {#each images as image} - -
- An anime girl holding a programming book -
-
- {/each} -
- {/await} + + {:then images} +
+ {#each images as image} + +
+ An anime girl holding a programming book +
+
+ {/each} +
+ {/await}
diff --git a/src/routes/hololive/[[stream]]/+page.server.ts b/src/routes/hololive/[[stream]]/+page.server.ts index 87839c14..6eb5dad1 100644 --- a/src/routes/hololive/[[stream]]/+page.server.ts +++ b/src/routes/hololive/[[stream]]/+page.server.ts @@ -1,5 +1,5 @@ export const load = ({ params }) => { - return { - stream: params.stream - }; + return { + stream: params.stream + }; }; diff --git a/src/routes/hololive/[[stream]]/+page.svelte b/src/routes/hololive/[[stream]]/+page.svelte index 777f1e70..d5419711 100644 --- a/src/routes/hololive/[[stream]]/+page.svelte +++ b/src/routes/hololive/[[stream]]/+page.svelte @@ -1,82 +1,82 @@ {#await schedulePromise} - + - + {:then scheduleResponse} - {#if scheduleResponse} - {#await scheduleResponse.text()} - + {#if scheduleResponse} + {#await scheduleResponse.text()} + - - {:then untypedSchedule} - {@const schedule = typeSchedule(parseScheduleHtml(untypedSchedule))} + + {:then untypedSchedule} + {@const schedule = typeSchedule(parseScheduleHtml(untypedSchedule))} - - {:catch} - - {$locale().hololive.parseError} - location.reload()}>Try again? - - {/await} - {:else} - + + {:catch} + + {$locale().hololive.parseError} + location.reload()}>Try again? + + {/await} + {:else} + - - {/if} + + {/if} {:catch} - - {$locale().hololive.loadError} Please - location.reload()}>try again later. - + + {$locale().hololive.loadError} Please + location.reload()}>try again later. + {/await} diff --git a/src/routes/reader/+page.svelte b/src/routes/reader/+page.svelte index 98c3ae1c..775d3659 100644 --- a/src/routes/reader/+page.svelte +++ b/src/routes/reader/+page.svelte @@ -1,38 +1,38 @@ - {#if resourceIdentity} - {#await fetchResource(submission)} - - {:then response} - {#if response.ok} - {#await decodeResource(response, submission) then data} - {#if resourceIdentity === Resource.MangaDex} - - {:else if resourceIdentity === Resource.Rawkuma} - - {/if} - {:catch error} - {error} - {/await} - {:else} - Failed to fetch data - {/if} - {:catch} - An unknown error has occurred. - {/await} - {:else} - Invalid URL - {/if} + {#if resourceIdentity} + {#await fetchResource(submission)} + + {:then response} + {#if response.ok} + {#await decodeResource(response, submission) then data} + {#if resourceIdentity === Resource.MangaDex} + + {:else if resourceIdentity === Resource.Rawkuma} + + {/if} + {:catch error} + {error} + {/await} + {:else} + Failed to fetch data + {/if} + {:catch} + An unknown error has occurred. + {/await} + {:else} + Invalid URL + {/if} diff --git a/src/routes/schedule/+page.svelte b/src/routes/schedule/+page.svelte index c1447e5f..78744347 100644 --- a/src/routes/schedule/+page.svelte +++ b/src/routes/schedule/+page.svelte @@ -1,27 +1,27 @@ @@ -53,39 +53,39 @@

--> {#if !$subsPlease} - + - + {:else} - {#await scheduledMediaPromise} - + {#await scheduledMediaPromise} + - - {:then scheduledMedia} - {#if scheduledMedia} -

- -
- {:else} - + + {:then scheduledMedia} + {#if scheduledMedia} +
+ +
+ {:else} + - - {/if} - {:catch} - - {/await} + + {/if} + {:catch} + + {/await} {/if} diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index b507eeca..42ee4edd 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -1,56 +1,56 @@
- {#if $settings.displayLanguage == 'en'} - Have feedback or suggestions? Send a private message to - @fuwn - on AniList! - {:else if $settings.displayLanguage == 'ja'} - フィードバックや提案はありますか?AniListで - @fuwn - にDMを送ってください! - {/if} + {#if $settings.displayLanguage == 'en'} + Have feedback or suggestions? Send a private message to + @fuwn + on AniList! + {:else if $settings.displayLanguage == 'ja'} + フィードバックや提案はありますか?AniListで + @fuwn + にDMを送ってください! + {/if} - - - - {#if shadowHidden} - - - {/if} - - {#if editMode && isOwner} - {@const groups = groupedBadges - .map((group) => group[0]) - .filter((group) => group !== 'Uncategorised')} - {@const designers = castAsStringArray([ - ...new Set( - ungroupedBadges - .map((badge) => badge.designer) - .filter((designer) => designer !== undefined && designer !== null) - .filter( - (designer, index, array) => - array.indexOf(designer) === index && !array.includes(`@${designer}`) - ) - ) - ])} - -

- - {#if error} -

{error}

- {/if} - - - - - ({ - name: group, - url: '#', - onClick: () => { - const category = document.querySelector('input[name="category"]'); - - if (category instanceof HTMLInputElement) category.value = group; - } - }))} - header={false} - center={false} - > - - - - - - - Must be full date and time, defaults to now if any fields empty - - -

- -

- - ({ - name: designer, - url: '#', - onClick: () => { - const designerField = document.querySelector('input[name="designer"]'); - - if (designerField instanceof HTMLInputElement) - designerField.value = designer; - } - }))} - header={false} - center={false} - > - - - - - ({ - name: hidden ? 'Hidden' : 'Shown', - url: '#', - onClick: () => { - const hiddenInput = document.querySelector('input[name="hidden"]'); - - if (hiddenInput instanceof HTMLInputElement) - hiddenInput.value = hidden ? 'Hidden' : 'Shown'; - } - }))} - header={false} - center={false} - > - - - - - - {#if selectedBadge} - {$locale().user.badges.editMode.or} - - {/if} -
- {/if} - {/if} - - {/if} - -

- - - {/if} - - - {#if isBadgeSelected} - + + + {#if shadowHidden} + + + {/if} + + {#if editMode && isOwner} + {@const groups = groupedBadges + .map((group) => group[0]) + .filter((group) => group !== 'Uncategorised')} + {@const designers = castAsStringArray([ + ...new Set( + ungroupedBadges + .map((badge) => badge.designer) + .filter((designer) => designer !== undefined && designer !== null) + .filter( + (designer, index, array) => + array.indexOf(designer) === index && !array.includes(`@${designer}`) + ) + ) + ])} + +

+ + {#if error} +

{error}

+ {/if} + + + + + ({ + name: group, + url: '#', + onClick: () => { + const category = document.querySelector('input[name="category"]'); + + if (category instanceof HTMLInputElement) category.value = group; + } + }))} + header={false} + center={false} + > + + + + + + + Must be full date and time, defaults to now if any fields empty + + +

+ +

+ + ({ + name: designer, + url: '#', + onClick: () => { + const designerField = document.querySelector('input[name="designer"]'); + + if (designerField instanceof HTMLInputElement) + designerField.value = designer; + } + }))} + header={false} + center={false} + > + + + + + ({ + name: hidden ? 'Hidden' : 'Shown', + url: '#', + onClick: () => { + const hiddenInput = document.querySelector('input[name="hidden"]'); + + if (hiddenInput instanceof HTMLInputElement) + hiddenInput.value = hidden ? 'Hidden' : 'Shown'; + } + }))} + header={false} + center={false} + > + + + + + + {#if selectedBadge} + {$locale().user.badges.editMode.or} + + {/if} +
+ {/if} + {/if} + + {/if} + +

+ + + {/if} + + + {#if isBadgeSelected} + - { - selectedBadge = undefined; - }} - > - setAdjacentCursor(ungroupedBadges, 1)} - onPrevious={() => setAdjacentCursor(ungroupedBadges, -1)} - hasNext={adjacentBadgeExists(selectedBadge, ungroupedBadges, 1) !== undefined} - hasPrevious={adjacentBadgeExists(selectedBadge, ungroupedBadges, -1) !== undefined} - /> - - {#if authorised} - - {/if} - - {/if} - {/if} + { + selectedBadge = undefined; + }} + > + setAdjacentCursor(ungroupedBadges, 1)} + onPrevious={() => setAdjacentCursor(ungroupedBadges, -1)} + hasNext={adjacentBadgeExists(selectedBadge, ungroupedBadges, 1) !== undefined} + hasPrevious={adjacentBadgeExists(selectedBadge, ungroupedBadges, -1) !== undefined} + /> + + {#if authorised} + + {/if} + + {/if} + {/if} {/if} {#if true} - (importMode = false)} show={importMode}> - {$locale().user.badges.importMode.title} - -

- - - - -

- - - {$locale().user.badges.importMode.importLinks.title} - - {$locale().user.badges.importMode.importLinks.hint} - - -

- - - {$locale().user.badges.importMode.importReplies} - -

- - - - -

- -

- {$locale().user.badges.importMode.dangerous} - - - - {$locale().user.badges.importMode.deleteAll.hint} - -
- - {#if importImages && importImages.length > 0} -

- - {$locale({ - values: { - count: importImages.length - } - }).user.badges.importMode.importConfirm}  - - - - {$locale().user.badges.importMode.importWait} - - {/if} - + (importMode = false)} show={importMode}> + {$locale().user.badges.importMode.title} + +

+ + + + +

+ + + {$locale().user.badges.importMode.importLinks.title} + + {$locale().user.badges.importMode.importLinks.hint} + + +

+ + + {$locale().user.badges.importMode.importReplies} + +

+ + + + +

+ +

+ {$locale().user.badges.importMode.dangerous} + + + + {$locale().user.badges.importMode.deleteAll.hint} + +
+ + {#if importImages && importImages.length > 0} +

+ + {$locale({ + values: { + count: importImages.length + } + }).user.badges.importMode.importConfirm}  + + + + {$locale().user.badges.importMode.importWait} + + {/if} + {/if} (migrateMode = false)} show={migrateMode}> - Migrate Category - -

- - - - Leave category empty to migrate all to or from uncategorised. - -

- - - + Migrate Category + +

+ + + + Leave category empty to migrate all to or from uncategorised. + +

+ + + (hideMode = false)} show={hideMode}> - Hide Category - - - If the majority of the badges in a category are shown, the category will be hidden, and vice - versa. - - -

- - - Leave category field empty to hide all. - -

- - - + Hide Category + + + If the majority of the badges in a category are shown, the category will be hidden, and vice + versa. + + +

+ + + Leave category field empty to hide all. + +

+ + + diff --git a/src/routes/welcome/+page.svelte b/src/routes/welcome/+page.svelte index 296ce30e..603e1305 100644 --- a/src/routes/welcome/+page.svelte +++ b/src/routes/welcome/+page.svelte @@ -1,5 +1,5 @@ -- cgit v1.2.3