feat: add javlibrary all related (#3892)

This commit is contained in:
junfengP
2020-02-05 17:26:54 +08:00
committed by GitHub
parent f6baa8d2cc
commit 72a36bc289
8 changed files with 75 additions and 16 deletions

View File

@@ -0,0 +1,39 @@
const url = require('url');
const cheerio = require('cheerio');
const cloudscraper = require('cloudscraper');
// 通过传入不同的ctx.state.data.link 返回javlibrary 不同link的rss
module.exports = async function template(ctx) {
const link = ctx.state.data.link;
const response = await cloudscraper.get(link);
const $ = cheerio.load(response);
const list = $('.videothumblist .video').get();
const items = await Promise.all(
list.map(async (item) => {
item = $(item);
const itemLink = url.resolve(link, item.find('a').attr('href'));
const simple = {
title: `[${item.find('.id').text()}]${item.find('.title').text()}`,
link: itemLink,
};
const details = await ctx.cache.tryGet(itemLink, async () => {
const response = await cloudscraper.get(itemLink);
const $ = cheerio.load(response);
$('#video_info #video_review .icon').remove();
return {
author: $('.star').text(),
description: `<img src="${$('#video_jacket_img').attr('src')}"><br>${$('#video_info').html()}`,
};
});
return Promise.resolve(Object.assign({}, simple, details));
})
);
ctx.state.data = {
title: `Javlibrary - ${$('.boxtitle').text()}`,
link: link,
item: items,
};
};