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