rsshub
Version:
Make RSS Great Again!
55 lines (49 loc) • 1.74 kB
text/typescript
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,
};
}