diff --git a/lib/routes/rsshub/rss.js b/lib/routes/rsshub/rss.js index a91fb901d..979a868d2 100644 --- a/lib/routes/rsshub/rss.js +++ b/lib/routes/rsshub/rss.js @@ -2,28 +2,36 @@ const axios = require('../../utils/axios'); const cheerio = require('cheerio'); module.exports = async (ctx) => { - const response = await axios({ - method: 'get', - url: 'https://docs.rsshub.app', + const types = ['social-media', 'programming', 'live', 'multimedia', 'picture', 'anime', 'program-update', 'university', 'traditional-media', 'forecast', 'travel', 'shopping', 'game', 'reading', 'government', 'other']; + const all = await Promise.all( + types.map(async (type) => { + const response = await axios({ + method: 'get', + url: `https://docs.rsshub.app/${type}.html`, + }); + + const data = response.data; + + const $ = cheerio.load(data); + const item = $('.routeBlock').get(); + return Promise.resolve(item); + }) + ); + let list = []; + all.forEach((item) => { + list = list.concat(item); }); - const data = response.data; - - const $ = cheerio.load(data); - const list = $('.routeBlock') - .get() - .reverse(); - ctx.state.data = { title: 'RSSHub 有新路由啦', link: 'https://docs.rsshub.app', description: '万物皆可 RSS', item: list && - list.map((item) => { - item = $(item); + list.reverse().map((item) => { + item = cheerio(item); item.find('.header-anchor').remove(); - const titleEle = item.prevAll('h3').eq(0); + const titleEle = item.prevAll('h2').eq(0); return { title: `${titleEle[0].attribs.id} - ${item .find('.name')