From b63d42a7ddbdd5fe8b2c303378a126b503898437 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Sun, 8 Sep 2019 13:48:21 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20Instagram=20?= =?UTF-8?q?=E5=BF=AB=E6=8B=8D=20Stories=20(#3018)?= 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/instagram/story.js | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 lib/routes/instagram/story.js diff --git a/docs/social-media.md b/docs/social-media.md index 8dac72da8..82c547688 100644 --- a/docs/social-media.md +++ b/docs/social-media.md @@ -284,6 +284,10 @@ pageClass: routes +### 快拍 Stories + + + ## Matters ### 最新排序 diff --git a/lib/router.js b/lib/router.js index 3e45033a5..28bc6170c 100644 --- a/lib/router.js +++ b/lib/router.js @@ -172,6 +172,7 @@ router.get('/twitter/followings/:id', require('./routes/twitter/followings')); // Instagram router.get('/instagram/user/:id', require('./routes/instagram/user')); router.get('/instagram/tag/:tag', require('./routes/instagram/tag')); +router.get('/instagram/story/:username', require('./routes/instagram/story')); // Youtube router.get('/youtube/user/:username/:embed?', require('./routes/youtube/user')); diff --git a/lib/routes/instagram/story.js b/lib/routes/instagram/story.js new file mode 100644 index 000000000..5095f3f17 --- /dev/null +++ b/lib/routes/instagram/story.js @@ -0,0 +1,34 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const username = ctx.params.username; + + const response = (await got({ + method: 'get', + url: `https://api.storiesig.com/stories/${username}`, + headers: { + Referer: `https://storiesig.com/?username=${username}`, + }, + })).data; + + const items = response.items.map((item) => { + const image = item.image_versions2 && item.image_versions2.candidates[0].url; + const video = item.video_versions && item.video_versions[0].url; + + const description = item.video_versions ? `` : ``; + const pubDate = new Date(item.taken_at * 1000).toUTCString(); + + return { + title: `[快拍/Stories]${item.caption || ''} ${pubDate}`, + description, + pubDate, + link: `https://www.instagram.com/stories/${username}/${item.id}`, + }; + }); + + ctx.state.data = { + title: `${response.user.full_name}'s stories on Instagram`, + link: `https://www.instagram.com/stories/${username}/`, + item: items, + }; +};