RSSHub/lib/v2/aicaijing/index.js

74 lines
2.1 KiB
JavaScript

const got = require('@/utils/got');
const { parseDate } = require('@/utils/parse-date');
const { art } = require('@/utils/render');
const path = require('path');
module.exports = async (ctx) => {
const category = ctx.params.category ?? 'latest';
const id = ctx.params.id ?? 14;
const titles = {
14: '热点 - 最新',
5: '热点 - 科技',
9: '热点 - 消费',
7: '热点 - 出行',
13: '热点 - 文娱',
10: '热点 - 教育',
25: '热点 - 地产',
11: '热点 - 更多',
28: '深度 - 出行',
29: '深度 - 科技',
31: '深度 - 消费',
33: '深度 - 教育',
34: '深度 - 更多',
8: '深度 - 地产',
6: '深度 - 文娱',
};
const categories = {
latest: {
url: '',
title: '最新文章',
},
recommend: {
url: '&isRecommend=true',
title: '推荐资讯',
},
cover: {
url: '&position=1',
title: '封面文章',
},
information: {
url: `&categoryId=${id}`,
title: titles[id],
},
};
const rootUrl = 'https://www.aicaijing.com.cn';
const apiRootUrl = 'https://api.aicaijing.com.cn';
const apiUrl = `${apiRootUrl}/article/detail/list?size=${ctx.query.limit ?? 50}&page=1${categories[category].url}`;
const response = await got({
method: 'get',
url: apiUrl,
});
const items = response.data.data.items.map((item) => ({
title: item.title,
link: `${rootUrl}/article/${item.articleId}`,
author: item.userInfo.nickname,
pubDate: parseDate(item.createTime),
category: [item.category.name].concat(item.tags.map((t) => t.name)),
description: art(path.join(__dirname, 'templates/description.art'), {
image: item.cover,
description: item.content,
}),
}));
ctx.state.data = {
title: `AI 财经社 - ${categories[category].title}`,
link: rootUrl,
item: items,
};
};