| import { stringifyMarkdownElementTree } from "$lib/server/websearch/markdown/utils/stringify"; |
| import { scrapeUrl } from "$lib/server/websearch/scrape/scrape"; |
| import type { ConfigTool } from "$lib/types/Tool"; |
| import { ObjectId } from "mongodb"; |
|
|
| const fetchUrl: ConfigTool = { |
| _id: new ObjectId("00000000000000000000000B"), |
| type: "config", |
| description: "Fetch the contents of a URL", |
| color: "blue", |
| icon: "cloud", |
| displayName: "Fetch URL", |
| name: "fetchUrl", |
| endpoint: null, |
| inputs: [ |
| { |
| name: "url", |
| type: "str", |
| description: "The URL of the webpage to fetch", |
| paramType: "required", |
| }, |
| ], |
| outputComponent: null, |
| outputComponentIdx: null, |
| showOutput: false, |
| async *call({ url }) { |
| const blocks = String(url).split("\n"); |
| const urlStr = blocks[blocks.length - 1]; |
|
|
| const { title, markdownTree } = await scrapeUrl(urlStr, Infinity); |
|
|
| return { |
| outputs: [{ title, text: stringifyMarkdownElementTree(markdownTree) }], |
| display: false, |
| }; |
| }, |
| }; |
|
|
| export default fetchUrl; |
|
|