mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-08 22:19:40 +08:00
add 豆瓣用户广播 RSS (#1636)
* feat: add douban user's status feeds * docs: add douban user's status feeds * docs: modify douban user's status feed tips
This commit is contained in:
@@ -522,6 +522,18 @@ RSSHub 提供下列 API 接口:
|
|||||||
|
|
||||||
<route name="豆列" author="LogicJake" example="/douban/doulist/37716774" path="douban/doulist/:id" :paramsDesc="['豆列id']"/>
|
<route name="豆列" author="LogicJake" example="/douban/doulist/37716774" path="douban/doulist/:id" :paramsDesc="['豆列id']"/>
|
||||||
|
|
||||||
|
<route name="用户广播" author="alfredcai" example="/douban/people/62759792/status" path="douban/people/:userid/status" :paramsDesc="['整数型用户 id']">
|
||||||
|
|
||||||
|
::: tip 提示
|
||||||
|
|
||||||
|
- **目前只支持整数型 id**
|
||||||
|
- 字母型的 id,可以通过头像图片链接来找到其整数型 id,图片命名规则`ul[userid]-*.jpg`
|
||||||
|
- 例如:用户 id: `MovieL`他的头像图片链接:`https://img1.doubanio.com/icon/ul1128221-98.jpg`他的整数型 id: `1128221`
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
</route>
|
||||||
|
|
||||||
### Disqus
|
### Disqus
|
||||||
|
|
||||||
<route name="评论" author="DIYgod" example="/disqus/posts/diygod-me" path="/disqus/posts/:forum" :paramsDesc="['网站的 disqus name']"/>
|
<route name="评论" author="DIYgod" example="/disqus/posts/diygod-me" path="/disqus/posts/:forum" :paramsDesc="['网站的 disqus name']"/>
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ router.get('/douban/bookstore', require('./routes/douban/bookstore'));
|
|||||||
router.get('/douban/book/rank/:type', require('./routes/douban/book/rank'));
|
router.get('/douban/book/rank/:type', require('./routes/douban/book/rank'));
|
||||||
router.get('/douban/doulist/:id', require('./routes/douban/doulist'));
|
router.get('/douban/doulist/:id', require('./routes/douban/doulist'));
|
||||||
router.get('/douban/explore/column/:id', require('./routes/douban/explore_column'));
|
router.get('/douban/explore/column/:id', require('./routes/douban/explore_column'));
|
||||||
|
router.get('/douban/people/:userid/status', require('./routes/douban/people/status.js'));
|
||||||
|
|
||||||
// 煎蛋
|
// 煎蛋
|
||||||
router.get('/jandan/:sub_model', require('./routes/jandan/pic'));
|
router.get('/jandan/:sub_model', require('./routes/jandan/pic'));
|
||||||
|
|||||||
51
lib/routes/douban/people/status.js
Normal file
51
lib/routes/douban/people/status.js
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
const axios = require('../../../utils/axios');
|
||||||
|
|
||||||
|
function getContentByActivity(status) {
|
||||||
|
const title = `${status.author.name} ${status.activity}:${status.text}`;
|
||||||
|
let description = '';
|
||||||
|
switch (status.activity) {
|
||||||
|
case '说':
|
||||||
|
break;
|
||||||
|
case '转发':
|
||||||
|
description = getContentByActivity(status.reshared_status).title;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (status.card) {
|
||||||
|
if (status.card.rating) {
|
||||||
|
description = `${status.card.title}<br>评分:${status.card.rating}<br>${status.card.subtitle}`;
|
||||||
|
} else {
|
||||||
|
description = `${status.card.title}<br>${status.card.subtitle}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return { title, description };
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = async (ctx) => {
|
||||||
|
const userid = ctx.params.userid;
|
||||||
|
const url = `https://m.douban.com/rexxar/api/v2/status/user_timeline/${userid}?max_id=&ck=eUUA&for_mobile=1`;
|
||||||
|
|
||||||
|
const response = await axios({
|
||||||
|
method: 'GET',
|
||||||
|
url: url,
|
||||||
|
headers: {
|
||||||
|
Referer: `https://m.douban.com/people/${userid}/statuses`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const items = response.data.items;
|
||||||
|
|
||||||
|
ctx.state.data = {
|
||||||
|
title: `豆瓣广播-${userid}`,
|
||||||
|
link: `https://m.douban.com/people/${userid}/statuses`,
|
||||||
|
item: items.map((item) => {
|
||||||
|
const r = getContentByActivity(item.status);
|
||||||
|
return {
|
||||||
|
title: r.title,
|
||||||
|
link: item.status.sharing_url,
|
||||||
|
pubDate: item.status.create_time,
|
||||||
|
description: r.description,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user