mirror of
https://github.com/txtdot/txtdot
synced 2024-10-18 14:40:19 +03:00
fix: proxy url
This commit is contained in:
parent
0ee5a3ffee
commit
b42036321e
@ -18,7 +18,6 @@ import {
|
||||
|
||||
export default async function handlePage(
|
||||
url: string, // remote URL
|
||||
requestUrl: URL, // proxy URL
|
||||
engine?: string
|
||||
): Promise<IHandlerOutput> {
|
||||
const urlObj = new URL(url);
|
||||
@ -41,7 +40,7 @@ export default async function handlePage(
|
||||
const window = new JSDOM(response.data, { url }).window;
|
||||
|
||||
[...window.document.getElementsByTagName("a")].forEach((link) => {
|
||||
link.href = generateProxyUrl(requestUrl, link.href, engine);
|
||||
link.href = generateProxyUrl(link.href, engine);
|
||||
});
|
||||
|
||||
if (engine) {
|
||||
|
@ -2,7 +2,6 @@ import { FastifyInstance } from "fastify";
|
||||
|
||||
import { GetSchema, IGetSchema } from "../types/requests";
|
||||
import handlePage from "../handlers/main";
|
||||
import { generateRequestUrl } from "../utils/generate";
|
||||
|
||||
export default async function getRoute(fastify: FastifyInstance) {
|
||||
fastify.get<IGetSchema>(
|
||||
@ -12,15 +11,7 @@ export default async function getRoute(fastify: FastifyInstance) {
|
||||
const remoteUrl = request.query.url;
|
||||
const engine = request.query.engine;
|
||||
|
||||
const parsed = await handlePage(
|
||||
remoteUrl,
|
||||
generateRequestUrl(
|
||||
request.protocol,
|
||||
request.hostname,
|
||||
request.originalUrl
|
||||
),
|
||||
engine
|
||||
);
|
||||
const parsed = await handlePage(remoteUrl, engine);
|
||||
|
||||
if (request.query.format === "text") {
|
||||
reply.type("text/plain; charset=utf-8");
|
||||
|
@ -1,22 +1,13 @@
|
||||
import { EngineRequest, IParseSchema, parseSchema } from "../types/requests";
|
||||
import { FastifyInstance } from "fastify";
|
||||
import handlePage from "../handlers/main";
|
||||
import { generateRequestUrl } from "../utils/generate";
|
||||
|
||||
export default async function parseRoute(fastify: FastifyInstance) {
|
||||
fastify.get<IParseSchema>(
|
||||
"/parse",
|
||||
{ schema: parseSchema },
|
||||
async (request: EngineRequest) => {
|
||||
return await handlePage(
|
||||
request.query.url,
|
||||
generateRequestUrl(
|
||||
request.protocol,
|
||||
request.hostname,
|
||||
request.originalUrl
|
||||
),
|
||||
request.query.engine
|
||||
);
|
||||
return await handlePage(request.query.url, request.query.engine);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -2,23 +2,13 @@ import { FastifyInstance } from "fastify";
|
||||
|
||||
import { GetRequest, IParseSchema, rawHtmlSchema } from "../types/requests";
|
||||
import handlePage from "../handlers/main";
|
||||
import { generateRequestUrl } from "../utils/generate";
|
||||
|
||||
export default async function rawHtml(fastify: FastifyInstance) {
|
||||
fastify.get<IParseSchema>(
|
||||
"/raw-html",
|
||||
{ schema: rawHtmlSchema },
|
||||
async (request: GetRequest) => {
|
||||
return (
|
||||
await handlePage(
|
||||
request.query.url,
|
||||
generateRequestUrl(
|
||||
request.protocol,
|
||||
request.hostname,
|
||||
request.originalUrl
|
||||
)
|
||||
)
|
||||
).content;
|
||||
return (await handlePage(request.query.url)).content;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -1,18 +1,13 @@
|
||||
export function generateRequestUrl(
|
||||
protocol: string,
|
||||
host: string,
|
||||
originalUrl: string,
|
||||
originalUrl: string
|
||||
): URL {
|
||||
return new URL(`${protocol}://${host}${originalUrl}`);
|
||||
}
|
||||
|
||||
export function generateProxyUrl(
|
||||
requestUrl: URL,
|
||||
href: string,
|
||||
engine?: string,
|
||||
): string {
|
||||
export function generateProxyUrl(href: string, engine?: string): string {
|
||||
const urlParam = `?url=${encodeURIComponent(href)}`;
|
||||
const engineParam = engine ? `&engine=${engine}` : "";
|
||||
// formatParam is not needed for now
|
||||
return requestUrl.origin + "/get" + urlParam + engineParam;
|
||||
return `/get${urlParam}${engineParam}`;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user