diff --git a/README.md b/README.md index 00c5c02eb..850a1ac74 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇 - UP 主关注用户 - 分区视频 - 视频评论 + - link 公告 - 微博 - 博主 - 网易云音乐 diff --git a/docs/README.md b/docs/README.md index d7de3bd05..f8b2e0733 100644 --- a/docs/README.md +++ b/docs/README.md @@ -165,6 +165,14 @@ s 参数: aid,可在视频页 URL 中找到 +### link 公告 + +举例: https://rss.now.sh/bilibili/link/news/live + +路由: `/bilibili/link/news/:product` + +参数: product 公告分类 包括 直播:live 小视频:vc 相簿:wh + ## 微博 ### 博主 diff --git a/router.js b/router.js index 8847c75d0..38ebb4059 100644 --- a/router.js +++ b/router.js @@ -20,6 +20,8 @@ router.get('/bilibili/user/followings/:uid', require('./routes/bilibili/followin router.get('/bilibili/partion/:tid', require('./routes/bilibili/partion')); router.get('/bilibili/bangumi/:seasonid', require('./routes/bilibili/bangumi')); router.get('/bilibili/video/reply/:aid', require('./routes/bilibili/reply')); +router.get('/bilibili/link/news/:product', require('./routes/bilibili/linkNews')); + // // 微博 router.get('/weibo/user/:uid', require('./routes/weibo/user')); diff --git a/routes/bilibili/linkNews.js b/routes/bilibili/linkNews.js new file mode 100644 index 000000000..1ec73d4da --- /dev/null +++ b/routes/bilibili/linkNews.js @@ -0,0 +1,46 @@ +const axios = require('axios'); +const art = require('art-template'); +const path = require('path'); +const config = require('../../config'); + +module.exports = async (ctx) => { + const product = ctx.params.product; + + let productTitle = ``; + + switch (product) { + case "live": + productTitle = `直播`; + break; + case "vc": + productTitle = `小视频`; + break; + case "wh": + productTitle = `相簿`; + break; + + } + + const response = await axios({ + method: 'get', + url: `https://api.vc.bilibili.com/news/v1/notice/list?platform=pc&product=${product}&category=all&page_no=1&page_size=20`, + headers: { + 'User-Agent': config.ua, + 'Referer': `https://link.bilibili.com/p/eden/news` + } + }); + const data = response.data.data.items; + + ctx.body = art(path.resolve(__dirname, '../../views/rss.art'), { + title: `bilibili ${productTitle}公告`, + link: `https://link.bilibili.com/p/eden/news#/?tab=${product}&tag=all&page_no=1`, + description: `bilibili ${productTitle}公告`, + lastBuildDate: new Date().toUTCString(), + item: data && data.map((item) => ({ + title: item.title, + description: `${item.mark}
`, + pubDate: new Date(item.ctime.replace(' ', 'T') + "+08:00").toUTCString(), + link: item.announce_link ? item.announce_link : `https://link.bilibili.com/p/eden/news#/newsdetail?id=${item.id}` + })), + }); +}; \ No newline at end of file