UNPKG

rsshub

Version:
64 lines (62 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 "./parse-date-BrP7mxXf.mjs"; import "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import "./timezone-D8cuwzTY.mjs"; import { i as processItems, o as rootUrl, r as getInfo } from "./util-Csp1O1k0.mjs"; import { load } from "cheerio"; //#region lib/routes/mydrivers/rank.ts const route = { path: "/rank/:range?", categories: ["new-media"], example: "/mydrivers/rank", parameters: { range: "时间范围,见下表,默认为24小时最热" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["m.mydrivers.com/newsclass.aspx"], target: "/rank" }], name: "排行", maintainers: ["nczitzk"], handler, url: "m.mydrivers.com/newsclass.aspx", description: `| 24 小时最热 | 本周最热 | 本月最热 | | ----------- | -------- | -------- | | 0 | 1 | 2 |` }; async function handler(ctx) { const { range = "0" } = ctx.req.param(); const limit = ctx.req.query("limit") ? Number.parseInt(ctx.req.query("limit"), 10) : 10; const currentUrl = new URL("newsclass.aspx?tid=1001", rootUrl).href; const apiUrl = new URL(`m/newslist.ashx?ac=rank&tid=${range}`, rootUrl).href; const { data: response } = await got_default(apiUrl); const $ = load(response); let items = $("a").toArray().filter((item) => /\/(\d+)\.html?/.test($(item).prop("href"))).slice(0, limit).map((item) => { item = $(item); const link = item.prop("href"); return { title: item.text(), link: new URL(link, rootUrl).href, guid: link.match(/\/(\d+)\.html?/)[1] }; }); items = await processItems(items); return { item: items, ...await getInfo(currentUrl, Number.parseInt(range, 10)) }; } //#endregion export { route };