hianimez-api / src /extractors /trending.extractor.js
S VIVEGANANDAN
fix: resolve 403 error and clean repo
5769f09
import axios from "axios";
import * as cheerio from "cheerio";
import { v1_base_url } from "../utils/base_v1.js";
async function fetchAnimeDetails(element) {
const data_id = element.attr("data-id");
const number = element.find(".number > span").text();
const poster = element.find("img").attr("data-src");
const title = element.find(".film-title").text().trim();
const japanese_title = element.find(".film-title").attr("data-jname").trim();
const id = element.find("a").attr("href").split("/").pop();
return { id, data_id, number, poster, title, japanese_title };
}
async function extractTrending() {
try {
const resp = await axios.get(`https://${v1_base_url}/home`);
const $ = cheerio.load(resp.data);
const trendingElements = $("#anime-trending #trending-home .swiper-slide");
const elementPromises = trendingElements
.map((index, element) => {
return fetchAnimeDetails($(element));
})
.get();
const trendingData = await Promise.all(elementPromises);
return JSON.parse(JSON.stringify(trendingData));
} catch (error) {
console.error("Error fetching data:", error.message);
throw error;
}
}
export default extractTrending;