RSSHub/lib/v2/8kcos/cat.js

23 lines
866 B
JavaScript

const got = require('@/utils/got');
const Cheerio = require('cheerio');
const { SUB_NAME_PREFIX, SUB_URL } = require('./const');
const loadArticle = require('./article');
module.exports = async (ctx) => {
const limit = parseInt(ctx.query.limit);
const { cat = '8kasianidol' } = ctx.params;
const url = `${SUB_URL}category/${cat}/`;
const resp = await got(url);
const $ = Cheerio.load(resp.body);
const itemRaw = $('li.item').toArray();
ctx.state.data = {
title: `${SUB_NAME_PREFIX}-${$('span[property=name]:not(.hide)').text()}`,
link: url,
item: await Promise.all(
(limit ? itemRaw.slice(0, limit) : itemRaw).map((e) => {
const { href } = Cheerio.load(e)('h2 > a')[0].attribs;
return ctx.cache.tryGet(href, () => loadArticle(href));
})
),
};
};