Fixed Bang scraper. Added Kink affiliate, tag photos.

This commit is contained in:
DebaucheryLibrarian 2021-07-05 00:06:18 +02:00
parent 4fb41a4c35
commit 23b41fc4f3
82 changed files with 225 additions and 10 deletions

View File

@ -7,7 +7,7 @@
> >
<img <img
v-if="campaign.banner.entity.type === 'network'" v-if="campaign.banner.entity.type === 'network'"
:src="`/img/banners/${campaign.banner.entity.slug}/${campaign.banner.id}.jpg`" :src="`/img/banners/${campaign.banner.entity.slug}/${campaign.banner.id}.${campaign.banner.type || 'jpg'}`"
:width="campaign.banner.width" :width="campaign.banner.width"
:height="campaign.banner.height" :height="campaign.banner.height"
class="campaign-banner" class="campaign-banner"
@ -15,7 +15,7 @@
<img <img
v-if="campaign.banner.entity.type === 'channel' && campaign.banner.entity.parent?.type === 'network'" v-if="campaign.banner.entity.type === 'channel' && campaign.banner.entity.parent?.type === 'network'"
:src="`/img/banners/${campaign.banner.entity.parent.slug}/${campaign.banner.entity.slug}/${campaign.banner.id}.jpg`" :src="`/img/banners/${campaign.banner.entity.parent.slug}/${campaign.banner.entity.slug}/${campaign.banner.id}.${campaign.banner.type || 'jpg'}`"
:width="campaign.banner.width" :width="campaign.banner.width"
:height="campaign.banner.height" :height="campaign.banner.height"
class="campaign-banner" class="campaign-banner"

View File

@ -2,7 +2,7 @@
<div class="media-container"> <div class="media-container">
<div <div
class="media" class="media"
:class="{ center: release.photos.length < 2 }" :class="{ center: release.photos.length < 2, preview: !me }"
> >
<div <div
v-if="release.trailer || release.teaser" v-if="release.trailer || release.teaser"
@ -337,7 +337,7 @@ export default {
} }
@media(max-width: $breakpoint-micro) { @media(max-width: $breakpoint-micro) {
.media.center { .media.center.preview {
flex-direction: column; flex-direction: column;
} }

View File

@ -121,6 +121,7 @@ const campaignsFragment = `
url url
banner { banner {
id id
type
width width
height height
ratio ratio

View File

@ -120,6 +120,7 @@ function initTagsActions(store, _router) {
id id
width width
height height
type
ratio ratio
entity { entity {
id id

View File

@ -1280,6 +1280,9 @@ exports.up = knex => Promise.resolve()
.unique() .unique()
.notNullable(); .notNullable();
table.string('type')
.defaultTo('jpg');
table.integer('width') table.integer('width')
.notNullable(); .notNullable();

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -934,6 +934,7 @@ const tags = [
name: 'teen', name: 'teen',
slug: 'teen', slug: 'teen',
group: 'age', group: 'age',
description: 'New starlets aged between roughly 18 and 21, but often stretched to well into their 20s.',
}, },
{ {
name: 'titty fucking', name: 'titty fucking',

View File

@ -611,6 +611,7 @@ const tagMedia = [
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3"', 'julesjordan'], ['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3"', 'julesjordan'],
['anal', 'nikki_benz_bigwetbutts', 'Nikki Benz in "Pantyhose Playtime"', 'bigwetbutts'], ['anal', 'nikki_benz_bigwetbutts', 'Nikki Benz in "Pantyhose Playtime"', 'bigwetbutts'],
['anal', 7, 'Anastasia Brokelyn', 'bangbros'], ['anal', 7, 'Anastasia Brokelyn', 'bangbros'],
['anal', 'gia_derza_julesjordan', 'Gia Derza in "Manuel Opens Their Asses 8"', 'julesjordan'],
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal"', 'darkx'], ['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal"', 'darkx'],
['anal', 4, 'Lana Roy in "Anal In The Club"', '21naturals'], ['anal', 4, 'Lana Roy in "Anal In The Club"', '21naturals'],
['anal', 3, 'Dakota Skye', 'brazzers'], ['anal', 3, 'Dakota Skye', 'brazzers'],
@ -649,6 +650,8 @@ const tagMedia = [
['blonde', 3, 'Kylie Page in "A Juicy Afternoon Delight"', 'newsensations'], ['blonde', 3, 'Kylie Page in "A Juicy Afternoon Delight"', 'newsensations'],
['blonde', 'shawna_lenee_sunrisekings', 'Shawna Lenee', 'sunrisekings'], ['blonde', 'shawna_lenee_sunrisekings', 'Shawna Lenee', 'sunrisekings'],
['blonde', 2, 'Isabelle Deltore', 'herlimit'], ['blonde', 2, 'Isabelle Deltore', 'herlimit'],
['blowbang', 'ana_foxxx_hardx', 'Ana Foxxx in "Facialized Vol. 4"', 'hardx'],
['blowbang', 'monika_fox_legalporno', 'Monika Fox in GL479', 'legalporno'],
['blowbang', 0, 'Lacy Lennon in "Lacy Lennon\'s First Blowbang"', 'hardx'], ['blowbang', 0, 'Lacy Lennon in "Lacy Lennon\'s First Blowbang"', 'hardx'],
['blowbang', 'zaawaadi_roccosiffredi_1', 'Zaawaadi in "My Name Is Zaawaadi"', 'roccosiffredi'], ['blowbang', 'zaawaadi_roccosiffredi_1', 'Zaawaadi in "My Name Is Zaawaadi"', 'roccosiffredi'],
['blowbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'], ['blowbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'],
@ -670,6 +673,9 @@ const tagMedia = [
['bts', 1, 'Madison Ivy in "Day With A Pornstar"', 'brazzers'], ['bts', 1, 'Madison Ivy in "Day With A Pornstar"', 'brazzers'],
['bts', 2, 'Christy Mack', 'digitalplayground'], ['bts', 2, 'Christy Mack', 'digitalplayground'],
['bukkake', 0, 'Jaye Summers in "Facialized 5"', 'hardx'], ['bukkake', 0, 'Jaye Summers in "Facialized 5"', 'hardx'],
['bukkake', 'ana_foxxx_hardx', 'Ana Foxxx in "Facialized Vol. 4"', 'hardx'],
['bukkake', 'jasmine_byrne_julesjordan', 'Jasmine Byrne in "Flesh Hunter 10"', 'julesjordan'],
['bukkake', 'megan_rain_julesjordan', 'Megan Rain in "Slutty Teen In A 10 Cock Blowbang! It\'s RAINING Cum!"', 'julesjordan'],
['creampie', 1, 'Eveline Dellai', 'nubiles'], ['creampie', 1, 'Eveline Dellai', 'nubiles'],
['creampie', 3, 'Silvia Soprina in "Satisfaction"', '5kteens'], ['creampie', 3, 'Silvia Soprina in "Satisfaction"', '5kteens'],
['creampie', 2, 'Natasha Lapiedra in "New and Ready"', '5kporn'], ['creampie', 2, 'Natasha Lapiedra in "New and Ready"', '5kporn'],
@ -705,6 +711,7 @@ const tagMedia = [
['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971', 'legalporno'], ['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971', 'legalporno'],
['deepthroat', 2, 'Sarah Vandella', 'throated'], ['deepthroat', 2, 'Sarah Vandella', 'throated'],
['deepthroat', 3, 'Kira Noir in "Ebony Throat Vs Monster Cock"', 'throated'], ['deepthroat', 3, 'Kira Noir in "Ebony Throat Vs Monster Cock"', 'throated'],
['deepthroat', 'cathy_heaven_brazzers', 'Cathy Heaven in " 7 Minutes in Mrs. Heaven"', 'brazzers'],
['deepthroat', 4, 'Tammy', 'youngthroats'], ['deepthroat', 4, 'Tammy', 'youngthroats'],
['deepthroat', 1, 'Jynx Maze in "Slutty and Sluttier 13"', 'evilangel'], ['deepthroat', 1, 'Jynx Maze in "Slutty and Sluttier 13"', 'evilangel'],
['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun"', 'throated'], ['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun"', 'throated'],
@ -768,6 +775,7 @@ const tagMedia = [
['facefucking', 5, 'Mia Moore B', 'throated'], ['facefucking', 5, 'Mia Moore B', 'throated'],
['facefucking', 6, 'Halle Hayes in "Towering Temptress"', '5kporn'], ['facefucking', 6, 'Halle Hayes in "Towering Temptress"', '5kporn'],
['facefucking', 'adria_rae_throated', 'Adria Rae in "Adria Rae Sucks Cock All Day"', 'throated'], ['facefucking', 'adria_rae_throated', 'Adria Rae in "Adria Rae Sucks Cock All Day"', 'throated'],
['facefucking', 'cathy_heaven_roccosiffredi', 'Cathy Heaven', 'roccosiffredi'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12"', 'evilangel'], ['facefucking', 1, 'Paige Owens in "Dark Meat 12"', 'evilangel'],
['facefucking', 7, 'Anya Olsen and Audrey Snow in "Babysitter Busted Giving A BJ"', 'mommyblowsbest'], ['facefucking', 7, 'Anya Olsen and Audrey Snow in "Babysitter Busted Giving A BJ"', 'mommyblowsbest'],
['facefucking', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'], ['facefucking', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'],
@ -777,7 +785,8 @@ const tagMedia = [
['facial', 0, 'Brooklyn Gray in "All About Ass 4"', 'evilangel'], ['facial', 0, 'Brooklyn Gray in "All About Ass 4"', 'evilangel'],
['facial', 3, 'Paige Owens in "Oral Restraint"', 'babes'], ['facial', 3, 'Paige Owens in "Oral Restraint"', 'babes'],
['facial', 'mia_malkova_manojob_2', 'Mia Malkova in "Covered!"', 'manojob'], ['facial', 'mia_malkova_manojob_2', 'Mia Malkova in "Covered!"', 'manojob'],
['facial', 'poster', 'Jynx Maze'], ['facial', 'alicia_williams_holed', 'Alicia Wiliams in "Bath and Anal"', 'holed'],
['facial', 'poster', 'Jynx Maze in "Gag Reflex 3"', 'evilangel'],
['facial', 'hope_howell_manojob', 'Hope Howell in "Super Slutty Step-Daugher"', 'manojob'], ['facial', 'hope_howell_manojob', 'Hope Howell in "Super Slutty Step-Daugher"', 'manojob'],
['facial', 2, 'Ashly Anderson', 'hookuphotshot'], ['facial', 2, 'Ashly Anderson', 'hookuphotshot'],
['facial', 4, 'Kendra Heart', 'facialsforever'], ['facial', 4, 'Kendra Heart', 'facialsforever'],
@ -829,8 +838,9 @@ const tagMedia = [
['fisting-dp', 0, 'Janice Griffith and Veronica Avluv in "The Nymphomaniac\'s Apprentice', 'theupperfloor'], ['fisting-dp', 0, 'Janice Griffith and Veronica Avluv in "The Nymphomaniac\'s Apprentice', 'theupperfloor'],
['gangbang', 5, 'Carter Cruise\'s first gangbang in "Slut Puppies 9"', 'julesjordan'], ['gangbang', 5, 'Carter Cruise\'s first gangbang in "Slut Puppies 9"', 'julesjordan'],
['gangbang', 'kristen_scott_julesjordan', 'Kristen Scott in "Interracial Gangbang!"', 'julesjordan'], ['gangbang', 'kristen_scott_julesjordan', 'Kristen Scott in "Interracial Gangbang!"', 'julesjordan'],
['gangbang', 'lara_frost_legalporno_1', 'Lara Frost in NRX070', 'legalporno'], ['gangbang', 'monika_fox_legalporno', 'Monika Fox in GL479', 'legalporno'],
['gangbang', 7, 'Alexa Flexy in GL376', 'legalporno'], ['gangbang', 7, 'Alexa Flexy in GL376', 'legalporno'],
['gangbang', 'lara_frost_legalporno_1', 'Lara Frost in NRX070', 'legalporno'],
['gangbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'], ['gangbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'],
['gangbang', 0, '"4 On 1 Gangbangs"', 'doghousedigital'], ['gangbang', 0, '"4 On 1 Gangbangs"', 'doghousedigital'],
['gangbang', 4, 'Marley Brinx in "The Gangbang of Marley Brinx"', 'julesjordan'], ['gangbang', 4, 'Marley Brinx in "The Gangbang of Marley Brinx"', 'julesjordan'],
@ -901,6 +911,7 @@ const tagMedia = [
['piercings', 0, 'Kaegune in "When The Sun Goes Down"', 'suicidegirls'], ['piercings', 0, 'Kaegune in "When The Sun Goes Down"', 'suicidegirls'],
['piss-drinking', 0, 'Scarlet Domingo in GL227', 'legalporno'], ['piss-drinking', 0, 'Scarlet Domingo in GL227', 'legalporno'],
['pussy-eating', 5, 'Claudia Macc and Victoria Pure', 'eurogirlsongirls'], ['pussy-eating', 5, 'Claudia Macc and Victoria Pure', 'eurogirlsongirls'],
['pussy-eating', 'lilly_evans_jayme_langford_twistys', 'Jayme Langford and Lilly Evans in "The Morning After"', 'twistys'],
['pussy-eating', 4, 'Anastasia Knight and Jillian Janson in "Teach Me"', 'screwbox'], ['pussy-eating', 4, 'Anastasia Knight and Jillian Janson in "Teach Me"', 'screwbox'],
['pussy-eating', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'], ['pussy-eating', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
['pussy-eating', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'], ['pussy-eating', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],

View File

@ -155,6 +155,94 @@ const banners = [
network: 'julesjordan', network: 'julesjordan',
tags: ['sex', 'blowjob', 'facefucking', 'big-boobs', 'brunette'], tags: ['sex', 'blowjob', 'facefucking', 'big-boobs', 'brunette'],
}, },
{
id: 'boundgangbangs_305_99_moretta_11975_animated',
width: 305,
height: 99,
type: 'gif',
channel: 'boundgangbangs',
tags: ['gangbang', 'mfm', 'bdsm', 'blonde'],
},
{
id: 'boundgangbangs_305_99_moretta_11975',
width: 305,
height: 99,
channel: 'boundgangbangs',
tags: ['blowbang', 'blowjob', 'bdsm', 'blonde'],
},
{
id: 'boundgangbangs_315_300_lou_charmelle_12402_animated',
width: 315,
height: 300,
type: 'gif',
channel: 'boundgangbangs',
tags: ['gangbang', 'airtight', 'dp', 'bdsm', 'bondage'],
},
{
id: 'boundgangbangs_315_300_lou_charmelle_12402',
width: 315,
height: 300,
channel: 'boundgangbangs',
tags: ['gangbang', 'mfm', 'bdsm', 'bondage'],
},
{
id: 'boundgangbangs_770_76_amy_brooke_11965',
width: 770,
height: 76,
type: 'gif',
channel: 'boundgangbangs',
tags: ['gangbang', 'airtight', 'mfm', 'bdsm', 'bondage'],
},
{
id: 'boundgangbangs_770_76_anissa_kate_19662',
width: 770,
height: 76,
channel: 'boundgangbangs',
tags: ['gangbang', 'airtight', 'bdsm', 'bondage'],
},
{
id: 'boundgangbangs_970_90_sasha_swift_18815',
width: 970,
height: 90,
channel: 'boundgangbangs',
tags: ['gangbang', 'blowbang', 'dp', 'blowjob', 'facefucking', 'facial', 'bdsm'],
},
{
id: 'boundgangbangs_970_90_skylar_price_12403',
width: 970,
height: 90,
type: 'gif',
channel: 'boundgangbangs',
tags: ['gangbang', 'mfm', 'blowbang', 'blowjob', 'blonde', 'bdsm'],
},
{
id: 'hardcoregangbang_300_250_kira_noir_44157',
width: 300,
height: 250,
channel: 'hardcoregangbang',
tags: ['blowbang', 'black', 'bdsm'],
},
{
id: 'hardcoregangbang_305_99_kira_noir',
width: 305,
height: 99,
channel: 'hardcoregangbang',
tags: ['blowbang', 'black', 'bdsm'],
},
{
id: 'hardcoregangbang_900_250_gloves_blonde',
width: 900,
height: 250,
channel: 'hardcoregangbang',
tags: ['blowbang', 'blonde', 'bdsm'],
},
{
id: 'hardcoregangbang_1000_100',
width: 1000,
height: 100,
channel: 'hardcoregangbang',
tags: ['gangbang', 'mfm', 'bdsm'],
},
{ {
id: 'manuelferrara_728_90_asses', id: 'manuelferrara_728_90_asses',
width: 728, width: 728,
@ -350,6 +438,113 @@ const campaigns = [
url: 'https://enter.julesjordan.com/track/Mzk3MS4yLjMuNi4wLjAuMC4wLjA', url: 'https://enter.julesjordan.com/track/Mzk3MS4yLjMuNi4wLjAuMC4wLjA',
comment: '$30 per signup', comment: '$30 per signup',
}, },
{
network: 'kink',
url: 'https://www.kink.com/shoots/latest?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
comment: '50%',
},
{
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
url: 'https://www.kink.com/channel/hardcore-gangbang?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'hardcoregangbang',
comment: '50%',
},
{
banner: 'boundgangbangs_305_99_moretta_11975',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_305_99_moretta_11975_animated',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_315_300_lou_charmelle_12402',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_315_300_lou_charmelle_12402_animated',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_770_76_amy_brooke_11965',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_770_76_anissa_kate_19662',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_970_90_sasha_swift_18815',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'boundgangbangs_970_90_skylar_price_12403',
url: 'https://www.kink.com/channel/bound-gang-bangs?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'boundgangbangs',
comment: '50%',
},
{
banner: 'hardcoregangbang_300_250_kira_noir_44157',
url: 'https://www.kink.com/channel/hardcore-gangbang?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'hardcoregangbang',
comment: '50%',
},
{
banner: 'hardcoregangbang_305_99_kira_noir',
url: 'https://www.kink.com/channel/hardcore-gangbang?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'hardcoregangbang',
comment: '50%',
},
{
banner: 'hardcoregangbang_900_250_gloves_blonde',
url: 'https://www.kink.com/channel/hardcore-gangbang?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'hardcoregangbang',
comment: '50%',
},
{
banner: 'hardcoregangbang_1000_100',
url: 'https://www.kink.com/channel/hardcore-gangbang?t=eyJhZmZpbGlhdGUiOiJEZWJhdWNoZXJ5TGliIiwiY2FtcGFpZ24iOiJkZWZhdWx0IiwiYWdldmVyaWZpZWQiOiJ5In0',
channel: 'hardcoregangbang',
comment: '50%',
},
{
network: 'kellymadison',
url: 'https://www2.kellymadison.com/track/MTAxOTE0LjYuMS4xLjAuMC4wLjAuMA',
comment: '$25 per signup',
},
{
channel: 'kellymadison',
url: 'https://www2.kellymadison.com/track/MTAxOTE0LjYuMS4xLjAuMC4wLjAuMA',
comment: '$25 per signup',
},
{
channel: 'pornfidelity',
url: 'https://www2.pornfidelity.com/track/MTAxOTE0LjYuMy4zLjAuMC4wLjAuMA',
comment: '$25 per signup',
},
{
channel: 'teenfidelity',
url: 'https://www2.teenfidelity.com/track/MTAxOTE0LjYuNS42LjAuMC4wLjAuMA',
comment: '$25 per signup',
},
{ {
channel: 'manuelferrara', channel: 'manuelferrara',
url: 'https://enter.manuelferrara.com/track/Mzk3MS4yLjcuMTYuMC4wLjAuMC4w', url: 'https://enter.manuelferrara.com/track/Mzk3MS4yLjcuMTYuMC4wLjAuMC4w',
@ -452,6 +647,7 @@ exports.seed = async knex => Promise.resolve()
id: banner.id, id: banner.id,
width: banner.width, width: banner.width,
height: banner.height, height: banner.height,
type: banner.type,
entity_id: networksBySlug[banner.network]?.id || channelsBySlug[banner.channel]?.id || null, entity_id: networksBySlug[banner.network]?.id || channelsBySlug[banner.channel]?.id || null,
})); }));

View File

@ -15,7 +15,7 @@ const genderMap = {
}; };
function getScreenUrl(item, scene) { function getScreenUrl(item, scene) {
return `https://i.bang.com/screenshots/${scene.dvd.id}/movie/${scene.order}/${item.screenId}.jpg`; return `https://i.bang.com/screenshots/${scene.dvd.id}/${scene.type}/${scene.order}/${item.screenId}.jpg`;
} }
function encodeId(id) { function encodeId(id) {
@ -47,7 +47,7 @@ async function fetchPhotos(scene) {
encodeJSON: false, encodeJSON: false,
}); });
if (res.ok) { if (res.ok && res.body.images) {
return res.body.images.map(image => qu.prefixUrl(image, 'https://photos.bang.com')); return res.body.images.map(image => qu.prefixUrl(image, 'https://photos.bang.com'));
} }
@ -101,7 +101,7 @@ async function scrapeScene(scene, entity, options) {
} }
function scrapeAll(scenes, entity) { function scrapeAll(scenes, entity) {
return scenes.map(({ _source: scene }) => scrapeScene(scene, entity)); return Promise.all(scenes.map(({ _source: scene }) => scrapeScene(scene, entity)));
} }
async function fetchActorReleases(actor, entity) { async function fetchActorReleases(actor, entity) {

View File

@ -284,6 +284,8 @@ async function scrapeScene({ html, query }, url, site, include) {
url: query.url('.update_dvds a'), url: query.url('.update_dvds a'),
title: query.q('.update_dvds a', true), title: query.q('.update_dvds a', true),
}; };
release.movie.entryId = new URL(release.movie.url).pathname.split('/').slice(-1)[0]?.replace('.html', '');
} }
const stars = Number(query.q('.avg_rating', true)?.replace(/[\s|Avg Rating:]/g, '')); const stars = Number(query.q('.avg_rating', true)?.replace(/[\s|Avg Rating:]/g, ''));
@ -295,7 +297,7 @@ async function scrapeScene({ html, query }, url, site, include) {
function scrapeMovie({ el, query }, url, site) { function scrapeMovie({ el, query }, url, site) {
const movie = { url, site }; const movie = { url, site };
movie.entryId = query.q('.rating_box').dataset.id; movie.entryId = new URL(url).pathname.split('/').slice(-1)[0]?.replace('.html', '');
movie.title = query.q('.title_bar span', true); movie.title = query.q('.title_bar span', true);
movie.covers = query.urls('#dvd-cover-flip > a'); movie.covers = query.urls('#dvd-cover-flip > a');
movie.channel = slugify(query.q('.update_date a', true), ''); movie.channel = slugify(query.q('.update_date a', true), '');