From bbbfe480ebeb7a3000d8a234e159e3eab4b83734 Mon Sep 17 00:00:00 2001 From: DarkCat09 Date: Mon, 11 Sep 2023 13:07:02 +0400 Subject: [PATCH] Adapted engines to work with HandlerInput --- src/handlers/google.ts | 8 +++++--- src/handlers/main.ts | 3 --- src/handlers/readability.ts | 6 +++--- src/handlers/stackoverflow/main.ts | 7 ++++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/handlers/google.ts b/src/handlers/google.ts index 7dd6be0..36a9cdc 100644 --- a/src/handlers/google.ts +++ b/src/handlers/google.ts @@ -1,12 +1,14 @@ -import { DOMWindow } from "jsdom"; +import { HandlerInput } from "./handler-input"; import { IHandlerOutput } from "./handler.interface"; import { EngineParseError } from "../errors/main"; export default async function google( - window: DOMWindow, + input: HandlerInput, ): Promise { + const document = input.parseDom().window.document; + const googleAnchors = [ - ...window.document.querySelectorAll("a[jsname=ACyKwe]"), + ...document.querySelectorAll("a[jsname=ACyKwe]"), ] as HTMLAnchorElement[]; if (!googleAnchors) { diff --git a/src/handlers/main.ts b/src/handlers/main.ts index a6ff350..8ff4ab9 100644 --- a/src/handlers/main.ts +++ b/src/handlers/main.ts @@ -2,15 +2,12 @@ import { IHandlerOutput } from "./handler.interface"; import { Engines, EngineFunction, EnginesMatch } from "../types/handlers"; import axios from "../types/axios"; -import { JSDOM } from "jsdom"; - import micromatch from "micromatch"; import readability from "./readability"; import google, { GoogleDomains } from "./google"; import stackoverflow, { StackOverflowDomains } from "./stackoverflow/main"; -import { generateProxyUrl } from "../utils/generate"; import isLocalResource from "../utils/islocal"; import { LocalResourceError, NotHtmlMimetypeError } from "../errors/main"; diff --git a/src/handlers/readability.ts b/src/handlers/readability.ts index f629aa2..a22cc66 100644 --- a/src/handlers/readability.ts +++ b/src/handlers/readability.ts @@ -1,12 +1,12 @@ import { Readability } from "@mozilla/readability"; +import { HandlerInput } from "./handler-input"; import { IHandlerOutput } from "./handler.interface"; -import { DOMWindow } from "jsdom"; import { EngineParseError } from "../errors/main"; export default async function readability( - window: DOMWindow + input: HandlerInput, ): Promise { - const reader = new Readability(window.document); + const reader = new Readability(input.parseDom().window.document); const parsed = reader.parse(); if (!parsed) { diff --git a/src/handlers/stackoverflow/main.ts b/src/handlers/stackoverflow/main.ts index 9730bc8..f1b9c6c 100644 --- a/src/handlers/stackoverflow/main.ts +++ b/src/handlers/stackoverflow/main.ts @@ -1,13 +1,14 @@ +import { HandlerInput } from "../handler-input"; import { IHandlerOutput } from "../handler.interface"; -import { DOMWindow } from "jsdom"; import { EngineParseError } from "../../errors/main"; import qPostsHandler from "./questions-posts"; export default async function stackoverflow( - window: DOMWindow, + input: HandlerInput, ): Promise { - const url = new URL(window.location.href); + const window = input.parseDom().window; + const url = new URL(window.location.href); const path = url.pathname.split("/").filter((p) => p !== ""); let result: IHandlerOutput = {