Files
RSSHub/lib/routes/sohu/mp.js
2019-09-09 14:32:20 +08:00

56 lines
1.6 KiB
JavaScript

const got = require('@/utils/got');
const cheerio = require('cheerio');
const date = require('@/utils/date');
module.exports = async (ctx) => {
const { id } = ctx.params;
const response = await got.get(`https://v2.sohu.com/author-page-api/author-articles/pc/${id}`);
const list = response.data.data.pcArticleVOS.splice(0, 10);
let author, link;
const items = await Promise.all(
list.map(async (e) => {
if (e.link && !e.link.match(/^https?:\/\//)) {
if (e.link.match(/^\/\//)) {
e.link = 'http:' + e.link;
} else {
e.link = 'http://' + e.link;
}
}
const response = await ctx.cache.tryGet(e.link, async () => (await got.get(e.link)).data);
const $ = cheerio.load(response);
if (!author) {
const meta = $('#article-container h4 > a');
author = meta.text();
link = meta.attr('href').split('==')[0];
}
const article = $('#mp-editor');
article.find('#backsohucom, p[data-role="editor-name"]').each((i, e) => {
$(e).remove();
});
const single = {
title: e.title,
link: e.link,
description: article.html(),
pubDate: date(e.publicTimeStr, 8),
author,
};
return Promise.resolve(single);
})
);
ctx.state.data = {
title: `搜狐号 - ${author}`,
link,
description: '',
item: items,
};
};