feat: caixin: full text of article route (#6773)

Co-authored-by: duhd1993 <duhd1993@gmail.com>
This commit is contained in:
Haodong DU 2021-01-25 15:53:23 -05:00 committed by GitHub
parent 966c50510e
commit 2a2c371b3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 6 deletions

View File

@ -1,4 +1,5 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const response = await got({
@ -12,15 +13,34 @@ module.exports = async (ctx) => {
const data = response.data.data.list;
const items = await Promise.all(
data.map(async (item) => {
const link = item.web_url;
const summary = `<blockquote><p>${item.summary}</p></blockquote><img src="${item.pics}">`;
const key = 'caixin_article_' + link;
const fullText = await ctx.cache.tryGet(key, async () => {
const result = await got.get(link);
const $ = cheerio.load(result.data);
return $('div#Main_Content_Val.text').html();
});
return {
title: item.title,
description: fullText ? summary + fullText : summary,
link: link,
pubDate: new Date(item.time * 1000),
author: item.author_name,
};
})
);
ctx.state.data = {
title: `财新网 - 首页`,
link: `http://www.caixin.com/`,
description: '财新网 - 首页',
item: data.map((item) => ({
title: item.title,
description: `<p>${item.summary}</p><img src="${item.pics}">`,
link: item.web_url,
pubDate: new Date(item.time * 1000),
})),
item: items,
};
};