diff --git a/docs/new-media.md b/docs/new-media.md index 9a6558b6a..cb81a7477 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -256,6 +256,12 @@ Tag +## iDaily 每日环球视野 + +### 今日 Timeline + + + ## iDownloadBlog ### blog diff --git a/lib/router.js b/lib/router.js index f4927d656..ae1c42581 100644 --- a/lib/router.js +++ b/lib/router.js @@ -3733,6 +3733,9 @@ router.get('/dayone/blog', require('./routes/dayone/blog')); // 滴答清单 router.get('/dida365/habit/checkins', require('./routes/dida365/habit-checkins')); +// iDaily 每日环球视野 +router.get('/idaily/today', require('./routes/idaily/index')); + // 北屋 router.get('/northhouse/:category?', require('./routes/northhouse/index')); diff --git a/lib/routes/idaily/index.js b/lib/routes/idaily/index.js new file mode 100644 index 000000000..3205f932a --- /dev/null +++ b/lib/routes/idaily/index.js @@ -0,0 +1,28 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const response = await got({ + method: 'get', + url: 'http://idaily-cdn.idailycdn.com/api/list/v3/iphone/zh-hans?page=1&ver=iphone', + }); + + const data = response.data; + + let dataToday = data.filter((item) => item.pubdate_timestamp * 1000 >= new Date().getTime() - 86400000); + + // leverage yesterday's items if today's not published yet + if (dataToday.length === 0) { + dataToday = data.filter((item) => item.pubdate_timestamp * 1000 >= new Date().getTime() - 86400000 * 2); + } + + ctx.state.data = { + title: `iDaily 每日环球视野`, + description: 'iDaily 每日环球视野', + item: dataToday.map((item) => ({ + title: item.ui_sets.caption_subtitle, + description: `
${item.content}`, + pubDate: new Date(item.pubdate_timestamp * 1000).toUTCString(), + link: item.link_share, + })), + }; +};