need testing

This commit is contained in:
SNEK WAIFU
2026-05-14 07:24:58 +07:00
parent 67445ed648
commit 6ed1567f0e
3 changed files with 29 additions and 10 deletions

3
.gitignore vendored
View File

@@ -10,4 +10,5 @@ p.ts
.idea .idea
CHANGELOG.md CHANGELOG.md
theme.zip theme.zip
AGENTS.md AGENTS.md
lustpress-express

View File

@@ -9,7 +9,7 @@ const keyv = process.env.REDIS_URL
: new Keyv(); : new Keyv();
keyv.on("error", (err) => console.log("Connection Error", err)); keyv.on("error", (err) => console.log("Connection Error", err));
const ttl = 1000 * 60 * 60 * Number(process.env.EXPIRE_CACHE || "1"); const ttl = 1000 * 60 * 60 * Number(process.env.EXPIRE_CACHE);
const GEO_TIMEOUT_MS = 3000; const GEO_TIMEOUT_MS = 3000;
let cachedLastLocation: string | null = null; let cachedLastLocation: string | null = null;
@@ -25,12 +25,14 @@ function cachedLocationOrUnknown(): string {
class LustPress { class LustPress {
url: string; url: string;
useragent: string; useragent: string;
private browserUA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"; private browserUA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36";
private cookieCache: { [domain: string]: string } = {}; private cookieCache: { [domain: string]: string } = {};
constructor() { constructor() {
this.url = ""; this.url = "";
this.useragent = `${pkg.name}/${pkg.version} Bun/${Bun.version}`; this.browserUA =
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36";
this.useragent = process.env.USER_AGENT || `${pkg.name}/${pkg.version} Bun/${Bun.version}`;
} }
async getPornhubCookies(): Promise<string> { async getPornhubCookies(): Promise<string> {
@@ -101,20 +103,23 @@ class LustPress {
console.log(`[FETCH] ${url}`); console.log(`[FETCH] ${url}`);
let res = await fetch(url, { headers, redirect: "follow" }); let res = await fetch(url, { headers, redirect: "follow" });
let text = await res.text(); let arrayBuf = await res.arrayBuffer();
let body = Buffer.from(arrayBuf);
if (isPornhub && text.includes("leastFactor")) { if (isPornhub && body.toString("utf8").includes("leastFactor")) {
console.log("Challenge detected at target URL. Re-authenticating..."); console.log("Challenge detected at target URL. Re-authenticating...");
this.cookieCache[domain] = await this.getPornhubCookies(); this.cookieCache[domain] = await this.getPornhubCookies();
res = await fetch(url, { res = await fetch(url, {
headers: { ...headers, Cookie: this.cookieCache[domain] }, headers: { ...headers, Cookie: this.cookieCache[domain] },
redirect: "follow" redirect: "follow"
}); });
text = await res.text(); arrayBuf = await res.arrayBuffer();
body = Buffer.from(arrayBuf);
} }
const body = Buffer.from(text); if (res.ok && !url.includes("/random")) {
if (!url.includes("/random")) await keyv.set(url, body, ttl); await keyv.set(url, body, ttl);
}
return body; return body;
} }

View File

@@ -32,7 +32,6 @@ const app = new Elysia()
})) }))
.use(scrapeRoutes) .use(scrapeRoutes)
.onError(({ code, error, set }) => { .onError(({ code, error, set }) => {
console.log("Error occurred:", error);
if (code === "NOT_FOUND") { if (code === "NOT_FOUND") {
set.status = 404; set.status = 404;
return { return {
@@ -40,6 +39,20 @@ const app = new Elysia()
message: (error as Error).message || "Not Found", message: (error as Error).message || "Not Found",
}; };
} }
if (code === "VALIDATION") {
set.status = 400;
return {
success: false,
message: JSON.parse((error as Error).message)[0]?.message || "Validation Error",
};
}
if (code === "UNKNOWN") {
set.status = 400;
return {
success: false,
message: (error as Error).message,
};
}
set.status = 500; set.status = 500;
return { return {
success: false, success: false,