diff --git a/docs/new-media.md b/docs/new-media.md index c9a65c8d9..dca52585c 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -224,6 +224,20 @@ pageClass: routes +## 坂道系列官网新闻 + +### 乃木坂 46 + + + +### 欅坂 46 + + + +### 日向坂 46 + + + ## 币世界 ### 快讯 @@ -514,12 +528,6 @@ pageClass: routes -## 乃木坂 46 官网 - -### 新闻 - - - ## 派代 ### 首页 diff --git a/lib/router.js b/lib/router.js index 8e5b9d4f1..82c4d4e3b 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1687,8 +1687,10 @@ 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')); -// 乃木坂46官网 +// 坂道系列官网新闻 router.get('/nogizaka46/news', require('./routes/nogizaka46/news')); +router.get('/keyakizaka46/news', require('./routes/keyakizaka46/news')); +router.get('/hinatazaka46/news', require('./routes/hinatazaka46/news')); // 阿里云 router.get('/aliyun/database_month', require('./routes/aliyun/database_month')); diff --git a/lib/routes/hinatazaka46/news.js b/lib/routes/hinatazaka46/news.js new file mode 100644 index 000000000..d058c7cbb --- /dev/null +++ b/lib/routes/hinatazaka46/news.js @@ -0,0 +1,40 @@ +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/news/list', + headers: { + Referer: 'http://www.hinatazaka46.com/', + }, + }); + + const data = response.data; + const $ = cheerio.load(data); + const list = $('main div.l-maincontents--news ul.p-news__list li'); + + ctx.state.data = { + allowEmpty: true, + title: '日向坂46官网 NEWS', + link: 'http://www.hinatazaka46.com/news/', + item: + list && + list + .map((index, item) => { + item = $(item); + return { + title: item + .find('a p.c-news__text') + .first() + .text(), + link: item.find('a').attr('href'), + pubDate: item + .find('a time.c-news__date') + .first() + .text(), + }; + }) + .get(), + }; +}; diff --git a/lib/routes/keyakizaka46/news.js b/lib/routes/keyakizaka46/news.js new file mode 100644 index 000000000..8e2aad92a --- /dev/null +++ b/lib/routes/keyakizaka46/news.js @@ -0,0 +1,40 @@ +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/news/list', + headers: { + Referer: 'http://www.keyakizaka46.com/', + }, + }); + + const data = response.data; + const $ = cheerio.load(data); + const list = $('div.keyaki-news div.box-news ul li'); + + ctx.state.data = { + allowEmpty: true, + title: '欅坂46官网 NEWS', + link: 'http://www.keyakizaka46.com/news/', + item: + list && + list + .map((index, item) => { + item = $(item); + return { + title: item + .find('div.text a') + .first() + .text(), + link: item.find('div.text a').attr('href'), + pubDate: item + .find('div.date') + .first() + .text(), + }; + }) + .get(), + }; +};