diff --git a/docs/new-media.md b/docs/new-media.md index e9e4ac2c1e..bc00bc3bd4 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -515,6 +515,10 @@ Supported sub-sites: +### 櫻坂 46 博客 + + + ### 日向坂 46 新闻 diff --git a/lib/router.js b/lib/router.js index b7cab82c4a..ffcbafd212 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1934,6 +1934,7 @@ router.get('/keyakizaka46/news', require('./routes/keyakizaka46/news')); router.get('/hinatazaka46/news', require('./routes/hinatazaka46/news')); router.get('/keyakizaka46/blog', require('./routes/keyakizaka46/blog')); router.get('/hinatazaka46/blog', require('./routes/hinatazaka46/blog')); +router.get('/sakurazaka46/blog', require('./routes/sakurazaka46/blog')); // 酷安 router.get('/coolapk/tuwen', require('./routes/coolapk/tuwen')); diff --git a/lib/routes/sakurazaka46/blog.js b/lib/routes/sakurazaka46/blog.js new file mode 100644 index 0000000000..5ebfdb2db5 --- /dev/null +++ b/lib/routes/sakurazaka46/blog.js @@ -0,0 +1,38 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const response = await got({ + method: 'get', + url: 'https://sakurazaka46.com/s/s46/diary/blog', + headers: { + Referer: 'https://sakurazaka46.com/', + }, + }); + + const data = response.data; + const $ = cheerio.load(data); + const list = $('ul.com-blog-part li'); + let itemPicUrl; + + ctx.state.data = { + allowEmpty: true, + title: '櫻坂46 公式ブログ', + link: 'https://sakurazaka46.com/s/s46/diary/blog', + item: + list && + list + .map((index, item) => { + item = $(item); + itemPicUrl = `${item.find('div.wrap-bg span.img').attr('style')}`.replace('background-image: url(', '').replace(');', ''); + return { + title: item.find('div.date-title h3.title').text().trim(), + link: item.find('a').first().attr('href'), + pubDate: item.find('div.date-title p.date').text(), + author: item.find('div.prof-in p.name').text().trim(), + description: ``, + }; + }) + .get(), + }; +};