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 = ``;
+ 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}`;
}