Merge branch 'master' of https://github.com/SettingDust/RSSHub into SettingDust-master

This commit is contained in:
DIYgod 2018-10-15 16:09:15 +08:00
commit 4d8b216366
4 changed files with 47 additions and 13 deletions

View File

@ -825,6 +825,8 @@ GitHub 官方也提供了一些 RSS:
<route name="放送列表" author="magic-akari" example="/bangumi/calendar/today" path="/bangumi/calendar/today"/>
<route name="条目的章节" author="SettingDust" example="/bangumi/subject/ep/240038" path="/bangumi/subject/ep/:id" :paramsDesc="['条目 id, 在条目页面的地址栏查看']"/>
<route name="条目的吐槽箱" author="ylc395" example="/bangumi/subject/214265/comments?minLength=100" path="/bangumi/subject/:id/comments" :paramsDesc="['条目 id, 在条目页面的地址栏查看. minLength: 以查询字符串query string的形式指定. 用于过滤掉内容长度小于指定值的吐槽']"/>
<route name="条目的评论" author="ylc395" example="/bangumi/subject/214265/blogs" path="/bangumi/subject/:id/blogs" :paramsDesc="['条目 id, 在条目页面的地址栏查看']"/>

View File

@ -119,6 +119,7 @@ router.get('/bangumi/subject/:id/:type', require('./routes/bangumi/subject'));
router.get('/bangumi/person/:id', require('./routes/bangumi/person'));
router.get('/bangumi/topic/:id', require('./routes/bangumi/group/reply.js'));
router.get('/bangumi/group/:id', require('./routes/bangumi/group/topic.js'));
router.get('/bangumi/subject/:id', require('./routes/bangumi/subject'));
// 微博
router.get('/weibo/user/:uid', require('./routes/weibo/user'));

View File

@ -0,0 +1,26 @@
const axios = require('../../../utils/axios');
const DateTime = require('luxon').DateTime;
module.exports = async (subjectID) => {
const url = `https://api.bgm.tv/subject/${subjectID}/ep`;
const epsInfo = (await axios.get(url)).data;
const activeEps = [];
epsInfo.eps.map((e) => {
if (e.status !== 'NA') {
activeEps.push(e);
}
});
return {
title: `${epsInfo.name_cn}的Bangumi章节`,
link: `https://bgm.tv/subject/${subjectID}`,
item: activeEps.map((e) => ({
title: e.name_cn,
description: e.desc,
pubDate: DateTime.fromFormat(e.airdate, 'yyyy-L-dd'),
guid: e.id,
link: e.url,
})),
};
};

View File

@ -1,22 +1,27 @@
const getComments = require('./comments.js');
const getFromAPI = require('./offcial-subject-api.js');
const getEps = require('./ep.js');
module.exports = async (ctx) => {
const id = ctx.params.id;
let response;
switch (ctx.params.type) {
case 'comments':
response = await getComments(id, Number(ctx.request.query.minLength) || 0);
break;
case 'blogs':
response = await getFromAPI('blog')(id);
break;
case 'topics':
response = await getFromAPI('topic')(id);
break;
default:
throw Error(`暂不支持对${ctx.params.type}的订阅`);
if (ctx.params.type) {
switch (ctx.params.type) {
case 'comments':
response = await getComments(id, Number(ctx.request.query.minLength) || 0);
break;
case 'blogs':
response = await getFromAPI('blog')(id);
break;
case 'topics':
response = await getFromAPI('topic')(id);
break;
default:
throw Error(`暂不支持对${ctx.params.type}的订阅`);
}
} else {
response = await getEps(id);
}
ctx.state.data = response;
};