diff options
| author | Fuwn <[email protected]> | 2026-06-05 11:10:22 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-06-05 11:10:22 +0000 |
| commit | 4b56194ee6807acb56abf0949394efadabf830d4 (patch) | |
| tree | 5cb2074a8d012bf9b7c900e7e44cbdfd0e15123f /src/routes/api | |
| parent | fix(lists): tick count down when media leaves a list (diff) | |
| download | due.moe-4b56194ee6807acb56abf0949394efadabf830d4.tar.xz due.moe-4b56194ee6807acb56abf0949394efadabf830d4.zip | |
feat(airing): replace SubsPlease with AnimeSchedule (sub+dub)
Source both subbed and dubbed episode schedules from AnimeSchedule.net v3 (absolute timestamps, episode numbers, delay windows, streams), keyed to AniList shows by title. Removes SubsPlease and its ~650-line fuzzy matcher. Countdown source is now a setting (native|sub|dub) with a dub->sub->native fallback.
Requires ANIMESCHEDULE_CLIENT_TOKEN.
Diffstat (limited to 'src/routes/api')
| -rw-r--r-- | src/routes/api/animeschedule/+server.ts | 25 | ||||
| -rw-r--r-- | src/routes/api/subsplease/+server.ts | 18 |
2 files changed, 25 insertions, 18 deletions
diff --git a/src/routes/api/animeschedule/+server.ts b/src/routes/api/animeschedule/+server.ts new file mode 100644 index 00000000..c596bf41 --- /dev/null +++ b/src/routes/api/animeschedule/+server.ts @@ -0,0 +1,25 @@ +import { env } from "$env/dynamic/private"; +import { fetchTimetables } from "$lib/Media/Anime/Airing/animeSchedule"; +import { appOriginHeaders } from "$lib/Utility/appOrigin"; + +export const GET = async () => { + const token = env.ANIMESCHEDULE_CLIENT_TOKEN; + const generatedAt = Math.floor(Date.now() / 1000); + + if (!token) + return Response.json( + { generatedAt, sub: [], dub: [] }, + { headers: appOriginHeaders({ "Cache-Control": "max-age=60" }) }, + ); + + const { sub, dub } = await fetchTimetables(token); + + return Response.json( + { generatedAt, sub, dub }, + { + headers: appOriginHeaders({ + "Cache-Control": "max-age=86400, s-maxage=86400", + }), + }, + ); +}; diff --git a/src/routes/api/subsplease/+server.ts b/src/routes/api/subsplease/+server.ts deleted file mode 100644 index 1f678d8c..00000000 --- a/src/routes/api/subsplease/+server.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { appOriginHeaders } from "$lib/Utility/appOrigin"; - -export const GET = async ({ url }) => { - const timezone = url.searchParams.get("tz") || "America/Los_Angeles"; - - return Response.json( - await ( - await fetch( - `https://subsplease.org/api/?f=schedule&tz=${encodeURIComponent(timezone)}`, - ) - ).json(), - { - headers: appOriginHeaders({ - "Cache-Control": "max-age=86400, s-maxage=86400", - }), - }, - ); -}; |