UNPKG

rsshub

Version:
40 lines (39 loc) 1.59 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { n as parseRelativeDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { t as timezone } from "./timezone-DE--ze1V.mjs"; //#region lib/routes/ifnews/column.ts const route = { path: "/:cid", categories: ["traditional-media"], example: "/ifnews/48", parameters: { cid: "栏目 ID" }, description: "`cid`可在对应栏目的 url 后的参数中获取,如`热点快报`的栏目 url 为`http://www.ifnews.com/column.html?cid=48`, `cid`即为`48`.", name: "栏目", maintainers: ["Origami404"], handler }; async function handler(ctx) { const { cid } = ctx.req.param(); const url = "https://www.ifnews.com"; const data = await rofetch(`https://api.ifnews.com/api/getArticles?cid=${cid}`, { headers: { Referer: `${url}/column.html?cid=${cid}` } }); const list = data.list.map((item) => ({ title: item.title, author: item.createUser, link: `${url}/news.html?aid=${item.fileID}`, pubDate: timezone(parseRelativeDate(item.publishTime), 8), aid: item.fileID })); const result = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => { item.description = (await rofetch(`https://api.ifnews.com/api/getArticle?aid=${item.aid}`, { headers: { Referer: item.link } })).content; return item; }))); return { title: `人民日报社 国际金融报 ${data.column.columnName}`, description: data.column.description || data.column.keyword, link: `${url}/column.html?cid=${cid}`, item: result }; } //#endregion export { route };