diff --git a/lib/router.js b/lib/router.js index 3a2080b478..d2950d08ec 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1005,7 +1005,7 @@ router.get('/avgle/videos/:order?/:time?/:top?', lazyloadRouteHandler('./routes/ router.get('/avgle/search/:keyword/:order?/:time?/:top?', lazyloadRouteHandler('./routes/avgle/videos.js')); // 公主链接公告 -router.get('/pcr/news', lazyloadRouteHandler('./routes/pcr/news')); +// router.get('/pcr/news', lazyloadRouteHandler('./routes/pcr/news')); router.get('/pcr/news-tw', lazyloadRouteHandler('./routes/pcr/news-tw')); router.get('/pcr/news-cn', lazyloadRouteHandler('./routes/pcr/news-cn')); diff --git a/lib/routes/pcr/news.js b/lib/routes/pcr/news.js deleted file mode 100644 index 0869ed4208..0000000000 --- a/lib/routes/pcr/news.js +++ /dev/null @@ -1,31 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); - -module.exports = async (ctx) => { - const response = await got({ - method: 'get', - url: 'https://priconne-redive.jp/news/', - }); - const data = response.data; - const $ = cheerio.load(data); - const list = $('.article_box'); - let itemPicUrl; - ctx.state.data = { - title: '公主链接日服-新闻', - link: 'https://priconne-redive.jp/news/', - item: - list && - list - .map((index, item) => { - item = $(item); - itemPicUrl = item.find('img.attachment-news-thumbnail').attr('src'); - return { - title: item.find('h4').text(), - description: `${item.find('.description p').text()}
`, - link: item.find('a').first().attr('href'), - pubDate: item.find('.time').text(), - }; - }) - .get(), - }; -}; diff --git a/lib/v2/priconne-redive/maintainer.js b/lib/v2/priconne-redive/maintainer.js new file mode 100644 index 0000000000..884bdbf8de --- /dev/null +++ b/lib/v2/priconne-redive/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/news': ['SayaSS'], +}; diff --git a/lib/v2/priconne-redive/news.js b/lib/v2/priconne-redive/news.js new file mode 100644 index 0000000000..ee2c5901e4 --- /dev/null +++ b/lib/v2/priconne-redive/news.js @@ -0,0 +1,54 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const parseContent = (htmlString) => { + const $ = cheerio.load(htmlString); + + $('.contents-body h3').remove(); + const time = $('.meta-info .time').text().trim(); + $('.meta-info').remove(); + const content = $('.contents-body'); + + return { + description: content.html(), + pubDate: new Date(time), + }; + }; + + const response = await got({ + method: 'get', + url: 'https://priconne-redive.jp/news/', + }); + const data = response.data; + const $ = cheerio.load(data); + const list = $('.article_box'); + + const out = await Promise.all( + list.map((index, item) => { + item = $(item); + const link = item.find('a').first().attr('href'); + return ctx.cache.tryGet(link, async () => { + const rssitem = { + title: item.find('h4').text(), + link, + }; + + const response = await got(link); + const result = parseContent(response.data); + + rssitem.description = result.description; + rssitem.pubDate = result.pubDate; + + return rssitem; + }); + }) + ); + + ctx.state.data = { + title: '公主链接日服-新闻', + link: 'https://priconne-redive.jp/news/', + language: 'ja', + item: out, + }; +}; diff --git a/lib/v2/priconne-redive/radar.js b/lib/v2/priconne-redive/radar.js new file mode 100644 index 0000000000..cbf29d37f6 --- /dev/null +++ b/lib/v2/priconne-redive/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'priconne-redive.jp': { + _name: 'プリンセスコネクト!Re:Dive', + '.': [ + { + title: 'News', + docs: 'https://docs.rsshub.app/routes/game#princess-connect-re-dive-%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%EF%BC%81re-dive', + source: ['/news'], + target: '/priconne-redive/news', + }, + ], + }, +}; diff --git a/lib/v2/priconne-redive/router.js b/lib/v2/priconne-redive/router.js new file mode 100644 index 0000000000..630036b8e4 --- /dev/null +++ b/lib/v2/priconne-redive/router.js @@ -0,0 +1,3 @@ +module.exports = (router) => { + router.get('/news', require('./news')); +}; diff --git a/website/docs/routes/game.mdx b/website/docs/routes/game.mdx index 272623e799..5a93f2f29e 100644 --- a/website/docs/routes/game.mdx +++ b/website/docs/routes/game.mdx @@ -447,13 +447,27 @@ -## psnine {#psnine} +## PRINCESS CONNECT! Re Dive プリンセスコネクト!Re Dive {#princess-connect-re-dive-%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%EF%BC%81re-dive} -### 首页 - 白金攻略 / 游戏开箱 {#psnine-shou-ye-bai-jin-gong-lve-you-xi-kai-xiang} +### 日服公告 {#princess-connect-re-dive-%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%EF%BC%81re-dive-ri-fu-gong-gao} + + + +### 台服公告 {#princess-connect-re-dive-%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%EF%BC%81re-dive-tai-fu-gong-gao} + + + +### 国服公告 {#princess-connect-re-dive-%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BB%E3%82%B9%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%EF%BC%81re-dive-guo-fu-gong-gao} + + + +## PSN 中文站 {#psn-zhong-wen-zhan} + +### 首页 - 白金攻略 / 游戏开箱 {#psn-zhong-wen-zhan-shou-ye-bai-jin-gong-lve-you-xi-kai-xiang} -### 节点 {#psnine-jie-dian} +### 节点 {#psn-zhong-wen-zhan-jie-dian} | 站务 | 活动 | 旅记 | 折扣 | 会免 | @@ -473,15 +487,15 @@ | famitsu | ign | ucg | -### 数折 - 折扣信息推送 {#psnine-shu-zhe-zhe-kou-xin-xi-tui-song} +### 数折 - 折扣信息推送 {#psn-zhong-wen-zhan-shu-zhe-zhe-kou-xin-xi-tui-song} -### 闲游 - 二手盘信息 {#psnine-xian-you-er-shou-pan-xin-xi} +### 闲游 - 二手盘信息 {#psn-zhong-wen-zhan-xian-you-er-shou-pan-xin-xi} -### 游戏 - 新游戏奖杯信息 {#psnine-you-xi-xin-you-xi-jiang-bei-xin-xi} +### 游戏 - 新游戏奖杯信息 {#psn-zhong-wen-zhan-you-xi-xin-you-xi-jiang-bei-xin-xi} @@ -640,20 +654,6 @@ Due to the regional restrictions, an RSSHub deployment in China Mainland may not -## 公主链接 {#gong-zhu-lian-jie} - -### 日服公告 {#gong-zhu-lian-jie-ri-fu-gong-gao} - - - -### 台服公告 {#gong-zhu-lian-jie-tai-fu-gong-gao} - - - -### 国服公告 {#gong-zhu-lian-jie-guo-fu-gong-gao} - - - ## 怪物猎人世界 {#guai-wu-lie-ren-shi-jie} ### 更新情报 {#guai-wu-lie-ren-shi-jie-geng-xin-qing-bao}