Update anime/hianime/source.js

This commit is contained in:
2025-12-24 16:02:59 +01:00
parent dfced2ff0b
commit 8826f2b8fe

View File

@@ -53,7 +53,7 @@ class HiAnime {
fetchAjax(url, extraHeaders) {
console.log("[HiAnime] fetchAjax url=", url);
const headers = Object.assign(
{ "X-Requested-With": "XMLHttpRequest" },
{ "X-Requested-With": "XMLHttpRequest", "Referer": this.baseUrl + "/" },
extraHeaders || {}
);
return fetch(url, { headers });
@@ -83,17 +83,16 @@ class HiAnime {
const year = startDate.year || null;
const month = startDate.month || null;
let url = `${this.baseUrl}/search?keyword=${encodeURIComponent(
queryText
)}&sort=default`;
let url = `${this.baseUrl}/search?keyword=${encodeURIComponent(queryText)}&sort=default`;
if (year) url += `&sy=${year}`;
if (month) url += `&sm=${month}`;
console.log("[HiAnime] search() url=", url);
const response = fetch(url);
const html = response.text();
console.log("[HiAnime] search() status=", response.status, "ok=", response.ok);
const html = response.text();
console.log("[HiAnime] search() htmlLen=", (html || "").length);
const regex =
@@ -111,9 +110,7 @@ class HiAnime {
const idNum = m[3];
const imgRe = new RegExp(
`<a[^>]+href="\\/watch\\/${watchSlug
.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
}"[\\s\\S]*?<img[^>]+(?:data-src|src)="([^"]+)"`,
`<a[^>]+href="\\/watch\\/${watchSlug.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"[\\s\\S]*?<img[^>]+(?:data-src|src)="([^"]+)"`,
"i"
);
const imgM = html.match(imgRe);
@@ -186,6 +183,8 @@ class HiAnime {
console.log("[HiAnime] findEpisodes() url=", url);
const response = this.fetchAjax(url);
console.log("[HiAnime] findEpisodes() status=", response.status, "ok=", response.ok);
const json = response.json();
const html = this.safeString(json.html);
@@ -258,8 +257,7 @@ class HiAnime {
subOrDub = "sub";
}
if (episodeId && episodeId.includes("/"))
[episodeId, subOrDub] = episodeId.split("/");
if (episodeId && episodeId.includes("/")) [episodeId, subOrDub] = episodeId.split("/");
let serverName = _server && _server !== "default" ? _server : "HD-1";
@@ -269,6 +267,8 @@ class HiAnime {
console.log("[HiAnime] findEpisodeServer() serversUrl=", serversUrl);
const serverResponse = this.fetchAjax(serversUrl);
console.log("[HiAnime] servers status=", serverResponse.status, "ok=", serverResponse.ok);
const serverJson = serverResponse.json();
const serverHtml = this.safeString(serverJson.html);
@@ -303,6 +303,8 @@ class HiAnime {
console.log("[HiAnime] findEpisodeServer() sourcesUrl=", sourcesUrl);
const sourcesResponse = this.fetchAjax(sourcesUrl);
console.log("[HiAnime] sources status=", sourcesResponse.status, "ok=", sourcesResponse.ok);
const sourcesJson = sourcesResponse.json();
console.log("[HiAnime] findEpisodeServer() sourcesJson has link=", !!sourcesJson.link);
@@ -321,12 +323,12 @@ class HiAnime {
}
if (!decryptData) {
const fallbackUrl = `https://ac-api.ofchaos.com/api/anime/embed/convert/v2?embedUrl=${encodeURIComponent(
sourcesJson.link
)}`;
const fallbackUrl = `https://ac-api.ofchaos.com/api/anime/embed/convert/v2?embedUrl=${encodeURIComponent(sourcesJson.link)}`;
console.log("[HiAnime] fallbackUrl=", fallbackUrl);
const fallbackResponse = fetch(fallbackUrl);
console.log("[HiAnime] fallback status=", fallbackResponse.status, "ok=", fallbackResponse.ok);
decryptData = fallbackResponse.json();
requiredHeaders = {
@@ -395,8 +397,9 @@ class HiAnime {
};
const response = fetch(embedUrl, { headers });
const html = response.text();
console.log("[HiAnime] embed status=", response.status, "ok=", response.ok);
const html = response.text();
console.log("[HiAnime] extractMegaCloud() embed htmlLen=", (html || "").length);
const fileIdMatch = html.match(/<title>\s*File\s+#([a-zA-Z0-9]+)\s*-/i);
@@ -424,8 +427,9 @@ class HiAnime {
console.log("[HiAnime] extractMegaCloud() sourcesUrl=", sourcesUrl);
const sourcesResponse = fetch(sourcesUrl, { headers });
const sourcesJson = sourcesResponse.json();
console.log("[HiAnime] sources status=", sourcesResponse.status, "ok=", sourcesResponse.ok);
const sourcesJson = sourcesResponse.json();
console.log("[HiAnime] extractMegaCloud() sources=", (sourcesJson.sources ? sourcesJson.sources.length : 0), "tracks=", (sourcesJson.tracks ? sourcesJson.tracks.length : 0));
return {