diff --git a/docs/anime.md b/docs/anime.md index 789c6e45f1..e89d871e22 100644 --- a/docs/anime.md +++ b/docs/anime.md @@ -248,6 +248,12 @@ pageClass: routes +## 风之动漫 + +### 风之动漫 + + + ## 海猫吧 ### 漫画更新 @@ -266,6 +272,12 @@ pageClass: routes +## 漫画堆 + +### 漫画 + + + ## 三界异次元 ### 三界异次元 diff --git a/lib/router.js b/lib/router.js index 57ebe51078..a518b0bcf1 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2736,6 +2736,12 @@ router.get('/initium/:type?/:language?', require('./routes/initium/full')); // Grub Street router.get('/grubstreet', require('./routes/grubstreet/index')); +// 漫画堆 +router.get('/manhuadui/manhua/:name/:serial?', require('./routes/manhuadui/manhua')); + +// 风之漫画 +router.get('/fzdm/manhua/:id', require('./routes/fzdm/manhua')); + // Aljazeera 半岛网 router.get('/aljazeera/news', require('./routes/aljazeera/news')); diff --git a/lib/routes/fzdm/manhua.js b/lib/routes/fzdm/manhua.js new file mode 100644 index 0000000000..8d47d5fe83 --- /dev/null +++ b/lib/routes/fzdm/manhua.js @@ -0,0 +1,28 @@ +const got = require('@/utils/got'); +const host = 'https://manhua.fzdm.com'; +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const id = ctx.params.id; + const comicPage = host + `/${id}/`; + const response = await got({ + method: 'get', + url: comicPage, + }); + const data = response.data; + const $ = cheerio.load(data); + const list = $('div#content > li > a'); + const comicTitle = $('div#content > img').attr('alt').replace(/漫画/, ''); + ctx.state.data = { + title: '风之动漫 - ' + comicTitle, + link: comicPage, + description: '风之动漫', + item: list + .map((i, item) => ({ + title: $(item).text().trim(), + description: $(item).text().trim(), + link: comicPage + $(item).attr('href'), + })) + .get(), + }; +}; diff --git a/lib/routes/manhuadui/manhua.js b/lib/routes/manhuadui/manhua.js new file mode 100644 index 0000000000..367bde5da4 --- /dev/null +++ b/lib/routes/manhuadui/manhua.js @@ -0,0 +1,36 @@ +const got = require('@/utils/got'); +const host = 'https://www.manhuadui.com'; +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const name = ctx.params.name; + const serial = parseInt(ctx.params.serial); + const comicPage = host + `/manhua/${name}/`; + const response = await got({ + method: 'get', + url: comicPage, + }); + const data = response.data; + const $ = cheerio.load(data); + const contentLength = $('div.zj_list_con').length; + const comicTitle = $('div.comic_deCon > h1').text().trim(); + const comicDescription = $('p.comic_deCon_d').text().trim(); + let list = $('div.zj_list_con') + .eq(serial - 1) + .find('ul > li > a'); + if (isNaN(serial) || serial <= 0 || contentLength < serial) { + list = $('div.zj_list_con > ul > li > a'); + } + ctx.state.data = { + title: '漫画堆 - ' + comicTitle, + link: comicPage, + description: comicDescription, + item: list + .map((i, item) => ({ + title: $(item).attr('title').trim(), + description: $(item).attr('title').trim(), + link: host + $(item).attr('href'), + })) + .get(), + }; +};