Added Pinky XXX, changed ethnicity tags.

This commit is contained in:
DebaucheryLibrarian
2021-01-13 00:52:05 +01:00
parent 68aacb498a
commit 52356f0f31
36 changed files with 139 additions and 18 deletions

112
src/scrapers/pinkyxxx.js Normal file
View File

@@ -0,0 +1,112 @@
'use strict';
const qu = require('../utils/qu');
const http = require('../utils/http');
async function getTrailer(entryId, channel) {
const videoLinksRes = await http.post('https://pinkyxxx.com/wp-admin/admin-ajax.php', {
action: 'vidplay',
vid: entryId,
type: 'promo',
}, {
encodeJSON: false,
decodeJSON: true,
});
if (!videoLinksRes.ok || !videoLinksRes.body.size1) {
return null;
}
const scriptUrl = qu.extract(videoLinksRes.body.size1)?.query.url('script', 'src', { origin: channel.url });
const videoScriptRes = await http.get(scriptUrl);
if (!videoScriptRes.ok) {
return null;
}
const videoDataString = videoScriptRes.body.match(/"clip":({.*"})/)?.[1];
const videoData = videoDataString && JSON.parse(videoDataString);
const posterUrlString = videoScriptRes.body.match(/src="(.*poster.*?)"/)?.[1];
const posterUrlEl = videoScriptRes.document.createElement('span');
posterUrlEl.innerHTML = posterUrlString;
return {
trailer: videoData?.url || null,
poster: posterUrlEl.textContent || null,
};
}
function scrapeAll(scenes) {
return scenes.map((scene) => {
const release = {};
release.entryId = scene.ID;
release.url = scene.permalink;
release.title = scene.title;
release.description = scene.description;
release.date = qu.extractDate(scene.info?.post_date, 'YYYY-MM-DD HH:mm:ss') || qu.extractDate(scene.date, 'MMMM D, YYYY'); // eslint-disable-line camelcase
release.poster = scene.poster[0];
release.photos = Object.entries(scene).reduce((acc, [key, data]) => {
if (/thumb/.test(key)) {
return [...acc, data.url];
}
return acc;
}, []);
return release;
});
}
async function scrapeScene({ query }, channel) {
const release = {};
release.title = query.cnt('.title');
release.description = query.cnt('.description');
release.entryId = query.q('body', 'class').match(/postid-(\d+)/)?.[1];
const { poster, trailer } = await getTrailer(release.entryId, channel) || {};
release.poster = poster;
release.trailer = trailer;
return release;
}
async function fetchLatest(channel, page) {
const res = await http.post('https://pinkyxxx.com/wp-admin/admin-ajax.php', {
action: 'vls',
limit: 10,
offset: (page - 1) * 10,
}, {
encodeJSON: false,
decodeJSON: true,
});
if (res.ok) {
return scrapeAll(res.body.listings);
}
return res.status;
}
async function fetchScene(url, channel) {
const res = await qu.get(url);
if (res.ok) {
return scrapeScene(res.item, channel);
}
return res.status;
}
module.exports = {
fetchLatest,
fetchScene,
};

View File

@@ -56,6 +56,7 @@ const pervcity = require('./pervcity');
const porncz = require('./porncz');
const pornhub = require('./pornhub');
const pascalssubsluts = require('./pascalssubsluts'); // reserved keyword
const pinkyxxx = require('./pinkyxxx');
const privateNetwork = require('./private'); // reserved keyword
const puretaboo = require('./puretaboo');
const realitykings = require('./realitykings');
@@ -146,6 +147,7 @@ const scrapers = {
perfectgonzo,
pervcity,
pimpxxx: cherrypimps,
pinkyxxx,
porncz,
pornpros: whalemember,
private: privateNetwork,