Merge pull request #83 from Qixingchen/master

添加 b站 UP 的粉丝与关注用户 RSS
This commit is contained in:
DIYgod 2018-05-06 15:34:10 +08:00 committed by GitHub
commit 65376a0a1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 132 additions and 0 deletions

View File

@ -16,6 +16,8 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
- UP 主动态
- UP 主收藏夹
- UP 主投币视频
- UP 主粉丝
- UP 主关注用户
- 分区视频
- 微博
- 博主

View File

@ -50,6 +50,22 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
参数: uid用户 id可在 UP 主主页中找到
### UP 主粉丝
举例: https://rss.now.sh/bilibili/user/followers/2267573
路由: `/bilibili/user/followers/:uid`
参数: uid用户 id可在 UP 主主页中找到
### UP 主关注用户
举例: https://rss.now.sh/bilibili/user/followings/2267573
路由: `/bilibili/user/followings/:uid`
参数: uid用户 id可在 UP 主主页中找到
### 分区视频
举例: [https://rss.now.sh/bilibili/partion/33](https://rss.now.sh/bilibili/partion/33)

View File

@ -15,6 +15,8 @@ router.get('/bilibili/user/video/:uid', require('./routes/bilibili/video'));
router.get('/bilibili/user/fav/:uid', require('./routes/bilibili/fav'));
router.get('/bilibili/user/coin/:uid', require('./routes/bilibili/coin'));
router.get('/bilibili/user/dynamic/:uid', require('./routes/bilibili/dynamic'));
router.get('/bilibili/user/followers/:uid', require('./routes/bilibili/followers'));
router.get('/bilibili/user/followings/:uid', require('./routes/bilibili/followings'));
router.get('/bilibili/partion/:tid', require('./routes/bilibili/partion'));
router.get('/bilibili/bangumi/:seasonid', require('./routes/bilibili/bangumi'));

View File

@ -0,0 +1,56 @@
const axios = require('axios');
const qs = require('querystring');
const art = require('art-template');
const path = require('path');
const config = require('../../config');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
const nameResponse = await axios({
method: 'post',
url: 'https://space.bilibili.com/ajax/member/GetInfo',
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
'Content-Type': 'application/x-www-form-urlencoded',
},
data: qs.stringify({
mid: uid
}),
});
const name = nameResponse.data.data.name;
const countResponse = await axios({
method: 'get',
url: `https://api.bilibili.com/x/relation/stat?vmid=${uid}`,
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
}
});
const count = countResponse.data.data.follower;
const response = await axios({
method: 'get',
url: `https://api.bilibili.com/x/relation/followers?vmid=${uid}`,
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
}
});
const data = response.data.data.list;
ctx.body = art(path.resolve(__dirname, '../../views/rss.art'), {
title: `${name} 的 bilibili 粉丝`,
link: `https://space.bilibili.com/${uid}/#/fans/fans`,
description: `${name} 的 bilibili 粉丝`,
lastBuildDate: new Date().toUTCString(),
item: data.map((item) => ({
title: `${name} 新粉丝 ${item.uname}`,
description: `${item.uname}<br>${item.sign}<br>总计${count}`,
pubDate: new Date(item.mtime * 1000).toUTCString(),
link: `https://space.bilibili.com/${item.mid}`
})),
});
};

View File

@ -0,0 +1,56 @@
const axios = require('axios');
const qs = require('querystring');
const art = require('art-template');
const path = require('path');
const config = require('../../config');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
const nameResponse = await axios({
method: 'post',
url: 'https://space.bilibili.com/ajax/member/GetInfo',
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
'Content-Type': 'application/x-www-form-urlencoded',
},
data: qs.stringify({
mid: uid
}),
});
const name = nameResponse.data.data.name;
const countResponse = await axios({
method: 'get',
url: `https://api.bilibili.com/x/relation/stat?vmid=${uid}`,
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
}
});
const count = countResponse.data.data.following;
const response = await axios({
method: 'get',
url: `https://api.bilibili.com/x/relation/followings?vmid=${uid}`,
headers: {
'User-Agent': config.ua,
'Referer': `https://space.bilibili.com/${uid}/`,
}
});
const data = response.data.data.list;
ctx.body = art(path.resolve(__dirname, '../../views/rss.art'), {
title: `${name} 的 bilibili 关注`,
link: `https://space.bilibili.com/${uid}/#/fans/follow`,
description: `${name} 的 bilibili 关注`,
lastBuildDate: new Date().toUTCString(),
item: data.map((item) => ({
title: `${name} 新关注 ${item.uname}`,
description: `${item.uname}<br>${item.sign}<br>总计${count}`,
pubDate: new Date(item.mtime * 1000).toUTCString(),
link: `https://space.bilibili.com/${item.mid}`
})),
});
};