mirror of
https://github.com/txtdot/txtdot
synced 2024-10-18 14:40:19 +03:00
fix: lang, textContent
This commit is contained in:
parent
23a6484e20
commit
1630dbfa17
@ -4,32 +4,42 @@ import { IHandlerOutput } from "./handler.interface";
|
||||
export default async function google(
|
||||
window: DOMWindow
|
||||
): Promise<IHandlerOutput> {
|
||||
const searchEl = window.document.querySelectorAll(
|
||||
const googleAnchors = window.document.querySelectorAll(
|
||||
"#rso > div > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1)"
|
||||
);
|
||||
|
||||
if (!searchEl) {
|
||||
throw new Error("Failed to find search element [google]");
|
||||
if (!googleAnchors) {
|
||||
throw new Error("Failed to find anchors in search result [google]");
|
||||
}
|
||||
const results = [...searchEl];
|
||||
const results = [...googleAnchors];
|
||||
|
||||
const content = results.map((result) => {
|
||||
const convertToFormat = (result: Element, isHtml: boolean) => {
|
||||
const anchor = result as HTMLAnchorElement;
|
||||
const heading = anchor.childNodes[1] as HTMLHeadingElement;
|
||||
return `<p><a href="${anchor.href}">${heading.innerHTML}</p>`;
|
||||
return isHtml
|
||||
? `<p><a href="${anchor.href}">${heading.innerHTML}</p>`
|
||||
: `${heading.innerHTML} > ${anchor.href}`;
|
||||
};
|
||||
|
||||
const content = results.map((result) => {
|
||||
return convertToFormat(result, true);
|
||||
});
|
||||
|
||||
const textContent = results.map((result) => {
|
||||
return convertToFormat(result, false);
|
||||
});
|
||||
|
||||
const searchForm = `
|
||||
<div id="searchform" method="get" id="searchform" method="get">
|
||||
<form onsubmit="window.location.href = '/?url=https://www.google.com/search?q='+ document.getElementById('q').value.split(' ').join('+'); return false">
|
||||
<input type="text" name="q" id="q">
|
||||
<input type="button" value="Search" onclick="window.location.href = '/?url=https://www.google.com/search?q='+ document.getElementById('q').value.split(' ').join('+');">
|
||||
</div>
|
||||
</form>
|
||||
`;
|
||||
|
||||
return {
|
||||
content: `${searchForm}${content.join("")}`,
|
||||
textContent: "parsed.textContent",
|
||||
textContent: textContent.join("\n"),
|
||||
title: window.document.title,
|
||||
lang: "parsed.lang",
|
||||
lang: window.document.documentElement.lang,
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user