From b96830d06978bda784c7c62694265157eb26281d Mon Sep 17 00:00:00 2001 From: tmr Date: Mon, 30 Dec 2019 11:38:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20bilibili=20?= =?UTF-8?q?=E6=AF=8F=E5=91=A8=E5=BF=85=E7=9C=8B=20(#3641)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/social-media.md | 4 +++ lib/router.js | 1 + lib/routes/bilibili/weekly_recommend.js | 36 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 lib/routes/bilibili/weekly_recommend.js diff --git a/docs/social-media.md b/docs/social-media.md index cdd3f22567..53d133b2c5 100644 --- a/docs/social-media.md +++ b/docs/social-media.md @@ -254,6 +254,10 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 +### B 站每周必看 + + + ## Disqus ### 评论 diff --git a/lib/router.js b/lib/router.js index 72d6ff8154..4c2dbea1b4 100644 --- a/lib/router.js +++ b/lib/router.js @@ -65,6 +65,7 @@ router.get('/bilibili/vsearch/:kw/:order?/:disableEmbed?', require('./routes/bil router.get('/bilibili/followings/video/:uid/:disableEmbed?', require('./routes/bilibili/followings_video')); router.get('/bilibili/followings/article/:uid', require('./routes/bilibili/followings_article')); router.get('/bilibili/readlist/:listid', require('./routes/bilibili/readlist')); +router.get('/bilibili/weekly', require('./routes/bilibili/weekly_recommend')); // bangumi router.get('/bangumi/calendar/today', require('./routes/bangumi/calendar/today')); diff --git a/lib/routes/bilibili/weekly_recommend.js b/lib/routes/bilibili/weekly_recommend.js new file mode 100644 index 0000000000..029c2ff447 --- /dev/null +++ b/lib/routes/bilibili/weekly_recommend.js @@ -0,0 +1,36 @@ +const got = require('@/utils/got'); +const utils = require('./utils'); + +module.exports = async (ctx) => { + const disableEmbed = ctx.params.disableEmbed; + + const status_response = await got({ + method: 'get', + url: 'https://app.bilibili.com/x/v2/show/popular/selected/series?type=weekly_selected', + headers: { + Referer: 'https://www.bilibili.com/h5/weekly-recommend', + }, + }); + const weekly_number = status_response.data.data[0].number; + const weekly_name = status_response.data.data[0].name; + + const response = await got({ + method: 'get', + url: `https://app.bilibili.com/x/v2/show/popular/selected?type=weekly_selected&number=${weekly_number}`, + headers: { + Referer: `https://www.bilibili.com/h5/weekly-recommend?num=${weekly_number}&navhide=1`, + }, + }); + const data = response.data.data.list; + + ctx.state.data = { + title: 'B站每周必看', + link: 'https://www.bilibili.com/h5/weekly-recommend', + description: 'B站每周必看', + item: data.map((item) => ({ + title: item.title, + description: `${weekly_name} ${item.title}
${item.rcmd_reason}
${!disableEmbed ? `${utils.iframe(item.param)}` : ''}`, + link: `https://www.bilibili.com/video/av${item.param}`, + })), + }; +};