From 515775401dbbc41d28a71d326ef16d6dc9dee2f3 Mon Sep 17 00:00:00 2001 From: hoilc Date: Thu, 10 Oct 2019 11:42:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=93=94=E5=93=A9?= =?UTF-8?q?=E5=93=94=E5=93=A9=E4=B8=93=E6=A0=8F=E6=96=87=E9=9B=86=20(#3218?= =?UTF-8?q?)?= 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/readlist.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 lib/routes/bilibili/readlist.js diff --git a/docs/social-media.md b/docs/social-media.md index 914cf8e39..47340ead3 100644 --- a/docs/social-media.md +++ b/docs/social-media.md @@ -238,6 +238,10 @@ pageClass: routes +### 专栏文集 + + + ## Disqus ### 评论 diff --git a/lib/router.js b/lib/router.js index 6bbfb7dd6..18812f588 100644 --- a/lib/router.js +++ b/lib/router.js @@ -41,6 +41,7 @@ router.get('/bilibili/audio/:id', require('./routes/bilibili/audio')); router.get('/bilibili/vsearch/:kw/:order?', require('./routes/bilibili/vsearch')); router.get('/bilibili/followings/video/:uid', 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')); // bangumi router.get('/bangumi/calendar/today', require('./routes/bangumi/calendar/today')); diff --git a/lib/routes/bilibili/readlist.js b/lib/routes/bilibili/readlist.js new file mode 100644 index 000000000..382133ef2 --- /dev/null +++ b/lib/routes/bilibili/readlist.js @@ -0,0 +1,31 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const listid = ctx.params.listid; + const listurl = `https://www.bilibili.com/read/readlist/${listid}`; + + const response = await got({ + method: 'get', + url: `https://api.bilibili.com/x/article/list/web/articles?id=${listid}&jsonp=jsonp`, + headers: { + Referer: listurl, + }, + }); + const data = response.data.data; + + ctx.state.data = { + title: `bilibili 专栏文集 - ${data.list.name}`, + link: `https://www.bilibili.com/read/readlist/${listid}`, + image: data.list.image_url, + description: data.list.summary ? data.list.summary : '作者很懒,还木有写简介.....((/- -)/', + item: + data.articles && + data.articles.map((item) => ({ + title: item.title, + author: data.author.name, + description: `${item.summary}…
`, + pubDate: new Date(item.publish_time * 1000).toUTCString(), + link: listurl, + })), + }; +};