UNPKG

rsshub

Version:
54 lines (52 loc) 1.55 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import "./ofetch-DKl_Ma9g.mjs"; import { t as parseDate } from "./parse-date-r5WDWHno.mjs"; import "./helpers-Bo4JQYdN.mjs"; import { t as got_default } from "./got-CO-ndVl2.mjs"; import { load } from "cheerio"; //#region lib/routes/finviz/quote.ts const route = { path: "/news/:ticker", categories: ["finance"], example: "/finviz/news/AAPL", parameters: { ticker: "The stock ticker" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "US Stock News", maintainers: ["HenryQW"], handler }; async function handler(ctx) { const link = `https://finviz.com/quote.ashx?t=${ctx.req.param("ticker")}`; const $ = load((await got_default(link)).body); const data = $("table.fullview-news-outer tr"); let dateRow = ""; const item = await Promise.all(data.toArray().map((e) => { let date = $(e).find("td").first().text().trim(); if (date.includes("-")) dateRow = date.split(" ")[0]; else date = `${dateRow} ${date}`; return { title: $(e).find("a").text(), pubDate: parseDate(date, "MMM-DD-YY HH:mmA"), author: $(e).find("span").text(), link: $(e).find("a").attr("href") }; })); const name = $(".fullview-title b").text(); return { title: `${ctx.req.param("ticker")} ${name} News by Finviz`, link, description: `A collection of ${name} news aggregated by Finviz.`, item }; } //#endregion export { route };