UNPKG

rsshub

Version:
62 lines (60 loc) 2.01 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 { t as cache_default } from "./cache-Bo__VnGm.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/hellobtc/information.ts const rootUrl = "https://www.hellobtc.com"; const channelSelector = { latest: "div.index_tabs_container.js-tabs-container > div:nth-child(1)", application: "div.index_tabs_container.js-tabs-container > div:nth-child(2)" }; const titleMap = { latest: "最新", application: "应用" }; const route = { path: "/information/:channel?", categories: ["new-media"], example: "/hellobtc/information/latest", parameters: { channel: "类型,可填 `latest` 和 `application` 及最新和应用,默认为最新" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "首页", maintainers: ["Fatpandac"], handler }; async function handler(ctx) { const channel = ctx.req.param("channel") ?? "latest"; const url = rootUrl; const $ = load((await got_default(url)).data); const list = $(channelSelector[channel]).find("div.new_item").toArray().map((item) => ({ title: $(item).find("h2").text(), link: $(item).find("a").attr("href") })); const items = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { const content = load((await got_default(item.link)).data); item.description = content("#nr").html(); item.pubDate = timezone(parseDate(content("span.date").text(), "YYYY-MM-DD HH:mm:ss"), 8); return item; }))); return { title: `白话区块链 - 首页 ${titleMap[channel]}`, link: url, item: items }; } //#endregion export { route };