Added missing Bang sites, updated channel URLs.

This commit is contained in:
DebaucheryLibrarian 2026-02-01 04:50:29 +01:00
parent 2e9e678c51
commit 85fbc9d2f2
4 changed files with 56 additions and 45 deletions

View File

@ -1538,7 +1538,7 @@ const sites = [
{ {
name: 'Bang! Trickery', name: 'Bang! Trickery',
slug: 'bangtrickery', slug: 'bangtrickery',
url: 'https://www.bang.com/videos?in=BANG%21+Trickery', url: 'https://www.bang.com/originals/4800/bang-trickery',
parameters: { siteId: 4800 }, parameters: { siteId: 4800 },
parent: 'bang', parent: 'bang',
}, },
@ -1546,63 +1546,63 @@ const sites = [
name: 'Yngr', name: 'Yngr',
slug: 'yngrcom', slug: 'yngrcom',
alias: ['byngr'], alias: ['byngr'],
url: 'https://www.bang.com/videos?in=yngr.com', url: 'https://www.bang.com/originals/5010/bang-yngr',
parameters: { siteId: 5010 }, parameters: { siteId: 5010 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Roadside XXX', name: 'Roadside XXX',
slug: 'bangroadsidexxx', slug: 'bangroadsidexxx',
url: 'https://www.bang.com/videos?in=Bang%21+Roadside+XXX', url: 'https://www.bang.com/originals/4864/bang-roadside',
parameters: { siteId: 4864 }, parameters: { siteId: 4864 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Surprise', name: 'Bang! Surprise',
slug: 'bangsurprise', slug: 'bangsurprise',
url: 'https://www.bang.com/videos?in=BANG%21+Surprise', url: 'https://www.bang.com/originals/5000/bang-surprise',
parameters: { siteId: 5000 }, parameters: { siteId: 5000 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Adventures', name: 'Bang! Adventures',
slug: 'bangadventures', slug: 'bangadventures',
url: 'https://www.bang.com/videos?in=BANG%21+adventures', url: 'https://www.bang.com/originals/7064/bang-adventures',
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Real Teens', name: 'Bang! Real Teens',
slug: 'bangrealteens', slug: 'bangrealteens',
alias: ['brealteens'], alias: ['brealteens'],
url: 'https://www.bang.com/videos?in=BANG%21+Real+Teens', url: 'https://www.bang.com/originals/3366/bang-real-teens',
parameters: { siteId: 3366 }, parameters: { siteId: 3366 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'FCK.news', name: 'FCK.news',
slug: 'bangfakenews', slug: 'bangfakenews',
url: 'https://www.bang.com/videos?in=Bang%21+Fake+news', url: 'https://www.bang.com/originals/4998/bang-fck-news',
parameters: { siteId: 4998 }, parameters: { siteId: 4998 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Pretty & Raw', name: 'Pretty & Raw',
slug: 'prettyandraw', slug: 'prettyandraw',
url: 'https://www.bang.com/videos?in=Pretty+%26+Raw', url: 'https://www.bang.com/originals/4792/bang-pretty-and-raw',
parameters: { siteId: 4792 }, parameters: { siteId: 4792 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Japan', name: 'Bang! Japan',
slug: 'bangjapan', slug: 'bangjapan',
url: 'https://www.bang.com/videos?in=BANG%21+Japan', url: 'https://www.bang.com/originals/3079/bang-japan',
parameters: { siteId: 3079, ignore: true }, parameters: { siteId: 3079, ignore: true },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Rammed', name: 'Bang! Rammed',
slug: 'bangrammed', slug: 'bangrammed',
url: 'https://www.bang.com/videos?in=BANG%21+Rammed', url: 'https://www.bang.com/originals/4836/bang-rammed',
parameters: { siteId: 4836 }, parameters: { siteId: 4836 },
parent: 'bang', parent: 'bang',
}, },
@ -1610,14 +1610,14 @@ const sites = [
name: 'Bang! Glamkore', name: 'Bang! Glamkore',
slug: 'bangglamkore', slug: 'bangglamkore',
alias: ['bglamkore'], alias: ['bglamkore'],
url: 'https://www.bang.com/videos?in=BANG%21+Glamkore', url: 'https://www.bang.com/originals/4586/bang-glamkore',
parameters: { siteId: 4586 }, parameters: { siteId: 4586 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Screw The Cops', name: 'Screw The Cops',
slug: 'screwthecops', slug: 'screwthecops',
url: 'https://www.bang.com/videos?in=Screw+the+Cops', url: 'https://www.bang.com/originals/4710/bang-screw-the-cops',
parameters: { siteId: 4710 }, parameters: { siteId: 4710 },
parent: 'bang', parent: 'bang',
}, },
@ -1625,7 +1625,7 @@ const sites = [
name: 'Bang! Real MILFs', name: 'Bang! Real MILFs',
slug: 'bangrealmilfs', slug: 'bangrealmilfs',
alias: ['brealmilfs'], alias: ['brealmilfs'],
url: 'https://www.bang.com/videos?in=BANG%21+Real+Milfs', url: 'https://www.bang.com/originals/4448/bang-real-milfs',
parameters: { siteId: 4448 }, parameters: { siteId: 4448 },
parent: 'bang', parent: 'bang',
}, },
@ -1633,7 +1633,7 @@ const sites = [
name: 'Bang! Confessions', name: 'Bang! Confessions',
slug: 'bangconfessions', slug: 'bangconfessions',
alias: ['bconfessions'], alias: ['bconfessions'],
url: 'https://www.bang.com/videos?in=BANG%21+Confessions', url: 'https://www.bang.com/originals/4308/bang-confessions',
parameters: { siteId: 4308 }, parameters: { siteId: 4308 },
parent: 'bang', parent: 'bang',
}, },
@ -1641,21 +1641,35 @@ const sites = [
name: 'Bang! Casting', name: 'Bang! Casting',
slug: 'bangcasting', slug: 'bangcasting',
alias: ['bcasting'], alias: ['bcasting'],
url: 'https://www.bang.com/videos?in=BANG%21+Casting', url: 'https://www.bang.com/originals/3261/bang-casting',
parameters: { siteId: 3261 }, parameters: { siteId: 3261 },
parent: 'bang', parent: 'bang',
}, },
{ {
name: 'Bang! Podcast', name: 'Bang! Podcast',
slug: 'bangpodcast', slug: 'bangpodcast',
url: 'https://www.bang.com/videos?in=bang%21+podcast', url: 'https://www.bang.com/originals/6305/bang-podcast',
parameters: { siteId: 6305 }, parameters: { siteId: 6305 },
parent: 'bang', parent: 'bang',
}, },
{
name: 'Bang! Requests',
slug: 'bangrequests',
url: 'https://www.bang.com/originals/7184/bang-requests',
parameters: { siteId: 7184 },
parent: 'bang',
},
{
name: 'Pillowtalk',
slug: 'pillowtalk',
url: 'https://www.bang.com/originals/7068/pillowtalk',
parameters: { siteId: 7068 },
parent: 'bang',
},
{ {
name: 'My Stepdaughter\'s Friend', name: 'My Stepdaughter\'s Friend',
slug: 'mystepdaughtersfriend', slug: 'mystepdaughtersfriend',
url: 'https://www.bang.com/videos?in=My%20Stepdaughter%27s%20Friend', url: 'https://www.bang.com/originals/7072/my-stepdaughters-friend',
parameters: { siteId: 7072 }, parameters: { siteId: 7072 },
parent: 'bang', parent: 'bang',
}, },

View File

@ -89,6 +89,28 @@ function scrapeAll(scenes, entity) {
}); });
} }
async function fetchLatest(channel, page = 1) {
const url = `${channel.url}?by=date.desc&page=${page}`;
const res = await unprint.get(url, { selectAll: '.video_container' });
if (res.ok) {
return scrapeAll(res.context, channel);
}
return res.status;
}
async function fetchUpcoming(channel) {
const url = `${channel.url}&by=date.desc&early-access=true`;
const res = await unprint.get(url, { selectAll: '.video_container' });
if (res.ok) {
return scrapeAll(res.context, channel);
}
return res.status;
}
async function scrapeScene({ query }, { url, entity }) { async function scrapeScene({ query }, { url, entity }) {
const release = {}; const release = {};
const data = query.json('//script[contains(text(), "VideoObject")]'); const data = query.json('//script[contains(text(), "VideoObject")]');
@ -177,28 +199,6 @@ async function scrapeProfile({ query, element }, url, entity, include) {
return profile; return profile;
} }
async function fetchLatest(channel, page = 1) {
const url = `${channel.url}&by=date.desc&page=${page}`;
const res = await unprint.get(url, { selectAll: '.video_container' });
if (res.ok) {
return scrapeAll(res.context, channel);
}
return res.status;
}
async function fetchUpcoming(channel) {
const url = `${channel.url}&by=date.desc&early-access=true`;
const res = await unprint.get(url, { selectAll: '.video_container' });
if (res.ok) {
return scrapeAll(res.context, channel);
}
return res.status;
}
async function fetchProfile({ name: actorName }, { entity }, include) { async function fetchProfile({ name: actorName }, { entity }, include) {
const searchRes = await unprint.get(`https://www.bang.com/pornstars?term=${slugify(actorName, '+')}`); const searchRes = await unprint.get(`https://www.bang.com/pornstars?term=${slugify(actorName, '+')}`);

View File

@ -99,7 +99,7 @@ async function scrapeProfile(data) {
profile.birthPlace = bio.born; profile.birthPlace = bio.born;
profile.dateOfBirth = unprint.extractDate(bio.birthdate, 'YYYY-MM-DD'); profile.dateOfBirth = unprint.extractDate(bio.birthdate, 'YYYY-MM-DD');
profile.age = bio.age; profile.age = bio.age; // not always in data even when displayed on site
profile.measurements = bio.measurements; profile.measurements = bio.measurements;
profile.height = convert(bio.height, 'cm'); profile.height = convert(bio.height, 'cm');
@ -121,11 +121,7 @@ async function scrapeProfile(data) {
async function fetchProfile(actor, context) { async function fetchProfile(actor, context) {
const url = `${context.channel.url}/models/${actor.slug}`; const url = `${context.channel.url}/models/${actor.slug}`;
const res = await unprint.get(url, { const res = await unprint.get(url);
parser: {
runScripts: 'dangerously',
},
});
if (res.ok) { if (res.ok) {
const data = res.context.query.json('#__NEXT_DATA__'); const data = res.context.query.json('#__NEXT_DATA__');

View File

@ -229,6 +229,7 @@ const actors = [
{ entity: 'meidenvanholland', name: 'Izzy Bizzy Bang Bang', fields: ['avatar', 'description'] }, { entity: 'meidenvanholland', name: 'Izzy Bizzy Bang Bang', fields: ['avatar', 'description'] },
{ entity: 'karups', name: 'Peach Lollypop', fields: ['avatar'] }, { entity: 'karups', name: 'Peach Lollypop', fields: ['avatar'] },
{ entity: 'boyfun', name: 'Amahd Passer', fields: ['avatar', 'age', 'height', 'weight', 'penisLength', 'isCircumcised'] }, { entity: 'boyfun', name: 'Amahd Passer', fields: ['avatar', 'age', 'height', 'weight', 'penisLength', 'isCircumcised'] },
{ entity: 'bang', name: 'Riley Reid', fields: ['avatar', 'dateOfBirth', 'birthPlace', 'ethnicity', 'hairColor', 'eyes'] },
]; ];
const actorScrapers = scrapers.actors; const actorScrapers = scrapers.actors;