mirror of
https://git.luna-app.eu/50n50/sources
synced 2026-01-12 09:28:35 +01:00
Update animepahe/animepahe.js
This commit is contained in:
parent
0c9db9005f
commit
8d10fefb7e
1 changed files with 41 additions and 33 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue