diff --git a/assets/radar-rules.js b/assets/radar-rules.js index 938aee0242..ebc8bb4bde 100644 --- a/assets/radar-rules.js +++ b/assets/radar-rules.js @@ -1077,4 +1077,34 @@ }, ], }, + 'ddrk.me': { + _name: '低端影视', + www: [ + { + title: '首页', + docs: 'https://docs.rsshub.app/multimedia.html#di-duan-ying-shi', + source: '/', + target: '/ddrk/index', + }, + { + title: '标签', + docs: 'https://docs.rsshub.app/multimedia.html#di-duan-ying-shi', + source: '/tag/:tag', + target: '/ddrk/tag/:tag', + }, + { + title: '分类', + docs: 'https://docs.rsshub.app/multimedia.html#di-duan-ying-shi', + source: ['/category/:category', '/category/:uplevel/:category'], + target: '/ddrk/category/:category', + }, + { + title: '影视剧集更新', + docs: 'https://docs.rsshub.app/multimedia.html#di-duan-ying-shi', + source: ['/:name', '/:name/:season'], + target: (params) => `/ddrk/update/${params.name}${params.season ? '/' + params.season : ''}`, + verification: (params) => params.name !== 'category' && params.name !== 'tag' && params.name !== 'ddrklogin' && params.name !== 'about' && params.name !== 'deleted', + }, + ], + }, }); diff --git a/docs/multimedia.md b/docs/multimedia.md index 04aae8c46d..b07fe448e3 100644 --- a/docs/multimedia.md +++ b/docs/multimedia.md @@ -295,9 +295,21 @@ pageClass: routes ## 低端影视 -### 影视剧集 +### 影视剧集更新 - + + +### 首页 + + + +### 分类 + + + +### 标签 + + ## 电影首发站 diff --git a/lib/router.js b/lib/router.js index 21a424b73d..93462e4bd7 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2113,7 +2113,10 @@ router.get('/yahoo-news/:region/:category?', require('./routes/yahoo-news/index' router.get('/baijing', require('./routes/baijing')); // 低端影视 -router.get('/ddrk/:name/:season?', require('./routes/ddrk/index')); +router.get('/ddrk/update/:name/:season?', require('./routes/ddrk/index')); +router.get('/ddrk/tag/:tag', require('./routes/ddrk/list')); +router.get('/ddrk/category/:category', require('./routes/ddrk/list')); +router.get('/ddrk/index', require('./routes/ddrk/list')); // 公主链接日服公告 router.get('/pcr/news', require('./routes/pcr/news')); diff --git a/lib/routes/ddrk/list.js b/lib/routes/ddrk/list.js new file mode 100644 index 0000000000..b8dce5aa34 --- /dev/null +++ b/lib/routes/ddrk/list.js @@ -0,0 +1,37 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const md5 = require('@/utils/md5'); + +module.exports = async (ctx) => { + const url = ctx.params.tag ? `https://ddrk.me/tag/${encodeURIComponent(ctx.params.tag)}/` : ctx.params.category ? `https://ddrk.me/category/${ctx.params.category}/` : 'https://ddrk.me/'; + + const response = await got(url); + const $ = cheerio.load(response.data); + + const title = $('title').html(); + const list = $('.post-box-list .post-box-container').toArray(); + + ctx.state.data = { + title: title, + link: url, + item: list.map((single, index) => { + const item = $(single); + const name = item.find('.post-box-title').text(); + const poster = item + .find('.post-box-image') + .attr('style') + .match(/url\((.*?)\)/)[1]; + const text = item.find('.post-box-text p').html(); + const time = new Date(); + time.setMinutes(time.getMinutes() - index); + return { + title: name, + author: '低端影视', + description: `${text ? text : ''}`, + link: item.find('.post-box-title a').attr('href'), + pubDate: time, + guid: md5(name), + }; + }), + }; +};