diff options
| author | Ritesh Ghosh <[email protected]> | 2023-08-06 15:04:50 +0530 |
|---|---|---|
| committer | Ritesh Ghosh <[email protected]> | 2023-08-06 15:04:50 +0530 |
| commit | 99b8c7afee6bf9ebc8c3fa240b4596e4ceba6e64 (patch) | |
| tree | 8e88b9b44454dfe1a77a8d9ffb8c27ef61727c3a | |
| parent | 803c87459d0accb56c84cb4ca56371acc9a28f44 (diff) | |
| download | aniwatch-api-99b8c7afee6bf9ebc8c3fa240b4596e4ceba6e64.tar.xz aniwatch-api-99b8c7afee6bf9ebc8c3fa240b4596e4ceba6e64.zip | |
chore: remove dist dir from repository
| -rw-r--r-- | dist/api.router.js | 3 | ||||
| -rw-r--r-- | dist/controllers/animeCategory.controller.d.ts | 3 | ||||
| -rw-r--r-- | dist/controllers/animeCategory.controller.js | 23 | ||||
| -rw-r--r-- | dist/controllers/index.d.ts | 2 | ||||
| -rw-r--r-- | dist/controllers/index.js | 8 | ||||
| -rw-r--r-- | dist/models/anime.d.ts | 33 | ||||
| -rw-r--r-- | dist/models/anime.js | 17 | ||||
| -rw-r--r-- | dist/models/index.d.ts | 3 | ||||
| -rw-r--r-- | dist/models/index.js | 5 | ||||
| -rw-r--r-- | dist/models/parser.d.ts | 15 | ||||
| -rw-r--r-- | dist/models/parser.js | 2 | ||||
| -rw-r--r-- | dist/parsers/animeCategory.d.ts | 4 | ||||
| -rw-r--r-- | dist/parsers/animeCategory.js | 112 | ||||
| -rw-r--r-- | dist/parsers/index.d.ts | 2 | ||||
| -rw-r--r-- | dist/parsers/index.js | 8 | ||||
| -rw-r--r-- | dist/routes/index.d.ts | 3 | ||||
| -rw-r--r-- | dist/routes/index.js | 7 | ||||
| -rw-r--r-- | dist/server.d.ts | 1 | ||||
| -rw-r--r-- | dist/server.js | 41 | ||||
| -rw-r--r-- | dist/types.js | 14 | ||||
| -rw-r--r-- | dist/utils.d.ts | 12 | ||||
| -rw-r--r-- | dist/utils.js | 95 | ||||
| -rw-r--r-- | dist/utils/index.d.ts | 12 | ||||
| -rw-r--r-- | dist/utils/index.js | 95 |
24 files changed, 0 insertions, 520 deletions
diff --git a/dist/api.router.js b/dist/api.router.js deleted file mode 100644 index 541877b..0000000 --- a/dist/api.router.js +++ /dev/null @@ -1,3 +0,0 @@ -import { Router } from "express"; -const router = Router(); -export default router; diff --git a/dist/controllers/animeCategory.controller.d.ts b/dist/controllers/animeCategory.controller.d.ts deleted file mode 100644 index 635ec04..0000000 --- a/dist/controllers/animeCategory.controller.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Handler } from "express"; -declare const getAnimeCategory: Handler; -export default getAnimeCategory; diff --git a/dist/controllers/animeCategory.controller.js b/dist/controllers/animeCategory.controller.js deleted file mode 100644 index cb6f53f..0000000 --- a/dist/controllers/animeCategory.controller.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const parsers_1 = require("../parsers"); -const http_errors_1 = __importDefault(require("http-errors")); -const getAnimeCategory = async (req, res, next) => { - try { - const category = decodeURIComponent(req.params.category); - const page = req.query.page - ? Number(decodeURIComponent(req.query?.page)) - : 1; - if (!category) - throw http_errors_1.default.BadRequest("category required"); - const data = await (0, parsers_1.scrapeAnimeCategory)(category, page); - res.status(200).json(data); - } - catch (err) { - next(err); - } -}; -exports.default = getAnimeCategory; diff --git a/dist/controllers/index.d.ts b/dist/controllers/index.d.ts deleted file mode 100644 index c6e82eb..0000000 --- a/dist/controllers/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import getAnimeCategory from "./animeCategory.controller"; -export { getAnimeCategory }; diff --git a/dist/controllers/index.js b/dist/controllers/index.js deleted file mode 100644 index a8b27fa..0000000 --- a/dist/controllers/index.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getAnimeCategory = void 0; -const animeCategory_controller_1 = __importDefault(require("./animeCategory.controller")); -exports.getAnimeCategory = animeCategory_controller_1.default; diff --git a/dist/models/anime.d.ts b/dist/models/anime.d.ts deleted file mode 100644 index b46e995..0000000 --- a/dist/models/anime.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -export interface Anime { - id: string | null; - name: string | null; - poster: string | null; - duration: string | null; - type: string | null; - rating: string | null; - episodes: string | null; -} -type CommonAnimeProps = "id" | "name" | "poster"; -export interface Top10Anime extends Pick<Anime, CommonAnimeProps> { - rank: number | null; - eps: { - sub: number | null; - dub: number | null; - }; -} -export type Top10AnimeTimePeriod = "day" | "week" | "month"; -export type AnimeCategories = "most-favorite" | "most-popular" | "subbed-anime" | "dubbed-anime" | "recently-updated" | "recently-added" | "top-upcoming" | "top-airing" | "movie" | "special" | "ova" | "ona" | "tv" | "completed"; -export declare enum Servers { - AsianLoad = "asianload", - GogoCDN = "gogocdn", - StreamSB = "streamsb", - MixDrop = "mixdrop", - UpCloud = "upcloud", - VidCloud = "vidcloud", - StreamTape = "streamtape", - VizCloud = "vizcloud", - MyCloud = "mycloud", - Filemoon = "filemoon", - VidStreaming = "vidstreaming" -} -export {}; diff --git a/dist/models/anime.js b/dist/models/anime.js deleted file mode 100644 index 68b3bef..0000000 --- a/dist/models/anime.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Servers = void 0; -var Servers; -(function (Servers) { - Servers["AsianLoad"] = "asianload"; - Servers["GogoCDN"] = "gogocdn"; - Servers["StreamSB"] = "streamsb"; - Servers["MixDrop"] = "mixdrop"; - Servers["UpCloud"] = "upcloud"; - Servers["VidCloud"] = "vidcloud"; - Servers["StreamTape"] = "streamtape"; - Servers["VizCloud"] = "vizcloud"; - Servers["MyCloud"] = "mycloud"; - Servers["Filemoon"] = "filemoon"; - Servers["VidStreaming"] = "vidstreaming"; -})(Servers || (exports.Servers = Servers = {})); diff --git a/dist/models/index.d.ts b/dist/models/index.d.ts deleted file mode 100644 index 7afe301..0000000 --- a/dist/models/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Anime, AnimeCategories, Top10Anime, Top10AnimeTimePeriod, Servers } from "./anime"; -import { ScrapedAnimeCategory } from "./parser"; -export { Anime, AnimeCategories, Top10Anime, Top10AnimeTimePeriod, Servers, ScrapedAnimeCategory, }; diff --git a/dist/models/index.js b/dist/models/index.js deleted file mode 100644 index 78ec497..0000000 --- a/dist/models/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Servers = void 0; -const anime_1 = require("./anime"); -Object.defineProperty(exports, "Servers", { enumerable: true, get: function () { return anime_1.Servers; } }); diff --git a/dist/models/parser.d.ts b/dist/models/parser.d.ts deleted file mode 100644 index 09484b7..0000000 --- a/dist/models/parser.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { HttpError } from "http-errors"; -import { Anime, AnimeCategories, Top10Anime } from "./anime"; -export interface ScrapedAnimeCategory { - animes: Array<Anime> | HttpError; - genres: Array<string>; - top10Animes: { - today: Array<Top10Anime> | HttpError; - week: Array<Top10Anime> | HttpError; - month: Array<Top10Anime> | HttpError; - }; - category: AnimeCategories; - currentPage: number; - hasNextPage: boolean; - totalPages: number; -} diff --git a/dist/models/parser.js b/dist/models/parser.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/models/parser.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/parsers/animeCategory.d.ts b/dist/parsers/animeCategory.d.ts deleted file mode 100644 index 3c72412..0000000 --- a/dist/parsers/animeCategory.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { HttpError } from "http-errors"; -import { ScrapedAnimeCategory, AnimeCategories } from "../models"; -declare function scrapeAnimeCategory(category: AnimeCategories, page?: number): Promise<ScrapedAnimeCategory | HttpError>; -export default scrapeAnimeCategory; diff --git a/dist/parsers/animeCategory.js b/dist/parsers/animeCategory.js deleted file mode 100644 index 347d903..0000000 --- a/dist/parsers/animeCategory.js +++ /dev/null @@ -1,112 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const axios_1 = __importStar(require("axios")); -const cheerio_1 = require("cheerio"); -const utils_1 = require("../utils"); -const http_errors_1 = __importDefault(require("http-errors")); -async function scrapeAnimeCategory(category, page = 1) { - const res = { - animes: [], - genres: [], - top10Animes: { - today: [], - week: [], - month: [], - }, - category, - currentPage: Number(page), - hasNextPage: false, - totalPages: 0, - }; - try { - const scrapeUrl = new URL(category, utils_1.SRC_BASE_URL); - const mainPage = await axios_1.default.get(`${scrapeUrl}?page=${page}`, { - headers: { - "User-Agent": utils_1.USER_AGENT_HEADER, - "Accept-Encoding": utils_1.ACCEPT_ENCODING_HEADER, - Accept: utils_1.ACCEPT_HEADER, - }, - }); - const $ = (0, cheerio_1.load)(mainPage.data); - const selector = "#main-content .tab-content .film_list-wrap .flw-item"; - res.hasNextPage = - $(".pagination > li").length > 0 - ? $(".pagination li.active").length > 0 - ? $(".pagination > li").last().hasClass("active") - ? false - : true - : false - : false; - res.totalPages = - parseInt($('.pagination > .page-item a[title="Last"]') - ?.attr("href") - ?.split("=") - .pop() ?? - $('.pagination > .page-item a[title="Next"]') - ?.attr("href") - ?.split("=") - .pop() ?? - $(".pagination > .page-item.active a")?.text()?.trim()) || 0; - if (res.totalPages === 0 && !res.hasNextPage) { - res.totalPages = 0; - } - res.animes = (0, utils_1.extractAnimes)($, selector); - if (res.animes.length === 0) { - res.totalPages = 0; - res.hasNextPage = false; - } - const genreSelector = "#main-sidebar .block_area.block_area_sidebar.block_area-genres .sb-genre-list li"; - $(genreSelector).each((i, el) => { - res.genres.push(`${$(el).text().trim()}`); - }); - const top10AnimeSelector = '#main-sidebar .block_area-realtime [id^="top-viewed-"]'; - $(top10AnimeSelector).each((i, el) => { - const period = $(el).attr("id")?.split("-")?.pop()?.trim(); - if (period === "day") { - res.top10Animes.today = (0, utils_1.extractTop10Animes)($, period); - return; - } - if (period === "week") { - res.top10Animes.week = (0, utils_1.extractTop10Animes)($, period); - return; - } - if (period === "month") { - res.top10Animes.month = (0, utils_1.extractTop10Animes)($, period); - } - }); - return res; - } - catch (err) { - if (err instanceof axios_1.AxiosError) { - throw (0, http_errors_1.default)(err?.response?.status || 500, err?.response?.statusText || "Something went wrong"); - } - throw http_errors_1.default.InternalServerError(err?.message); - } -} -exports.default = scrapeAnimeCategory; diff --git a/dist/parsers/index.d.ts b/dist/parsers/index.d.ts deleted file mode 100644 index 5ac4249..0000000 --- a/dist/parsers/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import scrapeAnimeCategory from "./animeCategory"; -export { scrapeAnimeCategory }; diff --git a/dist/parsers/index.js b/dist/parsers/index.js deleted file mode 100644 index f23c21d..0000000 --- a/dist/parsers/index.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.scrapeAnimeCategory = void 0; -const animeCategory_1 = __importDefault(require("./animeCategory")); -exports.scrapeAnimeCategory = animeCategory_1.default; diff --git a/dist/routes/index.d.ts b/dist/routes/index.d.ts deleted file mode 100644 index 5ec6d27..0000000 --- a/dist/routes/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { IRouter } from "express"; -declare const router: IRouter; -export default router; diff --git a/dist/routes/index.js b/dist/routes/index.js deleted file mode 100644 index 5e5579b..0000000 --- a/dist/routes/index.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = require("express"); -const controllers_1 = require("../controllers"); -const router = (0, express_1.Router)(); -router.get("/:category", controllers_1.getAnimeCategory); -exports.default = router; diff --git a/dist/server.d.ts b/dist/server.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/server.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/server.js b/dist/server.js deleted file mode 100644 index 12d78e3..0000000 --- a/dist/server.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const express_1 = __importDefault(require("express")); -const dotenv_1 = require("dotenv"); -const morgan_1 = __importDefault(require("morgan")); -const http_errors_1 = __importDefault(require("http-errors")); -const routes_1 = __importDefault(require("./routes")); -(0, dotenv_1.config)(); -const app = (0, express_1.default)(); -const PORT = Number(process.env.PORT) || 4000; -app.use((0, morgan_1.default)("dev")); -app.get("/", (req, res) => { - res.send(` - <body style="font-family: sans-serif; background: #000; color: #FFF;"> - <h3>Welcome to Zoro.to api ⚔️</h3> - <a - style="color: #00AEDD;" - href="https://github.com/ghoshRitesh12/zoro.to-api#readme" - rel="noopener noreferer" - > - Visit docs for more into - </a> - </body> - `); -}); -app.use("/anime", routes_1.default); -app.use((req, res, next) => next(http_errors_1.default.NotFound())); -const errorHandler = (error, req, res, next) => { - const status = error?.status || 500; - res.status(status).json({ - status, - message: error?.message || "Something Went Wrong", - }); -}; -app.use(errorHandler); -app.listen(PORT, () => { - console.log(`⚔️ api @ http://localhost:${PORT}`); -}); diff --git a/dist/types.js b/dist/types.js deleted file mode 100644 index 4928f61..0000000 --- a/dist/types.js +++ /dev/null @@ -1,14 +0,0 @@ -export var Servers; -(function (Servers) { - Servers["AsianLoad"] = "asianload"; - Servers["GogoCDN"] = "gogocdn"; - Servers["StreamSB"] = "streamsb"; - Servers["MixDrop"] = "mixdrop"; - Servers["UpCloud"] = "upcloud"; - Servers["VidCloud"] = "vidcloud"; - Servers["StreamTape"] = "streamtape"; - Servers["VizCloud"] = "vizcloud"; - Servers["MyCloud"] = "mycloud"; - Servers["Filemoon"] = "filemoon"; - Servers["VidStreaming"] = "vidstreaming"; -})(Servers || (Servers = {})); diff --git a/dist/utils.d.ts b/dist/utils.d.ts deleted file mode 100644 index 719e176..0000000 --- a/dist/utils.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { HttpError } from "http-errors"; -import { CheerioAPI, SelectorType } from "cheerio"; -import { Anime, Top10Anime, Top10AnimeTimePeriod } from "./models"; -export declare const USER_AGENT_HEADER: string | undefined; -export declare const ACCEPT_HEADER: string | undefined; -export declare const ACCEPT_ENCODING_HEADER: string | undefined; -export declare const SRC_BASE_URL: string | undefined; -export declare const SRC_AJAX_URL: string | undefined; -export declare const SRC_HOME_URL: string | undefined; -export declare const SRC_SEARCH_URL: string | undefined; -export declare function extractAnimes($: CheerioAPI, selector: SelectorType): Array<Anime> | HttpError; -export declare function extractTop10Animes($: CheerioAPI, period: Top10AnimeTimePeriod): Array<Top10Anime> | HttpError; diff --git a/dist/utils.js b/dist/utils.js deleted file mode 100644 index 2e6b45d..0000000 --- a/dist/utils.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.extractTop10Animes = exports.extractAnimes = exports.SRC_SEARCH_URL = exports.SRC_HOME_URL = exports.SRC_AJAX_URL = exports.SRC_BASE_URL = exports.ACCEPT_ENCODING_HEADER = exports.ACCEPT_HEADER = exports.USER_AGENT_HEADER = void 0; -const dotenv_1 = require("dotenv"); -const http_errors_1 = __importDefault(require("http-errors")); -(0, dotenv_1.config)(); -exports.USER_AGENT_HEADER = process.env.APP_SRC_USER_AGENT; -exports.ACCEPT_HEADER = process.env.APP_SRC_ACCEPT_HEADER; -exports.ACCEPT_ENCODING_HEADER = process.env.APP_SRC_ACCEPT_HEADER; -exports.SRC_BASE_URL = process.env.APP_SRC_BASE_URL; -exports.SRC_AJAX_URL = process.env.APP_SRC_AJAX_URL; -exports.SRC_HOME_URL = process.env.APP_SRC_HOME_URL; -exports.SRC_SEARCH_URL = process.env.APP_SRC_SEARCH_URL; -function extractAnimes($, selector) { - try { - const animes = []; - $(selector).each((i, el) => { - const animeId = $(el) - .find(".film-detail .film-name .dynamic-name") - ?.attr("href") - ?.slice(1) - .split("?ref=search")[0] || null; - animes.push({ - id: animeId, - name: $(el) - .find(".film-detail .film-name .dynamic-name") - ?.text() - ?.trim(), - poster: $(el) - .find(".film-poster .film-poster-img") - ?.attr("data-src") - ?.trim() || null, - duration: $(el) - .find(".film-detail .fd-infor .fdi-item.fdi-duration") - ?.text() - ?.trim(), - type: $(el) - .find(".film-detail .fd-infor .fdi-item:nth-of-type(1)") - ?.text() - ?.trim(), - rating: $(el).find(".film-poster .tick-rate")?.text()?.trim() || null, - episodes: $(el) - .find(".film-poster .tick-eps") - ?.text() - ?.trim() - .split(" ") - .pop() || null, - }); - }); - return animes; - } - catch (err) { - throw http_errors_1.default.InternalServerError(err?.message || "Something went wrong"); - } -} -exports.extractAnimes = extractAnimes; -function extractTop10Animes($, period) { - try { - const animes = []; - const selector = `#top-viewed-${period} ul li`; - $(selector).each((i, el) => { - animes.push({ - id: $(el) - .find(".film-detail .dynamic-name") - ?.attr("href") - ?.slice(1) - .trim() || null, - rank: Number($(el).find(".film-number span")?.text()?.trim()) || null, - name: $(el).find(".film-detail .dynamic-name")?.text()?.trim() || null, - poster: $(el) - .find(".film-poster .film-poster-img") - ?.attr("data-src") - ?.trim() || null, - eps: { - sub: Number($(el) - .find(".film-detail .fd-infor .tick-item.tick-sub") - ?.text() - ?.trim()) || null, - dub: Number($(el) - .find(".film-detail .fd-infor .tick-item.tick-dub") - ?.text() - ?.trim()) || null, - }, - }); - }); - return animes; - } - catch (err) { - throw http_errors_1.default.InternalServerError(err?.message || "Something went wrong"); - } -} -exports.extractTop10Animes = extractTop10Animes; diff --git a/dist/utils/index.d.ts b/dist/utils/index.d.ts deleted file mode 100644 index 4156d72..0000000 --- a/dist/utils/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { HttpError } from "http-errors"; -import { CheerioAPI, SelectorType } from "cheerio"; -import { Anime, Top10Anime, Top10AnimeTimePeriod } from "../models"; -export declare const USER_AGENT_HEADER: string | undefined; -export declare const ACCEPT_HEADER: string | undefined; -export declare const ACCEPT_ENCODING_HEADER: string | undefined; -export declare const SRC_BASE_URL: string | undefined; -export declare const SRC_AJAX_URL: string | undefined; -export declare const SRC_HOME_URL: string | undefined; -export declare const SRC_SEARCH_URL: string | undefined; -export declare function extractAnimes($: CheerioAPI, selector: SelectorType): Array<Anime> | HttpError; -export declare function extractTop10Animes($: CheerioAPI, period: Top10AnimeTimePeriod): Array<Top10Anime> | HttpError; diff --git a/dist/utils/index.js b/dist/utils/index.js deleted file mode 100644 index 2e6b45d..0000000 --- a/dist/utils/index.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.extractTop10Animes = exports.extractAnimes = exports.SRC_SEARCH_URL = exports.SRC_HOME_URL = exports.SRC_AJAX_URL = exports.SRC_BASE_URL = exports.ACCEPT_ENCODING_HEADER = exports.ACCEPT_HEADER = exports.USER_AGENT_HEADER = void 0; -const dotenv_1 = require("dotenv"); -const http_errors_1 = __importDefault(require("http-errors")); -(0, dotenv_1.config)(); -exports.USER_AGENT_HEADER = process.env.APP_SRC_USER_AGENT; -exports.ACCEPT_HEADER = process.env.APP_SRC_ACCEPT_HEADER; -exports.ACCEPT_ENCODING_HEADER = process.env.APP_SRC_ACCEPT_HEADER; -exports.SRC_BASE_URL = process.env.APP_SRC_BASE_URL; -exports.SRC_AJAX_URL = process.env.APP_SRC_AJAX_URL; -exports.SRC_HOME_URL = process.env.APP_SRC_HOME_URL; -exports.SRC_SEARCH_URL = process.env.APP_SRC_SEARCH_URL; -function extractAnimes($, selector) { - try { - const animes = []; - $(selector).each((i, el) => { - const animeId = $(el) - .find(".film-detail .film-name .dynamic-name") - ?.attr("href") - ?.slice(1) - .split("?ref=search")[0] || null; - animes.push({ - id: animeId, - name: $(el) - .find(".film-detail .film-name .dynamic-name") - ?.text() - ?.trim(), - poster: $(el) - .find(".film-poster .film-poster-img") - ?.attr("data-src") - ?.trim() || null, - duration: $(el) - .find(".film-detail .fd-infor .fdi-item.fdi-duration") - ?.text() - ?.trim(), - type: $(el) - .find(".film-detail .fd-infor .fdi-item:nth-of-type(1)") - ?.text() - ?.trim(), - rating: $(el).find(".film-poster .tick-rate")?.text()?.trim() || null, - episodes: $(el) - .find(".film-poster .tick-eps") - ?.text() - ?.trim() - .split(" ") - .pop() || null, - }); - }); - return animes; - } - catch (err) { - throw http_errors_1.default.InternalServerError(err?.message || "Something went wrong"); - } -} -exports.extractAnimes = extractAnimes; -function extractTop10Animes($, period) { - try { - const animes = []; - const selector = `#top-viewed-${period} ul li`; - $(selector).each((i, el) => { - animes.push({ - id: $(el) - .find(".film-detail .dynamic-name") - ?.attr("href") - ?.slice(1) - .trim() || null, - rank: Number($(el).find(".film-number span")?.text()?.trim()) || null, - name: $(el).find(".film-detail .dynamic-name")?.text()?.trim() || null, - poster: $(el) - .find(".film-poster .film-poster-img") - ?.attr("data-src") - ?.trim() || null, - eps: { - sub: Number($(el) - .find(".film-detail .fd-infor .tick-item.tick-sub") - ?.text() - ?.trim()) || null, - dub: Number($(el) - .find(".film-detail .fd-infor .tick-item.tick-dub") - ?.text() - ?.trim()) || null, - }, - }); - }); - return animes; - } - catch (err) { - throw http_errors_1.default.InternalServerError(err?.message || "Something went wrong"); - } -} -exports.extractTop10Animes = extractTop10Animes; |
