From a8e4351d12568066f758d725cd42e1267f2bfe52 Mon Sep 17 00:00:00 2001 From: Ritesh Ghosh Date: Thu, 17 Aug 2023 23:47:19 +0530 Subject: feat(animeEpisodeSrcs): added `animeEpisodeSrcs` parser controller --- src/controllers/animeEpisodeSrcs.controller.ts | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/controllers/animeEpisodeSrcs.controller.ts (limited to 'src') 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>, + 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; -- cgit v1.2.3