Added Cliff Media (Vanessa Cliff).
This commit is contained in:
parent
91574d2e5b
commit
8aeee8eea6
|
@ -2548,6 +2548,13 @@ const sites = [
|
||||||
extract: true,
|
extract: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
// CLIFF MEDIA / VANESSA CLIFF
|
||||||
|
{
|
||||||
|
name: 'Cliff Media',
|
||||||
|
slug: 'cliffmedia',
|
||||||
|
alias: ['vanessa cliff'],
|
||||||
|
url: 'https://www.vanessacliff.com',
|
||||||
|
},
|
||||||
// CZECHAV
|
// CZECHAV
|
||||||
{
|
{
|
||||||
name: 'Czech Streets',
|
name: 'Czech Streets',
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const unprint = require('unprint');
|
||||||
|
|
||||||
|
function scrapeAll(scenes) {
|
||||||
|
return scenes.map(({ query }) => {
|
||||||
|
const release = {};
|
||||||
|
|
||||||
|
release.url = query.url('.image-container a');
|
||||||
|
release.entryId = new URL(release.url).pathname.match(/\/video-preview\/(\w+)/)[1];
|
||||||
|
|
||||||
|
release.title = query.content('.caption-title');
|
||||||
|
|
||||||
|
release.poster = query.img('.image-container img');
|
||||||
|
|
||||||
|
return release;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrapeScene({ query }, { url }) {
|
||||||
|
const release = {};
|
||||||
|
|
||||||
|
release.entryId = new URL(url).pathname.match(/\/video-preview\/(\w+)/)[1];
|
||||||
|
|
||||||
|
release.title = query.content('#dm_content .dmNewParagraph[data-diy-text]');
|
||||||
|
|
||||||
|
release.poster = query.poster('#dm_content video');
|
||||||
|
release.trailer = query.video('#dm_content video source');
|
||||||
|
|
||||||
|
return release;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchScene(url) {
|
||||||
|
const res = await unprint.get(url, {
|
||||||
|
headers: {
|
||||||
|
Accept: '*/*', // seems to respond with JSON otherwise
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (res.ok) {
|
||||||
|
return scrapeScene(res.context, { url });
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchLatest(channel) {
|
||||||
|
const url = `${channel.url}/free-video`; // no pagination at this time
|
||||||
|
|
||||||
|
const res = await unprint.get(url, {
|
||||||
|
selectAll: '.gallery .photoGalleryThumbs',
|
||||||
|
headers: {
|
||||||
|
Accept: '*/*', // seems to respond with JSON otherwise
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (res.ok) {
|
||||||
|
return scrapeAll(res.context, channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
fetchLatest,
|
||||||
|
fetchScene,
|
||||||
|
};
|
|
@ -12,6 +12,7 @@ const bang = require('./bang');
|
||||||
const bangbros = require('./bangbros');
|
const bangbros = require('./bangbros');
|
||||||
const bradmontana = require('./bradmontana');
|
const bradmontana = require('./bradmontana');
|
||||||
const cherrypimps = require('./cherrypimps');
|
const cherrypimps = require('./cherrypimps');
|
||||||
|
const cliffmedia = require('./cliffmedia');
|
||||||
const cumlouder = require('./cumlouder');
|
const cumlouder = require('./cumlouder');
|
||||||
const czechav = require('./czechav');
|
const czechav = require('./czechav');
|
||||||
const ddfnetwork = require('./ddfnetwork');
|
const ddfnetwork = require('./ddfnetwork');
|
||||||
|
@ -96,6 +97,7 @@ const scrapers = {
|
||||||
bradmontana,
|
bradmontana,
|
||||||
brazzers: aylo,
|
brazzers: aylo,
|
||||||
cherrypimps,
|
cherrypimps,
|
||||||
|
cliffmedia,
|
||||||
cumlouder,
|
cumlouder,
|
||||||
czechav,
|
czechav,
|
||||||
pornworld: ddfnetwork,
|
pornworld: ddfnetwork,
|
||||||
|
|
|
@ -28,7 +28,7 @@ function scrapeAll(scenes) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function scrapeScene({ query }, url) {
|
function scrapeScene({ query }, { url }) {
|
||||||
const release = {};
|
const release = {};
|
||||||
|
|
||||||
release.entryId = new URL(url).pathname.match(/\/scene\/(\d+)/)[1];
|
release.entryId = new URL(url).pathname.match(/\/scene\/(\d+)/)[1];
|
||||||
|
@ -70,16 +70,6 @@ async function fetchLatest(channel, page = 1) {
|
||||||
return res.status;
|
return res.status;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchScene(url, channel) {
|
|
||||||
const res = await unprint.get(url);
|
|
||||||
|
|
||||||
if (res.ok) {
|
|
||||||
return scrapeScene(res.context, url, channel);
|
|
||||||
}
|
|
||||||
|
|
||||||
return res.status;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchProfile({ name: actorName }, entity, include) {
|
async function fetchProfile({ name: actorName }, entity, include) {
|
||||||
const url = `${entity.url}/actors/${slugify(actorName, '_')}`;
|
const url = `${entity.url}/actors/${slugify(actorName, '_')}`;
|
||||||
const res = await unprint.get(url);
|
const res = await unprint.get(url);
|
||||||
|
@ -93,6 +83,6 @@ async function fetchProfile({ name: actorName }, entity, include) {
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
fetchLatest,
|
fetchLatest,
|
||||||
fetchScene,
|
|
||||||
fetchProfile,
|
fetchProfile,
|
||||||
|
scrapeScene,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue