aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-28 17:29:11 -0800
committerFuwn <[email protected]>2023-12-28 17:29:11 -0800
commita7c611ff57c99846a74bce374937a07851d7b388 (patch)
tree604bf56bcd99a18084468f2383471e1663cb9856 /src/routes/api
parentchore(manga): no proxy dev (diff)
downloaddue.moe-a7c611ff57c99846a74bce374937a07851d7b388.tar.xz
due.moe-a7c611ff57c99846a74bce374937a07851d7b388.zip
refactor(api): remove unused api and mangadex
Diffstat (limited to 'src/routes/api')
-rw-r--r--src/routes/api/mangadex/chapter/+server.ts29
-rw-r--r--src/routes/api/mangadex/feed/+server.ts26
-rw-r--r--src/routes/api/mangadex/manga/+server.ts72
-rw-r--r--src/routes/api/proxy/+server.ts18
4 files changed, 0 insertions, 145 deletions
diff --git a/src/routes/api/mangadex/chapter/+server.ts b/src/routes/api/mangadex/chapter/+server.ts
deleted file mode 100644
index e4e98abd..00000000
--- a/src/routes/api/mangadex/chapter/+server.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { checkRateLimit } from '$lib/rateLimit';
-
-export const GET = async (event) => {
- const limit = await checkRateLimit(event);
- const { url } = event;
-
- if (limit) return limit;
-
- try {
- return Response.json(
- await (
- await fetch(
- `https://api.mangadex.org/chapter?manga=${url.searchParams.get(
- 'id'
- )}&chapter=${url.searchParams.get(
- 'chapter'
- )}&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic&limit=1`
- )
- ).json(),
- {
- headers: {
- 'Cache-Control': 'max-age=300'
- }
- }
- );
- } catch {
- return new Response('rate-limited');
- }
-};
diff --git a/src/routes/api/mangadex/feed/+server.ts b/src/routes/api/mangadex/feed/+server.ts
deleted file mode 100644
index 392cea0c..00000000
--- a/src/routes/api/mangadex/feed/+server.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { checkRateLimit } from '$lib/rateLimit';
-
-export const GET = async (event) => {
- const limit = await checkRateLimit(event);
-
- if (limit) return limit;
-
- try {
- return Response.json(
- await (
- await fetch(
- `https://api.mangadex.org/manga/${event.url.searchParams.get(
- 'id'
- )}/feed?order[chapter]=desc&translatedLanguage[]=en&limit=1&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic`
- )
- ).json(),
- {
- headers: {
- 'Cache-Control': 'max-age=300'
- }
- }
- );
- } catch {
- return new Response('rate-limited');
- }
-};
diff --git a/src/routes/api/mangadex/manga/+server.ts b/src/routes/api/mangadex/manga/+server.ts
deleted file mode 100644
index 381e2a5a..00000000
--- a/src/routes/api/mangadex/manga/+server.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { checkRateLimit } from '$lib/rateLimit';
-
-export const GET = async (event) => {
- const limit = await checkRateLimit(event);
- const { url } = event;
-
- if (limit) return limit;
-
- let status = '';
- let error = false;
-
- switch (url.searchParams.get('status')) {
- case 'FINISHED':
- {
- status = 'completed';
- }
- break;
- case 'RELEASING':
- {
- status = 'ongoing';
- }
- break;
- case 'HIATUS':
- {
- status = 'hiatus';
- }
- break;
- case 'CANCELLED':
- {
- status = 'cancelled';
- }
- break;
- }
-
- const nullIfNullString = (s: string | null) => (s == 'null' ? null : s);
- const get = async (title: string) => {
- try {
- return await (
- await fetch(
- `https://api.mangadex.org/manga?title=${encodeURIComponent(
- title
- )}&year=${url.searchParams.get('year')}&status[]=${status}`
- )
- ).json();
- } catch {
- error = true;
- }
- };
-
- let mangadexData = await get(
- nullIfNullString(url.searchParams.get('native')) ||
- nullIfNullString(url.searchParams.get('english')) ||
- nullIfNullString(url.searchParams.get('romaji')) ||
- ''
- );
-
- if (error) return new Response('rate-limited');
-
- if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) {
- mangadexData = await get(nullIfNullString(url.searchParams.get('english')) || '');
-
- if (mangadexData['data'] === undefined || mangadexData['data'].length === 0) {
- mangadexData = await get(nullIfNullString(url.searchParams.get('romaji')) || '');
- }
- }
-
- return Response.json(mangadexData, {
- headers: {
- 'Cache-Control': 'max-age=300'
- }
- });
-};
diff --git a/src/routes/api/proxy/+server.ts b/src/routes/api/proxy/+server.ts
deleted file mode 100644
index c4bf74a6..00000000
--- a/src/routes/api/proxy/+server.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export const GET = async ({ url }) => {
- const response = await fetch(url.searchParams.get('url') as string);
- const contentType = response.headers.get('content-type') as string;
-
- if (contentType.includes('application/json')) {
- return Response.json(await response.json(), {
- headers: { 'Content-Type': 'application/json' }
- });
- } else if (contentType.includes('text/html') || contentType.includes('text/plain')) {
- return new Response(await response.text(), {
- headers: { 'Content-Type': contentType }
- });
- } else {
- return new Response(await response.blob(), {
- headers: { 'Content-Type': contentType }
- });
- }
-};