feat(routes): CSDN 博客 (#10447)

* feat(routes): CSDN Blog

* fix(docs): add CSDN Blog paramsDesc
This commit is contained in:
Jerry K Jia
2022-08-16 20:30:22 -04:00
committed by GitHub
parent 106341f4e6
commit 5f9018c3df
6 changed files with 72 additions and 0 deletions

39
lib/v2/csdn/blog.js Normal file
View File

@@ -0,0 +1,39 @@
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,
};
};