Updated Jules Jordan scraper.
This commit is contained in:
@@ -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',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user