diff --git a/docs/game.md b/docs/game.md index c4b96ba5d8..d6e50c6ab3 100644 --- a/docs/game.md +++ b/docs/game.md @@ -177,6 +177,18 @@ Example: `https://store.steampowered.com/search/?specials=1&term=atelier` 中的 +## 游戏打折情报 + +### 游戏折扣 + + + +| Steam 最新折扣 | Steam 热门游戏折扣 | Steam 热门中文游戏折扣 | Steam 历史低价 | Steam 中文游戏历史低价 | +| -------------- | ------------------ | ---------------------- | -------------- | ---------------------- | +| new | hot | hot_chinese | low | low_chinese | + + + ## 游戏时光 ### 游戏时光新闻 diff --git a/lib/router.js b/lib/router.js index 7599b0cd61..a3b008d27f 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1374,4 +1374,7 @@ router.get('/cnbeta', require('./routes/cnbeta/home')); // Dilbert Comic Strip router.get('/dilbert/strip', require('./routes/dilbert/strip')); +// 游戏打折情报 +router.get('/yxdzqb/:type', require('./routes/yxdzqb')); + module.exports = router; diff --git a/lib/routes/yxdzqb/index.js b/lib/routes/yxdzqb/index.js new file mode 100644 index 0000000000..75897547d1 --- /dev/null +++ b/lib/routes/yxdzqb/index.js @@ -0,0 +1,49 @@ +const got = require('@/utils/got'); +const url = require('url'); +const cheerio = require('cheerio'); + +const host = 'https://www.yxdzqb.com'; + +const map = { + new: 'index_r.html', + hot: 'index1.html', + hot_chinese: 'index_1c.html', + low: 'index2.html', + low_chinese: 'index_2c.html', +}; + +module.exports = async (ctx) => { + const type = ctx.params.type; + + const link = url.resolve(host, map[type]); + const response = await got.get(link); + + const $ = cheerio.load(response.data); + const title = $('.btn-primary b').text() || $('.btn-danger b').text() || $('.btn-info b').text(); + const list = $('tr.bg-none'); + + const out = list + .map((index, item) => { + item = $(item); + + const title = item.find('div table:nth-child(1) tr td:nth-child(1)').text(); + const description = ` tbody > tr > td:nth-child(1) > img').attr('src')}>` + item.find('div.collapse').html(); + const link = item.find('div.collapse table.cell_tabs > tbody > tr > td:nth-child(1) > a').attr('href'); + const guid = link + item.find('div.cell_price span:nth-child(2)').text(); + + const single = { + title, + description, + link, + guid, + }; + return single; + }) + .get(); + + ctx.state.data = { + title: `${title}-游戏打折情报`, + link: link, + item: out, + }; +};