aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRitesh Ghosh <[email protected]>2023-08-17 23:47:19 +0530
committerRitesh Ghosh <[email protected]>2023-08-17 23:47:19 +0530
commita8e4351d12568066f758d725cd42e1267f2bfe52 (patch)
treeabc2fcaf896815710b580233414da8260287d9be
parente335910e7a06bb48eaab2817e22d528c353242a9 (diff)
downloadaniwatch-api-a8e4351d12568066f758d725cd42e1267f2bfe52.tar.xz
aniwatch-api-a8e4351d12568066f758d725cd42e1267f2bfe52.zip
feat(animeEpisodeSrcs): added `animeEpisodeSrcs` parser controller
-rw-r--r--src/controllers/animeEpisodeSrcs.controller.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/controllers/animeEpisodeSrcs.controller.ts b/src/controllers/animeEpisodeSrcs.controller.ts
new file mode 100644
index 0000000..04bcaaa
--- /dev/null
+++ b/src/controllers/animeEpisodeSrcs.controller.ts
@@ -0,0 +1,40 @@
+import createHttpError from "http-errors";
+import { RequestHandler } from "express";
+import { scrapeAnimeEpisodeSources } from "../parsers";
+import { AnimeServers, Servers } from "../models/anime";
+import { AnimeEpisodeSrcsQueryParams } from "../models/controllers";
+
+// /anime/episode-src?id=${episodeId}?server=${server}&category=${category (dub or sub)}
+const getAnimeEpisodeSources: RequestHandler<
+ unknown,
+ Awaited<ReturnType<typeof scrapeAnimeEpisodeSources>>,
+ unknown,
+ AnimeEpisodeSrcsQueryParams
+> = async (req, res, next) => {
+ try {
+ const episodeId = req.query.id ? decodeURIComponent(req.query.id) : null;
+
+ const server = (
+ req.query.server
+ ? decodeURIComponent(req.query.server)
+ : Servers.VidStreaming
+ ) as AnimeServers;
+
+ const category = (
+ req.query.category ? decodeURIComponent(req.query.category) : "sub"
+ ) as "sub" | "dub";
+
+ if (episodeId === null) {
+ throw createHttpError.BadRequest("Anime episode id required");
+ }
+
+ const data = await scrapeAnimeEpisodeSources(episodeId, server, category);
+
+ res.status(200).json(data);
+ } catch (err: any) {
+ console.error(err);
+ next(err);
+ }
+};
+
+export default getAnimeEpisodeSources;