mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-01 17:48:15 +08:00
40 lines
1010 B
JavaScript
40 lines
1010 B
JavaScript
const got = require('@/utils/got');
|
|
const cheerio = require('cheerio');
|
|
const rssParser = require('@/utils/rss-parser');
|
|
|
|
module.exports = async (ctx) => {
|
|
const user = ctx.params.user;
|
|
|
|
const rootUrl = 'https://blog.csdn.net';
|
|
const blogUrl = `${rootUrl}/${user}`;
|
|
const rssUrl = blogUrl + '/rss/list';
|
|
|
|
const feed = await rssParser.parseURL(rssUrl);
|
|
|
|
const items = await Promise.all(
|
|
feed.items.map((item) =>
|
|
ctx.cache.tryGet(item.link, async () => {
|
|
const response = await got({
|
|
method: 'get',
|
|
url: item.link,
|
|
});
|
|
|
|
const $ = cheerio.load(response.data);
|
|
|
|
const description = $('#content_views').html();
|
|
|
|
return {
|
|
...item,
|
|
description,
|
|
};
|
|
})
|
|
)
|
|
);
|
|
|
|
ctx.state.data = {
|
|
...feed,
|
|
title: `${feed.title} - CSDN博客`,
|
|
item: items,
|
|
};
|
|
};
|