UNPKG

rsshub

Version:
55 lines (49 loc) 1.74 kB
import { Route } from '@/types'; import cache from '@/utils/cache'; import { getRollNewsList, parseRollNewsList, parseArticle } from './utils'; export const route: Route = { path: '/rollnews/:lid?', categories: ['new-media'], example: '/sina/rollnews', parameters: { lid: '分区 id,可在 URL 中找到,默认为 `2509`' }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false, }, name: '滚动新闻', maintainers: ['xyqfer'], handler, description: `| 全部 | 国内 | 国际 | 社会 | 体育 | 娱乐 | 军事 | 科技 | 财经 | 股市 | 美股 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 2509 | 2510 | 2511 | 2669 | 2512 | 2513 | 2514 | 2515 | 2516 | 2517 | 2518 |`, }; async function handler(ctx) { const map = { 2509: '全部', 2510: '国内', 2511: '国际', 2669: '社会', 2512: '体育', 2513: '娱乐', 2514: '军事', 2515: '科技', 2516: '财经', 2517: '股市', 2518: '美股', }; const pageid = '153'; const { lid = '2509' } = ctx.req.param(); const { limit = '50' } = ctx.req.query(); const response = await getRollNewsList(pageid, lid, limit); const list = parseRollNewsList(response.data.result.data); const out = await Promise.all(list.map((item) => parseArticle(item, cache.tryGet))); return { title: `新浪${map[lid]}滚动新闻`, link: `https://news.sina.com.cn/roll/#pageid=${pageid}&lid=${lid}&k=&num=${limit}&page=1`, item: out, }; }