Added CzechAV.
This commit is contained in:
77
src/scrapers/czechav.js
Normal file
77
src/scrapers/czechav.js
Normal file
@@ -0,0 +1,77 @@
|
||||
'use strict';
|
||||
|
||||
const qu = require('../utils/q');
|
||||
|
||||
function scrapeAll(scenes, channel) {
|
||||
return scenes.map(({ query }) => {
|
||||
const release = {};
|
||||
|
||||
release.url = query.url('a', 'href', { origin: channel.url });
|
||||
release.entryId = new URL(release.url).pathname.match(/\/tour\/preview\/(.+)/)[1];
|
||||
|
||||
release.title = query.cnt('.nice-title');
|
||||
|
||||
release.poster = query.img('img.poster');
|
||||
release.photos = query.q('img.poster', 'data-urls').split(' ');
|
||||
|
||||
if (query.exists('.info')) {
|
||||
release.date = query.date('.updated', 'MM/DD/YYYY');
|
||||
|
||||
release.actors = [{
|
||||
name: query.cnt('.name'),
|
||||
age: query.cnt('.age'),
|
||||
}];
|
||||
|
||||
release.tags = query.cnts('.tags a');
|
||||
}
|
||||
|
||||
return release;
|
||||
});
|
||||
}
|
||||
|
||||
function scrapeScene({ query }, url) {
|
||||
const release = {};
|
||||
|
||||
release.entryId = new URL(url).pathname.match(/\/tour\/preview\/(.+)/)[1];
|
||||
|
||||
release.title = query.cnt('.nice-title');
|
||||
release.description = query.cnt('.desc-text p');
|
||||
|
||||
release.tags = query.cnts('.tags a');
|
||||
|
||||
release.poster = query.poster();
|
||||
release.photos = query.imgs('.thumbnails img, .thumb img');
|
||||
|
||||
// some videos may not have unique trailers, but many do
|
||||
release.trailer = query.video();
|
||||
|
||||
release.formats = query.cnts('.download-quality option');
|
||||
|
||||
return release;
|
||||
}
|
||||
|
||||
async function fetchLatest(channel, page = 1) {
|
||||
const url = `${channel.url}/tour/videos/page-${page}`;
|
||||
const res = await qu.getAll(url, '.episode-list .episode, .content .girl');
|
||||
|
||||
if (res.ok) {
|
||||
return scrapeAll(res.items, channel);
|
||||
}
|
||||
|
||||
return res.status;
|
||||
}
|
||||
|
||||
async function fetchScene(url, channel) {
|
||||
const res = await qu.get(url);
|
||||
|
||||
if (res.ok) {
|
||||
return scrapeScene(res.item, url, channel);
|
||||
}
|
||||
|
||||
return res.status;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
fetchLatest,
|
||||
fetchScene,
|
||||
};
|
||||
@@ -183,8 +183,6 @@ async function scrapeProfile({ query }, url, channel, include) {
|
||||
}
|
||||
}
|
||||
|
||||
console.log(profile);
|
||||
|
||||
return profile;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ const bangbros = require('./bangbros');
|
||||
const blowpass = require('./blowpass');
|
||||
const burningangel = require('./burningangel');
|
||||
const cherrypimps = require('./cherrypimps');
|
||||
const czechav = require('./czechav');
|
||||
const ddfnetwork = require('./ddfnetwork');
|
||||
const digitalplayground = require('./digitalplayground');
|
||||
const dogfart = require('./dogfart');
|
||||
@@ -93,6 +94,7 @@ module.exports = {
|
||||
brazzers: mindgeek,
|
||||
burningangel,
|
||||
cherrypimps,
|
||||
czechav,
|
||||
pornworld: ddfnetwork,
|
||||
digitalplayground,
|
||||
dogfart,
|
||||
|
||||
Reference in New Issue
Block a user