aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-08-27 00:05:37 -0700
committerFuwn <[email protected]>2023-08-27 00:05:37 -0700
commit318998d7b7a5250efe9281a9fbd1edf2183c4f69 (patch)
tree47af479052a80a9a73c2e3a680812c7f5702329e /src
parentfix(home): open details by default (diff)
downloaddue.moe-318998d7b7a5250efe9281a9fbd1edf2183c4f69.tar.xz
due.moe-318998d7b7a5250efe9281a9fbd1edf2183c4f69.zip
fix(mangadex): proxy all api calls
Diffstat (limited to 'src')
-rw-r--r--src/lib/mangadex.ts20
-rw-r--r--src/routes/mangadex/feed/+server.ts9
-rw-r--r--src/routes/mangadex/manga/+server.ts26
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);
+};