diff --git a/docs/new-media.md b/docs/new-media.md index e9c19449fc..cd416236ac 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -297,20 +297,28 @@ Supported sub-sites: -## 坂道系列官网新闻 +## 坂道系列官网资讯 -### 乃木坂 46 +### 乃木坂 46 新闻 -### 欅坂 46 +### 欅坂 46 新闻 -### 日向坂 46 +### 欅坂 46 博客 + + + +### 日向坂 46 新闻 +### 日向坂 46 博客 + + + ## 币世界 ### 快讯 diff --git a/lib/router.js b/lib/router.js index 1ac25e8fe5..de39315362 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1764,10 +1764,12 @@ router.get('/lkong/forum/:id/:digest?', require('./routes/lkong/forum')); router.get('/lkong/thread/:id', require('./routes/lkong/thread')); // router.get('/lkong/user/:id', require('./routes/lkong/user')); -// 坂道系列官网新闻 +// 坂道系列资讯 router.get('/nogizaka46/news', require('./routes/nogizaka46/news')); router.get('/keyakizaka46/news', require('./routes/keyakizaka46/news')); +router.get('/keyakizaka46/blog', require('./routes/keyakizaka46/blog')); router.get('/hinatazaka46/news', require('./routes/hinatazaka46/news')); +router.get('/hinatazaka46/blog', require('./routes/hinatazaka46/blog')); // 阿里云 router.get('/aliyun/database_month', require('./routes/aliyun/database_month')); diff --git a/lib/routes/hinatazaka46/blog.js b/lib/routes/hinatazaka46/blog.js new file mode 100644 index 0000000000..f7bde202da --- /dev/null +++ b/lib/routes/hinatazaka46/blog.js @@ -0,0 +1,47 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const response = await got({ + method: 'get', + url: 'https://www.hinatazaka46.com/s/official/diary/member', + headers: { + Referer: 'http://www.hinatazaka46.com/', + }, + }); + + const data = response.data; + const $ = cheerio.load(data); + const list = $('div.p-blog-top__contents ul li'); + let itemPicUrl; + + ctx.state.data = { + allowEmpty: true, + title: '日向坂46官网 博客', + link: 'https://www.hinatazaka46.com/s/official/diary/member', + item: + list && + list + .map((index, item) => { + item = $(item); + itemPicUrl = `${item.find('div.c-blog__image').attr('style')}`.replace('background-image:url(', '').replace(');', ''); + return { + title: item + .find('p.c-blog-top__title') + .text() + .trim(), + link: item + .find('a') + .first() + .attr('href'), + pubDate: item.find('time.c-blog-top__date').text(), + author: item + .find('div.c-blog-top__name') + .text() + .trim(), + description: ``, + }; + }) + .get(), + }; +}; diff --git a/lib/routes/keyakizaka46/blog.js b/lib/routes/keyakizaka46/blog.js new file mode 100644 index 0000000000..13763cd855 --- /dev/null +++ b/lib/routes/keyakizaka46/blog.js @@ -0,0 +1,48 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const response = await got({ + method: 'get', + url: 'https://www.keyakizaka46.com/s/k46o/diary/member', + headers: { + Referer: 'http://www.keyakizaka46.com/', + }, + }); + + const data = response.data; + const $ = cheerio.load(data); + const list = $('div.box-newposts div.slider ul li'); + let itemPicUrl; + + ctx.state.data = { + allowEmpty: true, + title: '欅坂46官网 博客', + link: 'https://www.keyakizaka46.com/s/k46o/diary/member', + item: + list && + list + .map((index, item) => { + item = $(item); + itemPicUrl = `${item.find('img.js-replaceImage').attr('src')}`; + return { + title: item + .find('p.ttl') + .text() + .trim(), + link: item + .find('a') + .first() + .attr('href'), + pubDate: item.find('div.box-blog time').text(), + author: item + .find('p.ttl') + .next() + .text() + .trim(), + description: ``, + }; + }) + .get(), + }; +};