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',
slug: 'bangtrickery',
url: 'https://www.bang.com/videos?in=BANG%21+Trickery',
url: 'https://www.bang.com/originals/4800/bang-trickery',
parameters: { siteId: 4800 },
parent: 'bang',
},
@ -1546,63 +1546,63 @@ const sites = [
name: 'Yngr',
slug: 'yngrcom',
alias: ['byngr'],
url: 'https://www.bang.com/videos?in=yngr.com',
url: 'https://www.bang.com/originals/5010/bang-yngr',
parameters: { siteId: 5010 },
parent: 'bang',
},
{
name: 'Roadside XXX',
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 },
parent: 'bang',
},
{
name: 'Bang! Surprise',
slug: 'bangsurprise',
url: 'https://www.bang.com/videos?in=BANG%21+Surprise',
url: 'https://www.bang.com/originals/5000/bang-surprise',
parameters: { siteId: 5000 },
parent: 'bang',
},
{
name: 'Bang! Adventures',
slug: 'bangadventures',
url: 'https://www.bang.com/videos?in=BANG%21+adventures',
url: 'https://www.bang.com/originals/7064/bang-adventures',
parent: 'bang',
},
{
name: 'Bang! Real Teens',
slug: 'bangrealteens',
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 },
parent: 'bang',
},
{
name: 'FCK.news',
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 },
parent: 'bang',
},
{
name: 'Pretty & Raw',
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 },
parent: 'bang',
},
{
name: 'Bang! Japan',
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 },
parent: 'bang',
},
{
name: 'Bang! Rammed',
slug: 'bangrammed',
url: 'https://www.bang.com/videos?in=BANG%21+Rammed',
url: 'https://www.bang.com/originals/4836/bang-rammed',
parameters: { siteId: 4836 },
parent: 'bang',
},
@ -1610,14 +1610,14 @@ const sites = [
name: 'Bang! Glamkore',
slug: 'bangglamkore',
alias: ['bglamkore'],
url: 'https://www.bang.com/videos?in=BANG%21+Glamkore',
url: 'https://www.bang.com/originals/4586/bang-glamkore',
parameters: { siteId: 4586 },
parent: 'bang',
},
{
name: 'Screw The Cops',
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 },
parent: 'bang',
},
@ -1625,7 +1625,7 @@ const sites = [
name: 'Bang! Real MILFs',
slug: 'bangrealmilfs',
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 },
parent: 'bang',
},
@ -1633,7 +1633,7 @@ const sites = [
name: 'Bang! Confessions',
slug: 'bangconfessions',
alias: ['bconfessions'],
url: 'https://www.bang.com/videos?in=BANG%21+Confessions',
url: 'https://www.bang.com/originals/4308/bang-confessions',
parameters: { siteId: 4308 },
parent: 'bang',
},
@ -1641,21 +1641,35 @@ const sites = [
name: 'Bang! Casting',
slug: 'bangcasting',
alias: ['bcasting'],
url: 'https://www.bang.com/videos?in=BANG%21+Casting',
url: 'https://www.bang.com/originals/3261/bang-casting',
parameters: { siteId: 3261 },
parent: 'bang',
},
{
name: 'Bang! Podcast',
slug: 'bangpodcast',
url: 'https://www.bang.com/videos?in=bang%21+podcast',
url: 'https://www.bang.com/originals/6305/bang-podcast',
parameters: { siteId: 6305 },
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',
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 },
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 }) {
const release = {};
const data = query.json('//script[contains(text(), "VideoObject")]');
@ -177,28 +199,6 @@ async function scrapeProfile({ query, element }, url, entity, include) {
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) {
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.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.height = convert(bio.height, 'cm');
@ -121,11 +121,7 @@ async function scrapeProfile(data) {
async function fetchProfile(actor, context) {
const url = `${context.channel.url}/models/${actor.slug}`;
const res = await unprint.get(url, {
parser: {
runScripts: 'dangerously',
},
});
const res = await unprint.get(url);
if (res.ok) {
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: 'karups', name: 'Peach Lollypop', fields: ['avatar'] },
{ 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;