diff options
| author | Fuwn <[email protected]> | 2023-08-27 00:05:37 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-08-27 00:05:37 -0700 |
| commit | 318998d7b7a5250efe9281a9fbd1edf2183c4f69 (patch) | |
| tree | 47af479052a80a9a73c2e3a680812c7f5702329e /src | |
| parent | fix(home): open details by default (diff) | |
| download | due.moe-318998d7b7a5250efe9281a9fbd1edf2183c4f69.tar.xz due.moe-318998d7b7a5250efe9281a9fbd1edf2183c4f69.zip | |
fix(mangadex): proxy all api calls
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/mangadex.ts | 20 | ||||
| -rw-r--r-- | src/routes/mangadex/feed/+server.ts | 9 | ||||
| -rw-r--r-- | src/routes/mangadex/manga/+server.ts | 26 |
3 files changed, 38 insertions, 17 deletions
diff --git a/src/lib/mangadex.ts b/src/lib/mangadex.ts index c5bd87c7..f243f2b8 100644 --- a/src/lib/mangadex.ts +++ b/src/lib/mangadex.ts @@ -12,25 +12,13 @@ export const chapterCount = async (manga: Media): Promise<number | null> => { `Caching ${manga.id} (${manga.title.english || manga.title.romaji || manga.title.native})` ); - let mangadexData = await ( + const mangadexData = await ( await fetch( - `https://api.mangadex.org/manga?title=${encodeURIComponent( - manga.title.english || manga.title.romaji || manga.title.native - )}&year=${manga.startDate.year}` + `/mangadex/manga?english=${manga.title.english}&year=${manga.startDate.year}&romaji=${manga.title.romaji}&native=${manga.title.native}` ) ).json(); if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) { - mangadexData = await ( - await fetch( - `https://api.mangadex.org/manga?title=${encodeURIComponent(manga.title.native)}&year=${ - manga.startDate.year - }` - ) - ).json(); - } - - if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) { await chapterDatabase.chapters.put({ id: manga.id, chapters: -1 @@ -40,9 +28,7 @@ export const chapterCount = async (manga: Media): Promise<number | null> => { } const lastChapterData = await ( - await fetch( - `https://api.mangadex.org/manga/${mangadexData['data'][0]['id']}/feed?order[chapter]=desc` - ) + await fetch(`/mangadex/feed?id=${mangadexData['data'][0]['id']}`) ).json(); if (lastChapterData['data'] === undefined || lastChapterData['data'].length === 0) { diff --git a/src/routes/mangadex/feed/+server.ts b/src/routes/mangadex/feed/+server.ts new file mode 100644 index 00000000..ea4ee84b --- /dev/null +++ b/src/routes/mangadex/feed/+server.ts @@ -0,0 +1,9 @@ +export const GET = async ({ url }) => { + return Response.json( + await ( + await fetch( + `https://api.mangadex.org/manga/${url.searchParams.get('id')}/feed?order[chapter]=desc` + ) + ).json() + ); +}; diff --git a/src/routes/mangadex/manga/+server.ts b/src/routes/mangadex/manga/+server.ts new file mode 100644 index 00000000..584e0518 --- /dev/null +++ b/src/routes/mangadex/manga/+server.ts @@ -0,0 +1,26 @@ +export const GET = async ({ url }) => { + let mangadexData = await ( + await fetch( + `https://api.mangadex.org/manga?title=${encodeURIComponent( + url.searchParams.get('english') || + '' || + url.searchParams.get('romaji') || + '' || + url.searchParams.get('native') || + '' + )}&year=${url.searchParams.get('year')}` + ) + ).json(); + + if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) { + mangadexData = await ( + await fetch( + `https://api.mangadex.org/manga?title=${encodeURIComponent( + url.searchParams.get('native') || '' + )}&year=${url.searchParams.get('year')}` + ) + ).json(); + } + + return Response.json(mangadexData); +}; |