diff --git a/assets/js/ui/actions.js b/assets/js/ui/actions.js index 90b348f4..625fc4d6 100644 --- a/assets/js/ui/actions.js +++ b/assets/js/ui/actions.js @@ -221,8 +221,6 @@ function initUiActions(store, _router) { userId: store.state.auth.user?.id, }); - console.log(res.results); - return { releases: res?.results.map(result => curateRelease(result.release)) || [], actors: res?.actors.map(actor => curateActor(actor)) || [], diff --git a/public/img/tags/anal/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/anal/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..da85a9ab Binary files /dev/null and b/public/img/tags/anal/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/anal/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/anal/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..dbd57f49 Binary files /dev/null and b/public/img/tags/anal/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..5ff5c316 Binary files /dev/null and b/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..61821e45 Binary files /dev/null and b/public/img/tags/anal/lazy/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..fc39ffc8 Binary files /dev/null and b/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..799e9a0a Binary files /dev/null and b/public/img/tags/anal/thumbs/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..da85a9ab Binary files /dev/null and b/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..98273c6d Binary files /dev/null and b/public/img/tags/enhanced-boobs/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..5ff5c316 Binary files /dev/null and b/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..9fcc0c86 Binary files /dev/null and b/public/img/tags/enhanced-boobs/lazy/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..fc39ffc8 Binary files /dev/null and b/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..b0fcc1aa Binary files /dev/null and b/public/img/tags/enhanced-boobs/thumbs/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/facefucking/lazy/paige_owens_julesjordan.jpeg b/public/img/tags/facefucking/lazy/paige_owens_julesjordan.jpeg new file mode 100644 index 00000000..99d0750c Binary files /dev/null and b/public/img/tags/facefucking/lazy/paige_owens_julesjordan.jpeg differ diff --git a/public/img/tags/facefucking/paige_owens_julesjordan.jpeg b/public/img/tags/facefucking/paige_owens_julesjordan.jpeg new file mode 100644 index 00000000..3d53ae95 Binary files /dev/null and b/public/img/tags/facefucking/paige_owens_julesjordan.jpeg differ diff --git a/public/img/tags/facefucking/thumbs/paige_owens_julesjordan.jpeg b/public/img/tags/facefucking/thumbs/paige_owens_julesjordan.jpeg new file mode 100644 index 00000000..1bbf4305 Binary files /dev/null and b/public/img/tags/facefucking/thumbs/paige_owens_julesjordan.jpeg differ diff --git a/public/img/tags/latina/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/latina/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..a135a7a1 Binary files /dev/null and b/public/img/tags/latina/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/latina/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/latina/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..98273c6d Binary files /dev/null and b/public/img/tags/latina/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/latina/kelly_oliveira_teenfidelity_2.jpeg b/public/img/tags/latina/kelly_oliveira_teenfidelity_2.jpeg new file mode 100644 index 00000000..5217c079 Binary files /dev/null and b/public/img/tags/latina/kelly_oliveira_teenfidelity_2.jpeg differ diff --git a/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..0ca0b83a Binary files /dev/null and b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..9fcc0c86 Binary files /dev/null and b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_2.jpeg b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_2.jpeg new file mode 100644 index 00000000..b95b7c81 Binary files /dev/null and b/public/img/tags/latina/lazy/kelly_oliveira_teenfidelity_2.jpeg differ diff --git a/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity.jpeg b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity.jpeg new file mode 100644 index 00000000..fdb3c252 Binary files /dev/null and b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity.jpeg differ diff --git a/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_1.jpeg b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_1.jpeg new file mode 100644 index 00000000..b0fcc1aa Binary files /dev/null and b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_1.jpeg differ diff --git a/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_2.jpeg b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_2.jpeg new file mode 100644 index 00000000..efa82aed Binary files /dev/null and b/public/img/tags/latina/thumbs/kelly_oliveira_teenfidelity_2.jpeg differ diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 94f07f44..118b602b 100644 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -2161,7 +2161,7 @@ const sites = [ parent: 'cumlouder', }, { - name: 'FuckinVan', + name: 'FuckInVan', slug: 'fuckinvan', url: 'https://www.cumlouder.com/site/fuckinvan', description: "Welcome to the love van. With brand new wheels, perfect damping and provisiones of condoms, we're ready to fuck non-stop for miles. Do you want to get in?", @@ -2175,7 +2175,7 @@ const sites = [ parent: 'cumlouder', }, { - name: 'Ready or not... Here I Cum', + name: 'Ready Or Not... Here I Cum', slug: 'readyornothereicum', url: 'https://www.cumlouder.com/site/ready-or-not-here-i-cum', description: "Nacho Vidal arrives at CumLouder to celebrate our fourth anniversary with a new series where he's gonna demonstrate why he still is and still will be for a long time 'the leader' in what refers to Spanish porn. He'll be completely in his element by fucking around in any public place he'll feel like doing it for our series called 'Ready or not... Here I Cum'. Stay tuned and don't miss these great sex adventures in a cap, a carwash, on the highway or even in a car park. CumLouder wasn't about to quit the business and Nacho Vidal wasn't dead. Au contraire my dear friend, they're even more alive than ever before and ready to give you the best Latin porn you can find on the whole Internet for many more years.", @@ -2210,7 +2210,7 @@ const sites = [ parent: 'cumlouder', }, { - name: 'LivingWithaPornstar', + name: 'LivingWithAPornstar', slug: 'livingwithapornstar', url: 'https://www.cumlouder.com/site/livingwithapornstar', description: 'Pornstars have a life beyond porn. Do you want to know what they do from the moment they wake up until they go sleeping? We know you want to. The girls themselves are gonna tell you everything, we give them the camera and they show you all you want to know about them in the first person.', @@ -2224,7 +2224,7 @@ const sites = [ parent: 'cumlouder', }, { - name: 'Ex-girlfriends', + name: 'Ex-Girlfriends', slug: 'exgirlfriends', url: 'https://www.cumlouder.com/site/ex-girlfriends', description: 'We converted our pornstars into erotica goddesses, into our most glamorous lovers. By undressing their beautiful and sensual bodies. By laying them softly on a bed, caressing their silky breasts, kissing them passionately and conquering them by giving these women all our tender love. We light on the fire of their volcano and take them subtly, but inoxerably, to a lustful bang and orgasms that make them shudder when experiencing intense pleasure.', @@ -2267,7 +2267,7 @@ const sites = [ }, { name: 'POV', - slug: 'pov', + slug: 'cumlouderpov', url: 'https://www.cumlouder.com/site/pov', description: "Experience hot sex and naughty porn like you've never done before, in the first person, exclusively here on CumLouder! Enjoy this unique sexual experience where a computer screen is the only thing that separates you from the girl of your dreams... Fuck her!", parent: 'cumlouder', diff --git a/seeds/04_media.js b/seeds/04_media.js index 202e75ba..7e17b57c 100644 --- a/seeds/04_media.js +++ b/seeds/04_media.js @@ -608,6 +608,7 @@ const tagMedia = [ ['airtight', 9, 'Cindy Shine in GP1658'], ['anal', 5, 'Abella Danger', 'hardx'], ['anal', 'kira_noir_julesjordan', 'Kira Noir in "Kira Noir Opens Her Ass For Manuel"', 'julesjordan'], + ['anal', 'kelly_oliveira_teenfidelity_1', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'], ['anal', 'jane_wilde_evilangel_2', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'], ['anal', 'jynx_maze_evilangel', 'Jynx Maze in "Gape Me"', 'evilangel'], ['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3"', 'julesjordan'], @@ -785,13 +786,13 @@ const tagMedia = [ ['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'], ['dv-tp', 0, 'Luna Rival in SZ1490'], ['facefucking', 5, 'Mia Moore B', 'throated'], - ['facefucking', 6, 'Halle Hayes in "Towering Temptress"', '5kporn'], + ['facefucking', 'paige_owens_julesjordan', 'Paige Owens in "Butt Slut In Anal Training"', 'julesjordan'], ['facefucking', 'adria_rae_throated', 'Adria Rae in "Adria Rae Sucks Cock All Day"', 'throated'], + ['facefucking', 6, 'Halle Hayes in "Towering Temptress"', '5kporn'], ['facefucking', 'cathy_heaven_roccosiffredi', 'Cathy Heaven', 'roccosiffredi'], - ['facefucking', 1, 'Paige Owens in "Dark Meat 12"', 'evilangel'], + ['facefucking', 2, 'Jynx Maze', 'throated'], ['facefucking', 7, 'Anya Olsen and Audrey Snow in "Babysitter Busted Giving A BJ"', 'mommyblowsbest'], ['facefucking', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'], - ['facefucking', 2, 'Jynx Maze', 'throated'], ['facefucking', 4, 'Brooklyn Gray in "Throats Fucks 6"', 'evilangel'], ['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?"', 'julesjordan'], ['facial', 0, 'Brooklyn Gray in "All About Ass 4"', 'evilangel'], @@ -819,6 +820,7 @@ const tagMedia = [ ['enhanced-boobs', 'clanddi_jinkcego_ddfbusty_5', 'Clanddi Jinkcego & Rebecca Jessop', 'ddfbusty'], ['enhanced-boobs', 'trudy_photodromm_1', 'Trudy', 'photodromm'], ['enhanced-boobs', 'kenzie_anne_playboy', 'Miss Kenzie Anne in "Supercharged"', 'playboy'], + ['enhanced-boobs', 'kelly_oliveira_teenfidelity', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'], ['enhanced-boobs', 9, 'Putri Cinta', 'watch4beauty'], ['enhanced-boobs', 3, 'Ashly Anderson', 'passionhd'], ['enhanced-boobs', 'jennifer_mendez_bangbros', 'Jennifer Mendez', 'bangbros'], @@ -877,10 +879,11 @@ const tagMedia = [ ['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3"', 'julesjordan'], ['latex', 0, 'Bianca Beauchamp in "Cherry Nun"', 'latexlair'], ['latex', 1, 'Aletta Ocean in "Latex Dream"', 'alettaoceanlive'], - ['latina', 3, 'Gina Valentina', 'brazzers'], + ['latina', 'kelly_oliveira_teenfidelity_2', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'], ['latina', 2, 'Veronica Leal', 'herlimit'], ['latina', 1, 'Jynx Maze in "Big Anal Asses 2"', 'hardx'], ['latina', 0, 'Vienna Black', 'spizoo'], + ['latina', 3, 'Gina Valentina', 'brazzers'], ['lesbian', 'honey_gold_kaylani_lei_brazzers', 'Honey Gold and Kaylani Lei', 'brazzers'], ['lesbian', 0, 'Jenna Sativa and Alina Lopez in "Opposites Attract"', 'girlgirl'], ['maid', 0, 'Whitney Wright in "Dredd Up Your Ass 2"', 'julesjordan'], diff --git a/src/entities.js b/src/entities.js index 5968c18e..787eb8db 100644 --- a/src/entities.js +++ b/src/entities.js @@ -218,7 +218,7 @@ async function fetchEntitiesBySlug(entitySlugs, sort = 'asc') { const entitiesBySlug = entities.rows.reduce((accEntities, { entity }) => ({ ...accEntities, [entity.slug]: accEntities[entity.slug] || curateEntity(entity, true), - [urlToSiteSlug(entity.url)]: accEntities[entity.slug] || curateEntity(entity, true), + [urlToSiteSlug(entity.url)]: accEntities[urlToSiteSlug(entity.url)] || curateEntity(entity, true), }), {}); return entitiesBySlug; diff --git a/src/scrapers/cumlouder.js b/src/scrapers/cumlouder.js index f611fcdf..934e6b33 100644 --- a/src/scrapers/cumlouder.js +++ b/src/scrapers/cumlouder.js @@ -3,6 +3,7 @@ const { decode } = require('html-entities'); const qu = require('../utils/qu'); +const slugify = require('../utils/slugify'); function scrapeAll(items, _channel) { return items.map(({ query }) => { @@ -25,8 +26,6 @@ function scrapeAll(items, _channel) { poster, ]; - console.log(release); - return release; }); } @@ -53,21 +52,33 @@ function scrapeScene({ query }, channel, html) { release.tags = query.cnts('.video-top .tag-link'); release.poster = query.poster() || html.match(/urlImg\s*=\s*'(.*)';/)?.[1]; - release.trailer = query.video() || decode(html.match(/urlVideo\s*=\s*'(.*)';/)?.[1]); + release.video = query.video() || decode(html.match(/urlVideo\s*=\s*'(.*)';/)?.[1]); // no trailers but full-length videos - release.shootId = release.poster?.match(/\/rc(\d+)/)?.[1] || release.trailer?.match(/\/episodio_(\d+)/)?.[1]; + release.shootId = release.poster?.match(/\/rc(\d+)/)?.[1] || release.video?.match(/\/episodio_(\d+)/)?.[1]; - console.log(release); return release; } -function scrapeProfile({ query }) { +function scrapeProfile({ query, el }, channel) { const profile = {}; + const bio = query.all('.data-bio li').reduce((acc, bioEl) => ({ + ...acc, + [slugify(query.cnt(bioEl, 'strong'), '_')]: query.text(bioEl), + }), {}); + + profile.nationality = bio.nationality; + profile.dateOfBirth = qu.extractDate(bio.date_of_birth, 'DD-MM-YYYY'); + + profile.height = Number(bio.height) * 100; + profile.weight = parseInt(bio.weight, 10); + profile.eyes = bio.eye_color; + profile.hairColor = bio.hair_color; + profile.description = query.cnt('.data-bio p:last-of-type'); profile.avatar = query.img('.thumb-bio'); - console.log(profile); + profile.scenes = scrapeAll(qu.initAll(el, '.muestra-escena'), channel); return profile; } @@ -92,11 +103,11 @@ async function fetchScene(url, channel) { return res.status; } -async function fetchProfile(actor) { +async function fetchProfile(actor, channel) { const res = await qu.get(`https://www.cumlouder.com/girl/${actor.slug}/`, '.listado-escenas'); if (res.ok) { - return scrapeProfile(res.item); + return scrapeProfile(res.item, channel); } return res.status; diff --git a/src/scrapers/vixen.js b/src/scrapers/vixen.js index d00f5888..671e97ba 100644 --- a/src/scrapers/vixen.js +++ b/src/scrapers/vixen.js @@ -204,7 +204,7 @@ function scrapeUpcoming(scene, site) { release.poster = getPosterFallbacks(scene.images.poster); release.teaser = getTeaserFallbacks(scene.previews.poster); - release.entryId = (release.poster[0] || release.teaser[0])?.match(/\/(\d+)/)?.[1]; + release.entryId = (release.poster[0] || release.teaser[0])?.src?.match(/\/(\d+)/)?.[1]; return [release]; }