diff --git a/anime/hianime/source.js b/anime/hianime/source.js index 5610667..0eb025f 100644 --- a/anime/hianime/source.js +++ b/anime/hianime/source.js @@ -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( - `]+href="\\/watch\\/${watchSlug - .replace(/[.*+?^${}()|[\]\\]/g, "\\$&") - }"[\\s\\S]*?]+(?:data-src|src)="([^"]+)"`, + `]+href="\\/watch\\/${watchSlug.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}"[\\s\\S]*?]+(?: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(/\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 {