From 35bb4daaf29d5c5d5faee44ae67939d6f55928c1 Mon Sep 17 00:00:00 2001 From: aka paul <50n50@noreply.localhost> Date: Sat, 3 Jan 2026 18:47:53 +0000 Subject: [PATCH 1/2] Update dev/dev.js --- dev/dev.js | 191 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 172 insertions(+), 19 deletions(-) diff --git a/dev/dev.js b/dev/dev.js index c2f1a02..c59b57c 100644 --- a/dev/dev.js +++ b/dev/dev.js @@ -1,25 +1,23 @@ async function searchResults(keyword) { - const results = []; try { - const response = await fetchv2(); - const html = await response.text(); + const encodedKeyword = encodeURIComponent(keyword); + const ddosInterceptor = new DdosGuardInterceptor(); + const responseText = await ddosInterceptor.fetchWithBypass(`https://animepahe.si/api?m=search&q=${encodedKeyword}`); + const dataText = await responseText.text(); + console.log(dataText); + const data = JSON.parse(dataText); + const transformedResults = data.data.map(result => { + return { + title: result.title, + image: result.poster, + href: `https://animepahe.si/anime/${result.session}` + }; + }); - let match; - while ((match = regex.exec(html)) !== null) { - results.push({ - title: match[3].trim(), - image: match[2].trim(), - href: match[1].trim() - }); - } - - return JSON.stringify(results); - } catch (err) { - return JSON.stringify([{ - title: "Error", - image: "Error", - href: "Error" - }]); + return JSON.stringify(transformedResults); + } catch (error) { + console.log("Fetch error in searchResults: " + error); + return JSON.stringify([{ title: "Error", image: "", href: "" }]); } } @@ -75,3 +73,158 @@ async function extractStreamUrl(url) { return "https://error.org/"; } } + +// Fixed DDOS Bypass +class DdosGuardInterceptor { + constructor() { + this.errorCodes = [403]; + this.serverCheck = ["ddos-guard"]; + this.cookieStore = {}; + } + + async fetchWithBypass(url, options = {}) { + let response = await this.fetchWithCookies(url, options); + + const isBlocked = await this.isBlockedResponse(response); + + if (!isBlocked) { + return response; + } + + + if (this.cookieStore["__ddg2_"]) { + return this.fetchWithCookies(url, options); + } + + const newCookie = await this.getNewCookie(url); + if (!newCookie) { + return response; + } + + return this.fetchWithCookies(url, options); + } + + async fetchWithCookies(url, options) { + const cookieHeader = this.getCookieHeader(); + const headers = { ...options.headers, Cookie: cookieHeader }; + + const response = await fetchv2(url, headers ); + + const setCookieHeader = response.headers["Set-Cookie"]; + if (setCookieHeader) { + this.storeCookies(setCookieHeader); + } + + return response; + } + + isDdosGuard(response) { + const serverHeader = response.headers["Server"]; + 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) { + const cookies = Array.isArray(setCookieString) ? setCookieString : [setCookieString]; + + cookies.forEach(cookieHeader => { + const parts = cookieHeader.split(";"); + if (parts.length > 0) { + const [key, value] = parts[0].split("="); + if (key) { + this.cookieStore[key.trim()] = value?.trim() || ""; + } + } + }); + } + + getCookieHeader() { + return Object.entries(this.cookieStore) + .map(([key, value]) => `${key}=${value}`) + .join("; "); + } + + async getNewCookie(targetUrl) { + try { + const wellKnownResponse = await fetchv2("https://check.ddos-guard.net/check.js"); + const wellKnownText = await wellKnownResponse.text(); + + const paths = wellKnownText.match(/['"](\/\.well-known\/ddos-guard\/[^'"]+)['"]/g); + const checkPaths = wellKnownText.match(/['"]https:\/\/check\.ddos-guard\.net\/[^'"]+['"]/g); + + if (!paths || paths.length === 0) { + return null; + } + + const localPath = paths[0].replace(/['"]/g, ''); + + const match = targetUrl.match(/^(https?:\/\/[^\/]+)/); + if (!match) { + return null; + } + const baseUrl = match[1]; + + const localUrl = `${baseUrl}${localPath}`; + + const localResponse = await fetchv2(localUrl, { + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', + 'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', + 'Referer': targetUrl + } + }); + + let setCookie = localResponse.headers["set-cookie"] || + localResponse.headers["Set-Cookie"] || + (localResponse.headers.raw && localResponse.headers.raw()['set-cookie']) || + (localResponse.headers.get && localResponse.headers.get('set-cookie')); + if (setCookie) { + this.storeCookies(setCookie); + } + + if (checkPaths && checkPaths.length > 0) { + const checkUrl = checkPaths[0].replace(/['"]/g, ''); + + const checkResponse = await fetchv2(checkUrl, { + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', + 'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', + 'Referer': targetUrl + } + }); + + setCookie = checkResponse.headers["set-cookie"] || + checkResponse.headers["Set-Cookie"] || + (checkResponse.headers.raw && checkResponse.headers.raw()['set-cookie']) || + (checkResponse.headers.get && checkResponse.headers.get('set-cookie')); + if (setCookie) { + this.storeCookies(setCookie); + } + } + + if (this.cookieStore["__ddg2_"]) { + return this.cookieStore["__ddg2_"]; + } + + return null; + } catch (error) { + return null; + } + } +} From 5442db82c3b7dea472899ecd9ef1c500e5d0c900 Mon Sep 17 00:00:00 2001 From: aka paul <50n50@noreply.localhost> Date: Sat, 3 Jan 2026 18:49:35 +0000 Subject: [PATCH 2/2] Update dev/dev.js --- dev/dev.js | 191 ++++++----------------------------------------------- 1 file changed, 19 insertions(+), 172 deletions(-) diff --git a/dev/dev.js b/dev/dev.js index c59b57c..c2f1a02 100644 --- a/dev/dev.js +++ b/dev/dev.js @@ -1,23 +1,25 @@ async function searchResults(keyword) { + const results = []; try { - const encodedKeyword = encodeURIComponent(keyword); - const ddosInterceptor = new DdosGuardInterceptor(); - const responseText = await ddosInterceptor.fetchWithBypass(`https://animepahe.si/api?m=search&q=${encodedKeyword}`); - const dataText = await responseText.text(); - console.log(dataText); - const data = JSON.parse(dataText); - const transformedResults = data.data.map(result => { - return { - title: result.title, - image: result.poster, - href: `https://animepahe.si/anime/${result.session}` - }; - }); + const response = await fetchv2(); + const html = await response.text(); - return JSON.stringify(transformedResults); - } catch (error) { - console.log("Fetch error in searchResults: " + error); - return JSON.stringify([{ title: "Error", image: "", href: "" }]); + let match; + while ((match = regex.exec(html)) !== null) { + results.push({ + title: match[3].trim(), + image: match[2].trim(), + href: match[1].trim() + }); + } + + return JSON.stringify(results); + } catch (err) { + return JSON.stringify([{ + title: "Error", + image: "Error", + href: "Error" + }]); } } @@ -73,158 +75,3 @@ async function extractStreamUrl(url) { return "https://error.org/"; } } - -// Fixed DDOS Bypass -class DdosGuardInterceptor { - constructor() { - this.errorCodes = [403]; - this.serverCheck = ["ddos-guard"]; - this.cookieStore = {}; - } - - async fetchWithBypass(url, options = {}) { - let response = await this.fetchWithCookies(url, options); - - const isBlocked = await this.isBlockedResponse(response); - - if (!isBlocked) { - return response; - } - - - if (this.cookieStore["__ddg2_"]) { - return this.fetchWithCookies(url, options); - } - - const newCookie = await this.getNewCookie(url); - if (!newCookie) { - return response; - } - - return this.fetchWithCookies(url, options); - } - - async fetchWithCookies(url, options) { - const cookieHeader = this.getCookieHeader(); - const headers = { ...options.headers, Cookie: cookieHeader }; - - const response = await fetchv2(url, headers ); - - const setCookieHeader = response.headers["Set-Cookie"]; - if (setCookieHeader) { - this.storeCookies(setCookieHeader); - } - - return response; - } - - isDdosGuard(response) { - const serverHeader = response.headers["Server"]; - 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) { - const cookies = Array.isArray(setCookieString) ? setCookieString : [setCookieString]; - - cookies.forEach(cookieHeader => { - const parts = cookieHeader.split(";"); - if (parts.length > 0) { - const [key, value] = parts[0].split("="); - if (key) { - this.cookieStore[key.trim()] = value?.trim() || ""; - } - } - }); - } - - getCookieHeader() { - return Object.entries(this.cookieStore) - .map(([key, value]) => `${key}=${value}`) - .join("; "); - } - - async getNewCookie(targetUrl) { - try { - const wellKnownResponse = await fetchv2("https://check.ddos-guard.net/check.js"); - const wellKnownText = await wellKnownResponse.text(); - - const paths = wellKnownText.match(/['"](\/\.well-known\/ddos-guard\/[^'"]+)['"]/g); - const checkPaths = wellKnownText.match(/['"]https:\/\/check\.ddos-guard\.net\/[^'"]+['"]/g); - - if (!paths || paths.length === 0) { - return null; - } - - const localPath = paths[0].replace(/['"]/g, ''); - - const match = targetUrl.match(/^(https?:\/\/[^\/]+)/); - if (!match) { - return null; - } - const baseUrl = match[1]; - - const localUrl = `${baseUrl}${localPath}`; - - const localResponse = await fetchv2(localUrl, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', - 'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', - 'Referer': targetUrl - } - }); - - let setCookie = localResponse.headers["set-cookie"] || - localResponse.headers["Set-Cookie"] || - (localResponse.headers.raw && localResponse.headers.raw()['set-cookie']) || - (localResponse.headers.get && localResponse.headers.get('set-cookie')); - if (setCookie) { - this.storeCookies(setCookie); - } - - if (checkPaths && checkPaths.length > 0) { - const checkUrl = checkPaths[0].replace(/['"]/g, ''); - - const checkResponse = await fetchv2(checkUrl, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', - 'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8', - 'Referer': targetUrl - } - }); - - setCookie = checkResponse.headers["set-cookie"] || - checkResponse.headers["Set-Cookie"] || - (checkResponse.headers.raw && checkResponse.headers.raw()['set-cookie']) || - (checkResponse.headers.get && checkResponse.headers.get('set-cookie')); - if (setCookie) { - this.storeCookies(setCookie); - } - } - - if (this.cookieStore["__ddg2_"]) { - return this.cookieStore["__ddg2_"]; - } - - return null; - } catch (error) { - return null; - } - } -}