diff --git a/src/handlers/google.ts b/src/handlers/google.ts index 0e3f5c3..17c6df2 100644 --- a/src/handlers/google.ts +++ b/src/handlers/google.ts @@ -50,13 +50,6 @@ export default async function google( "APjFqb" ) as HTMLTextAreaElement; - const searchForm = ` -
- - -
- `; - const navLinks = [ ...window.document.querySelectorAll( "table[class=AaVjTc] > tbody > tr > td > a" @@ -66,19 +59,26 @@ export default async function google( return `${link.innerHTML}`; }); - const currPage = ( - window.document.querySelector(".YyVfkd") as HTMLTableCellElement - ).cellIndex; + const currPage = + (window.document.querySelector(".YyVfkd") as HTMLTableCellElement) + ?.cellIndex || 0; const pageTd = `${currPage}`; if (currPage === 1) navLinks.splice(currPage - 1, 0, pageTd); - else navLinks.splice(currPage, 0, pageTd); + else if (currPage !== 0) navLinks.splice(currPage, 0, pageTd); const navigation = `${navLinks.join("")}
`; + const searchForm = ` +
+ + +
+ `; + return { content: `${searchForm}${content.join("")}${navigation}`, textContent: textContent.join("\n"), diff --git a/src/handlers/main.ts b/src/handlers/main.ts index 6769283..01d8983 100644 --- a/src/handlers/main.ts +++ b/src/handlers/main.ts @@ -18,7 +18,6 @@ import { export default async function handlePage( url: string, // remote URL - requestUrl: URL, // proxy URL engine?: string ): Promise { 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) { diff --git a/src/routes/get.ts b/src/routes/get.ts index dbd1e59..e6afe6b 100644 --- a/src/routes/get.ts +++ b/src/routes/get.ts @@ -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( @@ -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"); diff --git a/src/routes/parse.ts b/src/routes/parse.ts index bca6363..09bb06a 100644 --- a/src/routes/parse.ts +++ b/src/routes/parse.ts @@ -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( "/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); } ); } diff --git a/src/routes/raw-html.ts b/src/routes/raw-html.ts index 30c520f..20bcae5 100644 --- a/src/routes/raw-html.ts +++ b/src/routes/raw-html.ts @@ -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( "/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; } ); } diff --git a/src/utils/generate.ts b/src/utils/generate.ts index d65f7f8..4a0095a 100644 --- a/src/utils/generate.ts +++ b/src/utils/generate.ts @@ -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}`; }