Update animepahe/animepahe.js

This commit is contained in:
aka paul 2026-01-03 20:42:24 +00:00
parent 0c9db9005f
commit 8d10fefb7e

View file

@ -195,13 +195,30 @@ class DdosGuardInterceptor {
async fetchWithBypass(url, options = {}) { async fetchWithBypass(url, options = {}) {
let response = await this.fetchWithCookies(url, options); let response = await this.fetchWithCookies(url, options);
let responseText = null;
const isBlocked = await this.isBlockedResponse(response); if (this.errorCodes.includes(response.status)) {
const newCookie = await this.getNewCookie(url);
if (!isBlocked) { if (newCookie || this.cookieStore["__ddg2_"]) {
return this.fetchWithCookies(url, options);
}
return response; return response;
} }
try {
responseText = await response.text();
} catch (e) {
return response;
}
const isBlocked = responseText.includes('ddos-guard/js-challenge') ||
responseText.includes('DDoS-Guard') ||
responseText.includes('data-ddg-origin');
if (!isBlocked) {
response.text = async () => responseText;
return response;
}
if (this.cookieStore["__ddg2_"]) { if (this.cookieStore["__ddg2_"]) {
return this.fetchWithCookies(url, options); return this.fetchWithCookies(url, options);
@ -209,6 +226,7 @@ class DdosGuardInterceptor {
const newCookie = await this.getNewCookie(url); const newCookie = await this.getNewCookie(url);
if (!newCookie) { if (!newCookie) {
response.text = async () => responseText;
return response; return response;
} }
@ -217,13 +235,19 @@ class DdosGuardInterceptor {
async fetchWithCookies(url, options) { async fetchWithCookies(url, options) {
const cookieHeader = this.getCookieHeader(); const cookieHeader = this.getCookieHeader();
const headers = { ...options.headers, Cookie: cookieHeader }; const headers = options.headers || {};
if (cookieHeader) {
headers.Cookie = cookieHeader;
}
const response = await fetchv2(url, headers ); const response = await fetchv2(url, headers);
const setCookieHeader = response.headers["Set-Cookie"]; try {
if (setCookieHeader) { const setCookieHeader = response.headers ? response.headers["Set-Cookie"] || response.headers["set-cookie"] : null;
this.storeCookies(setCookieHeader); if (setCookieHeader) {
this.storeCookies(setCookieHeader);
}
} catch (e) {
} }
return response; return response;
@ -234,23 +258,6 @@ class DdosGuardInterceptor {
return serverHeader && this.serverCheck.includes(serverHeader.toLowerCase()); return serverHeader && this.serverCheck.includes(serverHeader.toLowerCase());
} }
async isBlockedResponse(response) {
if (this.errorCodes.includes(response.status)) {
return true;
}
const clonedResponse = response.clone();
const text = await clonedResponse.text();
if (text.includes('ddos-guard/js-challenge') ||
text.includes('DDoS-Guard') ||
text.includes('data-ddg-origin')) {
return true;
}
return false;
}
storeCookies(setCookieString) { storeCookies(setCookieString) {
const cookies = Array.isArray(setCookieString) ? setCookieString : [setCookieString]; const cookies = Array.isArray(setCookieString) ? setCookieString : [setCookieString];
@ -301,10 +308,11 @@ class DdosGuardInterceptor {
} }
}); });
let setCookie = localResponse.headers["set-cookie"] || let setCookie = null;
localResponse.headers["Set-Cookie"] || try {
(localResponse.headers.raw && localResponse.headers.raw()['set-cookie']) || setCookie = localResponse.headers ? localResponse.headers["set-cookie"] || localResponse.headers["Set-Cookie"] : null;
(localResponse.headers.get && localResponse.headers.get('set-cookie')); } catch (e) {
}
if (setCookie) { if (setCookie) {
this.storeCookies(setCookie); this.storeCookies(setCookie);
} }
@ -320,10 +328,10 @@ class DdosGuardInterceptor {
} }
}); });
setCookie = checkResponse.headers["set-cookie"] || try {
checkResponse.headers["Set-Cookie"] || setCookie = checkResponse.headers ? checkResponse.headers["set-cookie"] || checkResponse.headers["Set-Cookie"] : null;
(checkResponse.headers.raw && checkResponse.headers.raw()['set-cookie']) || } catch (e) {
(checkResponse.headers.get && checkResponse.headers.get('set-cookie')); }
if (setCookie) { if (setCookie) {
this.storeCookies(setCookie); this.storeCookies(setCookie);
} }