UNPKG

@rodrigogs/xvideos

Version:

xvideos.com api implementation.

46 lines (38 loc) 1.25 kB
const cheerio = require('cheerio'); const parseVideo = require('./parseVideo'); const createRefreshFunction = require('./createRefreshFunction'); const createHasNextFunction = require('./createHasNextFunction'); const createNextFunction = require('./createNextFunction'); const createHasPreviousFunction = require('./createHasPreviousFunction'); const createPreviousFunction = require('./createPreviousFunction'); const getVideos = ($) => { return $('#content > .mozaique > .thumb-block') .map((i, video) => parseVideo($, video)) .get(); }; const getPages = ($) => { return $('.pagination > ul > li > a') .map((i, page) => $(page) .text()) .filter((i, page) => !isNaN(page)) .map((i, page) => Number(page)) .get(); }; const parseResponse = (page, { data }) => { const $ = cheerio.load(data); const videos = getVideos($); const pagination = { page, pages: getPages($), }; return { videos, pagination, refresh: createRefreshFunction(pagination), hasNext: createHasNextFunction(pagination), next: createNextFunction(pagination), hasPrevious: createHasPreviousFunction(pagination), previous: createPreviousFunction(pagination), }; }; module.exports = parseResponse;