rsshub
Version:
Make RSS Great Again!
41 lines (36 loc) • 1.17 kB
text/typescript
import { Route } from '@/types';
import cache from '@/utils/cache';
import got from '@/utils/got';
import getRssItem from './utils';
const rootApiUrl = 'https://www.lifeweek.com.cn/api/userWebFollow/getFollowTagContentList?type=3&sort=2&tagId';
const rootUrl = 'https://www.lifeweek.com.cn/column';
const articleRootUrl = 'https://www.lifeweek.com.cn/article';
export const route: Route = {
path: '/channel/:id',
radar: [
{
source: ['lifeweek.com.cn/column/:channel'],
target: '/channel/:channel',
},
],
name: 'Unknown',
maintainers: [],
handler,
};
async function handler(ctx) {
const channel = ctx.req.param('id');
const url = `${rootApiUrl}=${channel}`;
const { data } = await got(url);
const result = data.model.articleResponseList;
const items = await Promise.all(
result.map((item) => {
const articleLink = `${articleRootUrl}/${item.id}`;
return cache.tryGet(articleLink, () => getRssItem(item, articleLink));
})
);
return {
title: data.model.tagName,
link: `${rootUrl}/${channel}`,
item: items,
};
}