Compare commits
1 Commits
v8.3.5-alp
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67be3acc6e |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "lustpress",
|
"name": "lustpress",
|
||||||
"version": "8.3.5-alpha",
|
"version": "8.3.6-alpha",
|
||||||
"description": "RESTful and experimental API for PH and other R18 websites",
|
"description": "RESTful and experimental API for PH and other R18 websites",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -88,18 +88,7 @@ class LustPress {
|
|||||||
const domain = new URL(url).hostname;
|
const domain = new URL(url).hostname;
|
||||||
|
|
||||||
const headers: Record<string, string> = {
|
const headers: Record<string, string> = {
|
||||||
"User-Agent": isPornhub ? this.browserUA : this.useragent,
|
"User-Agent": isPornhub ? this.browserUA : this.useragent
|
||||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
|
||||||
"Accept-Language": "en-US,en;q=0.9",
|
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
|
||||||
"Sec-Ch-Ua": '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
|
|
||||||
"Sec-Ch-Ua-Mobile": "?0",
|
|
||||||
"Sec-Ch-Ua-Platform": '"Windows"',
|
|
||||||
"Sec-Fetch-Dest": "document",
|
|
||||||
"Sec-Fetch-Mode": "navigate",
|
|
||||||
"Sec-Fetch-Site": "none",
|
|
||||||
"Sec-Fetch-User": "?1",
|
|
||||||
"Upgrade-Insecure-Requests": "1"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isPornhub) {
|
if (isPornhub) {
|
||||||
|
|||||||
138
src/index.ts
138
src/index.ts
@@ -1,69 +1,69 @@
|
|||||||
import { Elysia } from "elysia";
|
import { Elysia } from "elysia";
|
||||||
import { cors } from "@elysiajs/cors";
|
import { cors } from "@elysiajs/cors";
|
||||||
import { swagger } from "@elysiajs/swagger";
|
import { swagger } from "@elysiajs/swagger";
|
||||||
import { lust } from "./LustPress";
|
import { lust } from "./LustPress";
|
||||||
import { scrapeRoutes } from "./router/endpoint";
|
import { scrapeRoutes } from "./router/endpoint";
|
||||||
import pkg from "../package.json";
|
import pkg from "../package.json";
|
||||||
|
|
||||||
const app = new Elysia()
|
const app = new Elysia()
|
||||||
.use(cors())
|
.use(cors())
|
||||||
.use(
|
.use(
|
||||||
swagger({
|
swagger({
|
||||||
path: "/docs",
|
path: "/docs",
|
||||||
documentation: {
|
documentation: {
|
||||||
info: {
|
info: {
|
||||||
title: "Lustpress API",
|
title: "Lustpress API",
|
||||||
version: pkg.version,
|
version: pkg.version,
|
||||||
description: pkg.description,
|
description: pkg.description,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.get("/", async () => ({
|
.get("/", async () => ({
|
||||||
success: true,
|
success: true,
|
||||||
playground: "https://sinkaroid.github.io/lustpress",
|
playground: "https://sinkaroid.github.io/lustpress",
|
||||||
endpoint:
|
endpoint:
|
||||||
"https://github.com/sinkaroid/lustpress/blob/master/README.md#routing",
|
"https://github.com/sinkaroid/lustpress/blob/master/README.md#routing",
|
||||||
date: new Date().toLocaleString(),
|
date: new Date().toLocaleString(),
|
||||||
rss: lust.currentProccess().rss,
|
rss: lust.currentProccess().rss,
|
||||||
heap: lust.currentProccess().heap,
|
heap: lust.currentProccess().heap,
|
||||||
server: await lust.getServer(),
|
server: await lust.getServer(),
|
||||||
version: pkg.version,
|
version: pkg.version,
|
||||||
}))
|
}))
|
||||||
.onError(({ code, error, set }) => {
|
.onError(({ code, error, set }) => {
|
||||||
if (code === "NOT_FOUND") {
|
if (code === "NOT_FOUND") {
|
||||||
set.status = 404;
|
set.status = 404;
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: (error as Error).message || "Not Found",
|
message: (error as Error).message || "Not Found",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (code === "VALIDATION") {
|
if (code === "VALIDATION") {
|
||||||
set.status = 400;
|
set.status = 400;
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: JSON.parse((error as Error).message)[0]?.message || "Validation Error",
|
message: JSON.parse((error as Error).message)[0]?.message || "Validation Error",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (code === "UNKNOWN") {
|
if (code === "UNKNOWN") {
|
||||||
set.status = 400;
|
set.status = 400;
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: (error as Error).message,
|
message: (error as Error).message,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
set.status = 500;
|
set.status = 500;
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: (error as Error).message || "Internal Server Error",
|
message: (error as Error).message || "Internal Server Error",
|
||||||
stack: (error as Error).stack,
|
stack: (error as Error).stack,
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.use(scrapeRoutes)
|
.use(scrapeRoutes) // reuse legacy error handling
|
||||||
.listen(process.env.PORT || 3000);
|
.listen(process.env.PORT || 3000);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`Lustpress is running at ${app.server?.hostname}:${app.server?.port}`
|
`Lustpress is running at ${app.server?.hostname}:${app.server?.port}`
|
||||||
);
|
);
|
||||||
|
|
||||||
export type App = typeof app;
|
export type App = typeof app;
|
||||||
|
|||||||
Reference in New Issue
Block a user