fix: proxy url

This commit is contained in:
Artemy 2023-08-17 18:59:00 +03:00
parent 0ee5a3ffee
commit b42036321e
5 changed files with 7 additions and 41 deletions

View File

@ -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) {

View File

@ -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");

View File

@ -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);
}
);
}

View File

@ -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;
}
);
}

View File

@ -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}`;
}