UNPKG

rsshub

Version:
72 lines (70 loc) 2.39 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import { load } from "cheerio"; //#region lib/routes/tradingview/desktop.ts const route = { path: "/desktop", categories: ["program-update"], example: "/tradingview/desktop", parameters: {}, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["tradingview.com/support/solutions/43000673888-tradingview-desktop-releases-and-release-notes/"] }], name: "Desktop releases and release notes", maintainers: ["nczitzk"], handler, url: "tradingview.com/support/solutions/43000673888-tradingview-desktop-releases-and-release-notes/" }; async function handler(ctx) { const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 50; const rootUrl = "https://www.tradingview.com"; const currentUrl = new URL("/support/solutions/43000673888-tradingview-desktop-releases-and-release-notes/", rootUrl).href; const { data: response } = await got_default(currentUrl); const $ = load(response); $("h4[data-identifyelement]").each((_, el) => { el = $(el); if (el.text().trim() === "") el.remove(); }); const items = $("h4[data-identifyelement]").toArray().slice(0, limit).map((item) => { item = $(item); const title$1 = item.text(); const description = $.html(item.nextUntil("h4")); return { title: title$1, link: currentUrl, description, category: load(description)("h5").toArray().map((c) => $(c).text()), guid: `tradingview-desktop#${title$1.split(/versions?\s/).pop()}`, pubDate: timezone(parseDate(title$1.split(/\./)[0], "MMMM D, YYYY"), 8) }; }); const title = $("title").text(); const titleSplits = title.split(/—/); const icon = new URL($("link[rel=\"icon\"]").prop("href"), rootUrl).href; return { item: items, title, link: currentUrl, description: titleSplits[0], language: $("html").prop("lang"), icon, logo: icon, subtitle: titleSplits[0], author: titleSplits.pop() }; } //#endregion export { route };