RSS: add weibo user2

This commit is contained in:
DIYgod 2018-05-14 02:02:03 +08:00
parent 8b0fd6c736
commit 0822fa0af4
No known key found for this signature in database
GPG Key ID: EC0B76A252D3EF67
3 changed files with 63 additions and 5 deletions

View File

@ -199,9 +199,11 @@ s
路由: `bilibili/live/search/:key/:order`
参数: key, 搜索关键字
参数
order ,排序方式 开播时间: live_time,人气:online
key: 搜索关键字
order: 排序方式live_time 开播时间online 人气
### 直播分区
@ -213,9 +215,11 @@ order ,排序方式 开播时间: live_time,人气:online
路由: `bilibili/live/area/:areaID/:order`
参数: areaID , 分区ID 分区增删较多,可通过 [分区列表](https://api.live.bilibili.com/room/v1/Area/getList) 查询
参数
order ,排序方式 开播时间: live_time,人气:online
areaID: 分区ID 分区增删较多,可通过 [分区列表](https://api.live.bilibili.com/room/v1/Area/getList) 查询
order: 排序方式live_time 开播时间online 人气
## 微博
@ -227,6 +231,14 @@ order ,排序方式 开播时间: live_time,人气:online
参数: uid用户 id博主主页打开控制台执行 `/uid=(\d+)/. exec(document.querySelector('.opt_box .btn_bed').getAttribute('action-data'))[1]` 获取
::: warning 注意
**个别**博主会有明显的数据缺失,原因未知,所以这里提供另外一种方式,但这种方式的缺点是描述不如第一种完善。出现缺失的情况较少,建议优先选择第一种方案
:::
举例: [https://rss.now.sh/weibo/user2/3306934123](https://rss.now.sh/weibo/user2/3306934123)
路由: `/weibo/user2/:uid`
### 关键词
举例: [https://rss.now.sh/weibo/keyword/DIYgod](https://rss.now.sh/weibo/keyword/DIYgod)

View File

@ -27,9 +27,9 @@ router.get('/bilibili/live/room/:roomID', require('./routes/bilibili/liveRoom'))
router.get('/bilibili/live/search/:key/:order', require('./routes/bilibili/liveSearch'));
router.get('/bilibili/live/area/:areaID/:order', require('./routes/bilibili/liveArea'));
// 微博
router.get('/weibo/user/:uid', require('./routes/weibo/user'));
router.get('/weibo/user2/:uid', require('./routes/weibo/user2'));
router.get('/weibo/keyword/:keyword', require('./routes/weibo/keyword'));
// 网易云音乐

46
routes/weibo/user2.js Normal file
View File

@ -0,0 +1,46 @@
const axios = require('axios');
const cheerio = require('cheerio');
const config = require('../../config');
const weiboUtils = require('./utils');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
const response = await axios({
method: 'get',
url: `http://service.weibo.com/widget/widget_blog.php?uid=${uid}`,
headers: {
'User-Agent': config.ua,
'Referer': `http://service.weibo.com/widget/widget_blog.php?uid=${uid}`
}
});
const data = response.data;
const $ = cheerio.load(data, {
decodeEntities: false
});
const wbs = [];
const items = $('.wgtCell');
let wb, item, titleEle;
items.map((index, ele) => {
wb = {};
item = $(ele);
titleEle = item.find('.wgtCell_txt');
wb.title = titleEle.text().replace(/^\s+|\s+$/g, '');
if (wb.title.length > 24) {
wb.title = wb.title.slice(0, 24) + '...';
}
wb.description = titleEle.html().replace(/^\s+|\s+$/g, '').replace(/thumbnail/, 'large');
wb.pubDate = weiboUtils.getTime(item.find('.link_d').html());
wb.link = item.find('.wgtCell_tm a').attr('href');
wbs.push(wb);
});
const name = $('.userNm').text();
ctx.state.data = {
title: `${name}的微博`,
link: `http://weibo.com/${uid}/`,
item: wbs,
};
};