Adapted Karups scraper for BoyFun.
This commit is contained in:
parent
2f7ddd277d
commit
82c436f663
|
|
@ -6120,29 +6120,37 @@ const sites = [
|
|||
},
|
||||
// KARUPS
|
||||
{
|
||||
slug: 'karupsprivatecollection',
|
||||
name: 'Private Collection',
|
||||
slug: 'privatecollection',
|
||||
rename: 'karupsprivatecollection',
|
||||
alias: ['kpc'],
|
||||
url: 'https://www.karups.com/site/kpc',
|
||||
hasLogo: false,
|
||||
parent: 'karups',
|
||||
},
|
||||
{
|
||||
slug: 'karupshometownamateurs',
|
||||
name: 'Hometown Amateurs',
|
||||
slug: 'hometownamateurs',
|
||||
rename: 'karupshometownamateurs',
|
||||
alias: ['kha'],
|
||||
url: 'https://www.karups.com/site/kha',
|
||||
hasLogo: false,
|
||||
parent: 'karups',
|
||||
},
|
||||
{
|
||||
slug: 'karupsolderwomen',
|
||||
name: 'Older Women',
|
||||
slug: 'olderwomen',
|
||||
rename: 'karupsolderwomen',
|
||||
alias: ['kow'],
|
||||
url: 'https://www.karups.com/site/kow',
|
||||
hasLogo: false,
|
||||
parent: 'karups',
|
||||
},
|
||||
{
|
||||
name: 'BoyFun',
|
||||
slug: 'boyfun',
|
||||
url: 'https://www.boyfun.com',
|
||||
parent: 'karups',
|
||||
independent: true,
|
||||
tags: ['gay'],
|
||||
},
|
||||
// KELLY MADISON MEDIA / 5K / 8K
|
||||
{
|
||||
slug: 'teenfidelity',
|
||||
|
|
|
|||
|
|
@ -220,6 +220,7 @@ module.exports = {
|
|||
inthecrack,
|
||||
jerkaoke: modelmedia,
|
||||
karups,
|
||||
boyfun: karups,
|
||||
kellymadison,
|
||||
'8kmembers': kellymadison,
|
||||
// analvids,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ function scrapeAll(scenes) {
|
|||
release.entryId = new URL(release.url).pathname.match(/(\d+)\.html/)?.[1];
|
||||
|
||||
release.title = query.content('.title');
|
||||
release.date = query.date('.date', 'MMM Do, YYYY');
|
||||
release.date = query.date('.date', ['MMM Do, YYYY', 'DD MMM YYYY'], { match: null });
|
||||
|
||||
release.channel = channelSlugs[query.content('.site')];
|
||||
|
||||
|
|
@ -84,7 +84,19 @@ function scrapeScene({ query }, { url }) {
|
|||
function scrapeProfile({ query }, entity) {
|
||||
const profile = {};
|
||||
|
||||
profile.gender = 'female';
|
||||
const bio = Object.fromEntries(query.all('.model-table .item').map((bioEl) => [
|
||||
slugify(unprint.query.content(bioEl, '.label'), '_'),
|
||||
unprint.query.content(bioEl, '.value'),
|
||||
]));
|
||||
|
||||
profile.age = unprint.extractNumber(bio.date_of_birth); // seemingly only used on Boyfun and always age
|
||||
profile.height = unprint.extractNumber(bio.height);
|
||||
profile.weight = unprint.extractNumber(bio.height);
|
||||
|
||||
profile.penisLength = unprint.extractNumber(bio.dick_size);
|
||||
|
||||
if (bio.cut_uncut?.toLowerCase() === 'cut') profile.isCircumcised = true;
|
||||
if (bio.cut_uncut?.toLowerCase() === 'uncut') profile.isCircumcised = false;
|
||||
|
||||
profile.avatar = query.img('.model-thumb img[src*=".jpg"]');
|
||||
profile.scenes = scrapeAll(unprint.initAll(query.all('.listing-videos .item')), entity);
|
||||
|
|
@ -92,12 +104,12 @@ function scrapeProfile({ query }, entity) {
|
|||
return profile;
|
||||
}
|
||||
|
||||
async function getActorUrl(actor) {
|
||||
async function getActorUrl(actor, entity) {
|
||||
if (actor.url) {
|
||||
return actor.url;
|
||||
}
|
||||
|
||||
const res = await unprint.get(`https://www.karups.com/models/search/${actor.slug}/`, {
|
||||
const res = await unprint.get(`${entity.origin}/models/search/${actor.slug}/`, {
|
||||
selectAll: '.listing-models .item',
|
||||
cookies: {
|
||||
warningHidden: 'hide',
|
||||
|
|
@ -114,7 +126,7 @@ async function getActorUrl(actor) {
|
|||
}
|
||||
|
||||
async function fetchProfile(actor, entity) {
|
||||
const actorUrl = await getActorUrl(actor);
|
||||
const actorUrl = await getActorUrl(actor, entity);
|
||||
|
||||
if (!actorUrl) {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -227,7 +227,8 @@ const actors = [
|
|||
{ entity: 'pornhub', name: 'Lexi Luna', fields: ['avatar', 'gender', 'ethnicity', 'description', 'birthPlace', 'measurements', 'naturalBoobs', 'height', 'weight', 'hairColor', 'hasPiercings', 'hasTattoos'] },
|
||||
{ entity: 'fullpornnetwork', name: 'Kenzie Reeves', fields: ['avatar', 'description'] },
|
||||
{ entity: 'meidenvanholland', name: 'Izzy Bizzy Bang Bang', fields: ['avatar', 'description'] },
|
||||
{ entity: 'karups', name: 'Peach Lollypop', fields: ['avatar', 'gender'] },
|
||||
{ entity: 'karups', name: 'Peach Lollypop', fields: ['avatar'] },
|
||||
{ entity: 'boyfun', name: 'Amahd Passer', fields: ['avatar', 'age', 'height', 'weight', 'penisLength', 'isCircumcised'] },
|
||||
];
|
||||
|
||||
const actorScrapers = scrapers.actors;
|
||||
|
|
|
|||
Loading…
Reference in New Issue