This repository has been archived on 2026-07-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
aniwatch-api/dist/utils/index.js
T
2023-08-02 13:46:34 +05:30

96 lines
3.8 KiB
JavaScript

"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;