diff --git a/src/handlers/main.ts b/src/handlers/main.ts index 7a37f5b..46ce881 100644 --- a/src/handlers/main.ts +++ b/src/handlers/main.ts @@ -19,7 +19,8 @@ import { export default async function handlePage( url: string, // remote URL requestUrl: URL, // proxy URL - engine?: string + engine?: string, + redirect_path: string = "get" ): Promise { const urlObj = new URL(url); @@ -38,7 +39,7 @@ export default async function handlePage( [...window.document.getElementsByTagName("a")].forEach((link) => { try { - link.href = generateProxyUrl(requestUrl, link.href, engine); + link.href = generateProxyUrl(requestUrl, link.href, engine, redirect_path); } catch (_err) { // ignore TypeError: Invalid URL } diff --git a/src/routes/api/raw-html.ts b/src/routes/api/raw-html.ts index b0f44e2..b9d9de5 100644 --- a/src/routes/api/raw-html.ts +++ b/src/routes/api/raw-html.ts @@ -9,7 +9,8 @@ export default async function rawHtml(fastify: FastifyInstance) { fastify.get( "/api/raw-html", { schema: rawHtmlSchema }, - async (request) => { + async (request, reply) => { + reply.type("text/html; charset=utf-8"); return ( await handlePage( request.query.url, @@ -17,7 +18,9 @@ export default async function rawHtml(fastify: FastifyInstance) { request.protocol, request.hostname, request.originalUrl - ) + ), + request.query.engine, + "api/raw-html" ) ).content; } diff --git a/src/utils/generate.ts b/src/utils/generate.ts index 36412e0..4d5a006 100644 --- a/src/utils/generate.ts +++ b/src/utils/generate.ts @@ -9,7 +9,8 @@ export function generateRequestUrl( export function generateProxyUrl( requestUrl: URL, href: string, - engine?: string + engine?: string, + redirect_url: string = "get" ): string { const parsedHref = new URL(href); @@ -19,5 +20,5 @@ export function generateProxyUrl( const urlParam = `?url=${encodeURIComponent(parsedHref.toString())}`; const engineParam = engine ? `&engine=${engine}` : ""; - return `${requestUrl.origin}/get${urlParam}${engineParam}${hash}`; + return `${requestUrl.origin}/${redirect_url}${urlParam}${engineParam}${hash}`; }