Updated Jules Jordan scraper.

This commit is contained in:
DebaucheryLibrarian
2023-07-06 00:14:38 +02:00
parent 66439b3b17
commit 0905847ffa
609 changed files with 391 additions and 277 deletions

View File

@@ -4649,6 +4649,9 @@ const sites = [
name: 'Jules Jordan',
url: 'https://www.julesjordan.com',
description: 'Jules Jordan\'s Official Membership Site',
parameters: {
entryIdFromTitle: true,
},
parent: 'julesjordan',
},
{

View File

@@ -73,6 +73,8 @@ const bannerTags = {
hardcoregangbang_305_99_kira_noir: ['blowbang', 'black', 'bdsm'],
hardcoregangbang_900_250_gloves_blonde: ['blowbang', 'blonde', 'bdsm'],
hardcoregangbang_1000_100: ['gangbang', 'mfm', 'bdsm'],
// mindgeek
mindgeek_728_90_gay: ['gay'],
// teenmegaworld
analangels_468_80_animated: ['anal'],
analangels_300_250_animated: ['anal'],
@@ -226,34 +228,6 @@ const campaigns = [
affiliate: 'archangel_share',
banner: 'archangel_970_90_kendra_lust',
},
{
network: 'brazzers',
url: 'https://landing.brazzersnetwork.com/?ats=eyJhIjozMTYwOTcsImMiOjU5MzI1Mzk5LCJuIjoxNCwicyI6OTAsImUiOjg4MDMsInAiOjExfQ==',
comment: '$30 per signup',
},
{
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_728_90_adriana_chechik_gangbang',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_728_90_kenzie_reeves_lexi_lore',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_970_90_one_dollar',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
*/
// bang
{
@@ -264,8 +238,8 @@ const campaigns = [
// brazzers
{
network: 'brazzers',
banner: 'brazzers_728_90',
comment: 'per signup',
url: 'https://landing.brazzersnetwork.com/?ats=eyJhIjozMTYwOTcsImMiOjU5MzI1Mzk5LCJuIjoxNCwicyI6OTAsImUiOjg4MDMsInAiOjExfQ==',
comment: '$30 per signup',
},
// dfxtra / dogfart
{
@@ -332,6 +306,30 @@ const campaigns = [
url: 'https://www.g2fame.com/blacksonblondes/go.php?pr=8&su=2&si=682&ad=277470&pa=index&ar=&campaign=460352&buffer=',
comment: 'per signup',
},
// evil angel
{
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_728_90_adriana_chechik_gangbang',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_728_90_kenzie_reeves_lexi_lore',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
{
banner: 'evilangel_970_90_one_dollar',
network: 'evilangel',
url: 'https://www.iyalc.com/evilangel/go.php?pr=8&su=2&si=128&ad=277470&pa=index&ar=&buffer=',
comment: 'per signup',
},
// julesjordan
{
network: 'julesjordan',
@@ -498,6 +496,27 @@ const campaigns = [
url: 'https://www2.teenfidelity.com/track/MTAxOTE0LjYuNS42LjAuMC4wLjAuMA',
comment: '$25 per signup',
},
// mindgeek
{
network: 'mindgeek',
banner: 'mindgeek_728_90',
},
{
network: 'mindgeek',
banner: 'mindgeek_300_100',
},
{
network: 'mindgeek',
banner: 'mindgeek_300_250',
},
{
network: 'mindgeek',
banner: 'mindgeek_315_300',
},
{
network: 'mindgeek',
banner: 'mindgeek_728_90_gay',
},
// teenmegaworld
{
network: 'teenmegaworld',
@@ -679,30 +698,36 @@ const campaigns = [
exports.seed = async (knex) => Promise.resolve()
.then(async () => {
const bannerNetworks = await fs.readdir('./public/img/banners');
const bannerNetworks = await fs.readdir('./public/banners');
// derive entity, width and height from filepath to minimize redundant work
const rawBanners = await Promise.all(bannerNetworks.map(async (network) => {
const networkPaths = await fs.readdir(`./public/img/banners/${network}`);
const networkPaths = await fs.readdir(`./public/banners/${network}`);
return Promise.all(networkPaths.map(async (file) => {
if (file.charAt(0) === '_') {
return null;
}
if (await fs.stat(`./public/img/banners/${network}/${file}`).then(async (stats) => stats.isDirectory())) {
const channelPaths = await fs.readdir(`./public/img/banners/${network}/${file}`);
if (await fs.stat(`./public/banners/${network}/${file}`).then(async (stats) => stats.isDirectory())) {
const channelPaths = await fs.readdir(`./public/banners/${network}/${file}`);
return channelPaths.map((filepath) => ({
id: path.parse(filepath).name,
channel: file,
}));
return channelPaths.map((filepath) => {
const { name, ext } = path.parse(filepath);
return {
id: name,
type: ext.slice(1),
channel: file,
};
});
}
console.log(file);
const { name, ext } = path.parse(file);
return {
id: path.parse(file).name,
id: name,
type: ext.slice(1),
network,
};
}));
@@ -763,7 +788,7 @@ exports.seed = async (knex) => Promise.resolve()
id: banner.id,
width: banner.width,
height: banner.height,
type: banner.type === 'gif' || banner.id.includes('animated') ? 'gif' : 'jpg',
type: banner.type || (banner.id.includes('animated') ? 'gif' : 'jpg'),
entity_id: networksBySlug[banner.network]?.id || channelsBySlug[banner.channel]?.id || channelsBySlug[banner.network]?.id || null,
}));
@@ -777,8 +802,7 @@ exports.seed = async (knex) => Promise.resolve()
url: campaign.url,
affiliate_id: campaign.affiliate,
banner_id: campaign.banner,
html: campaign.html,
})).filter((link) => link.entity_id && (link.url || link.affiliate_id));
})).filter((link) => link.entity_id && (link.url || link.affiliate_id || link.banner_id));
await knex('affiliates').insert(affiliatesWithEntityId);
await bulkInsert('banners', bannersWithEntityId, false);