Fixed Bang scraper. Added Kink affiliate, tag photos.
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,7 @@ const campaignsFragment = `
|
||||||
url
|
url
|
||||||
banner {
|
banner {
|
||||||
id
|
id
|
||||||
|
type
|
||||||
width
|
width
|
||||||
height
|
height
|
||||||
ratio
|
ratio
|
||||||
|
|
|
@ -120,6 +120,7 @@ function initTagsActions(store, _router) {
|
||||||
id
|
id
|
||||||
width
|
width
|
||||||
height
|
height
|
||||||
|
type
|
||||||
ratio
|
ratio
|
||||||
entity {
|
entity {
|
||||||
id
|
id
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 498 KiB |
After Width: | Height: | Size: 145 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 191 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 1.8 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 1.8 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 583 KiB |
After Width: | Height: | Size: 456 KiB |
After Width: | Height: | Size: 469 KiB |
After Width: | Height: | Size: 587 KiB |
After Width: | Height: | Size: 579 KiB |
After Width: | Height: | Size: 522 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 2.8 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 505 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 857 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 2.7 MiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 1.6 MiB |
After Width: | Height: | Size: 28 KiB |
|
@ -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',
|
||||||
|
|
|
@ -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'],
|
||||||
|
|
|
@ -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,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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), '');
|
||||||
|
|