mirror of
https://github.com/JustAnimeCore/HiAnime-Api.git
synced 2026-04-17 22:01:44 +00:00
feature, not a bug
This commit is contained in:
63
src/extractors/watchlist.extractor.js
Normal file
63
src/extractors/watchlist.extractor.js
Normal file
@@ -0,0 +1,63 @@
|
||||
import axios from "axios";
|
||||
import * as cheerio from "cheerio";
|
||||
import { v1_base_url } from "../utils/base_v1.js";
|
||||
|
||||
export default async function extractWatchlist(userId, page = 1) {
|
||||
try {
|
||||
const url = `https://${v1_base_url}/community/user/${userId}/watch-list?page=${page}`;
|
||||
const { data } = await axios.get(url);
|
||||
const $ = cheerio.load(data);
|
||||
const watchlist = [];
|
||||
|
||||
const totalPages =
|
||||
Number(
|
||||
$('.pre-pagination nav .pagination > .page-item a[title="Last"]')
|
||||
?.attr("href")
|
||||
?.split("=")
|
||||
.pop() ??
|
||||
$('.pre-pagination nav .pagination > .page-item a[title="Next"]')
|
||||
?.attr("href")
|
||||
?.split("=")
|
||||
.pop() ??
|
||||
$(".pre-pagination nav .pagination > .page-item.active a")
|
||||
?.text()
|
||||
?.trim()
|
||||
) || 1;
|
||||
|
||||
$(".flw-item").each((index, element) => {
|
||||
const title = $(".film-name a", element).text().trim();
|
||||
const poster = $(".film-poster img", element).attr("data-src");
|
||||
const duration = $(".fdi-duration", element).text().trim();
|
||||
const type = $(".fdi-item", element).first().text().trim();
|
||||
const id = $(".film-poster a", element).attr("data-id");
|
||||
const subCount = $(".tick-item.tick-sub", element).text().trim();
|
||||
const dubCount = $(".tick-item.tick-dub", element).text().trim();
|
||||
const link = $(".film-name a", element).attr("href");
|
||||
|
||||
const animeId = link.split("/").pop();
|
||||
|
||||
watchlist.push({
|
||||
id: animeId,
|
||||
title,
|
||||
poster,
|
||||
duration,
|
||||
type,
|
||||
subCount,
|
||||
dubCount,
|
||||
link: `https://${v1_base_url}${link}`,
|
||||
showType: type,
|
||||
tvInfo: {
|
||||
showType: type,
|
||||
duration: duration,
|
||||
sub: subCount,
|
||||
dub: dubCount,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
return { watchlist, totalPages };
|
||||
} catch (error) {
|
||||
console.error("Error fetching watchlist:", error.message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user