diff --git a/docs/multimedia.md b/docs/multimedia.md index 46f1db237..3eb1b6bc7 100644 --- a/docs/multimedia.md +++ b/docs/multimedia.md @@ -411,6 +411,16 @@ pageClass: routes +## Prestige 蚊香社 + +### 系列作品 + + + +| 人气 | 最新 | 发售日期 | 标题顺序 | 价格升序 | 价格降序 | +| ------- | ---- | -------- | -------- | -------- | -------- | +| popular | near | date | title | low | high | + ## rs05 人生 05 电影 ### rs05 电影列表 diff --git a/lib/router.js b/lib/router.js index 496e3ac8c..775a9ed53 100644 --- a/lib/router.js +++ b/lib/router.js @@ -311,6 +311,9 @@ router.get('/pornhub/users/:username', require('./routes/pornhub/users')); router.get('/pornhub/model/:username/:sort?', require('./routes/pornhub/model')); router.get('/pornhub/pornstar/:username/:sort?', require('./routes/pornhub/pornstar')); +// Prestige +router.get('/prestige-av/series/:mid/:sort?', require('./routes/prestige-av/series')); + // yande.re router.get('/yande.re/post/popular_recent', require('./routes/yande.re/post_popular_recent')); router.get('/yande.re/post/popular_recent/:period', require('./routes/yande.re/post_popular_recent')); diff --git a/lib/routes/prestige-av/series.js b/lib/routes/prestige-av/series.js new file mode 100644 index 000000000..bd24135bc --- /dev/null +++ b/lib/routes/prestige-av/series.js @@ -0,0 +1,41 @@ +const cheerio = require('cheerio'); +const puppeteer = require('puppeteer'); + +module.exports = async (ctx) => { + const browser = await puppeteer.launch({ + args: ['--disable-dev-shm-usage'], + }); + + const id = ctx.params.mid; + const sort = ctx.params.sort || 'near'; + + const page = await browser.newPage(); + const link = `https://www.prestige-av.com/goods/goods_list.php?mode=series&mid=${id}&sort=${sort}`; + await page.goto(link); + await page.waitForSelector('.button_r18_prestige'); + await page.click('#AC'); + await page.waitForSelector('#body_goods'); + const html = await page.evaluate((window) => window.document.body.innerHTML); + + const $ = cheerio.load(html); + const list = $('div#body_goods li'); + + ctx.state.data = { + title: `【Prestige】${$('div[class=search_title_layout_01]').children('h1').first().text().replace('シリーズ ▶ ', '').replace(/\s*/g, '')}`, + link: `https://www.prestige-av.com/goods/goods_list.php?mode=series&mid=${id}&sort=${sort}`, + item: + list && + list + .map((index, item) => { + item = $(item); + return { + title: item.find('span.title').text().replace(/\s*/g, ''), + description: item.find('div.spec_layout').children('p').first().text().replace(/\s*/g, '') + '
' + ``, + link: item.find('a').attr('href'), + }; + }) + .get(), + }; + + browser.close(); +};