96 lines
3.8 KiB
JavaScript
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;
|