diff --git a/seeds/01_networks.js b/seeds/01_networks.js index c30f9f9c..f768ec97 100755 --- a/seeds/01_networks.js +++ b/seeds/01_networks.js @@ -112,6 +112,75 @@ const parentNetworks = [ ]; const networks = [ + // paper street media + { + slug: 'teamskeet', + name: 'Team Skeet', + url: 'https://www.teamskeet.com', + description: 'Welcome to teamskeet.com, the largest collection of exclusive teen porn sites and videos on the web. Check out our TeamSkeet porn sites now.', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'ts_network', + }, + }, + { + slug: 'mylf', + name: 'MYLF', + tags: ['milf'], + url: 'https://www.mylf.com', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'mylf_bundle', + }, + }, + { + slug: 'pervz', + name: 'Pervz', + url: 'https://www.pervz.com', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'pervbundle', + }, + }, + { + slug: 'swappz', + name: 'Swappz', + url: 'https://www.swappz.com', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'swap_bundle', + }, + }, + { + slug: 'freeuse', + name: 'Free Use', + url: 'https://www.freeuse.com', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'freeusebundle', + }, + }, + { + slug: 'familystrokes', + name: 'Family Strokes', + url: 'https://www.familystrokes.com/', + parent: 'paperstreetmedia', + parameters: { + endpoint: 'familybundle', + }, + }, + // charged, paper street media sister brand + { + slug: 'sayuncle', + name: 'Say Uncle', + url: 'https://www.sayuncle.com', + parent: 'chargedmedia', + tags: ['gay'], + parameters: { + endpoint: 'sau_network', + }, + }, + // etc { slug: '21sextreme', name: '21Sextreme', @@ -612,19 +681,6 @@ const networks = [ description: 'Check out the Official Mofos Network of best amateur pornsites. Girlfriend – voyeur - college girls - first anal & more. Bonus Milf sites for wifey lovers.', parent: 'aylo', }, - { - slug: 'mylf', - name: 'MYLF', - tags: ['milf'], - url: 'https://www.mylf.com', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - endpoint: 'mylf_bundle', - // modelPrefix: 'model_', - avatars: 'https://images.mylfcdn.net/tsv4/model/profiles', - }, - }, { slug: 'nebraskacoeds', name: 'Nebraska Coeds', @@ -714,18 +770,6 @@ const networks = [ parentSession: false, }, }, - { - slug: 'sayuncle', - name: 'Say Uncle', - url: 'https://www.sayuncle.com', - parent: 'chargedmedia', - tags: ['gay'], - parameters: { - // endpoint: 'sau-elastic-00gy5fg5ra', - fullEndpoint: 'sau_network', - modelPrefix: 'model_', - }, - }, { slug: 'score', name: 'SCORE', @@ -750,58 +794,6 @@ const networks = [ name: 'Spizoo', url: 'http://www.spizoo.com', }, - { - slug: 'teamskeet', - name: 'Team Skeet', - url: 'https://www.teamskeet.com', - description: 'Welcome to teamskeet.com, the largest collection of exclusive teen porn sites and videos on the web. Check out our TeamSkeet porn sites now.', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - fullEndpoint: 'ts_network', - modelPrefix: 'model_', - avatars: 'https://images.mylfcdn.net/tsv4/model/profiles', - }, - }, - { - slug: 'pervz', - name: 'Pervz', - url: 'https://www.pervz.com', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - }, - }, - { - slug: 'swappz', - name: 'Swappz', - url: 'https://www.swappz.com', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - endpoint: 'swap_bundle', - }, - }, - { - slug: 'freeuse', - name: 'Free Use', - url: 'https://www.freeuse.com', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - endpoint: 'freeusebundle', - }, - }, - { - slug: 'familystrokes', - name: 'Family Strokes', - url: 'https://www.familystrokes.com/', - parent: 'paperstreetmedia', - parameters: { - layout: 'search', - endpoint: 'familybundle', - }, - }, { slug: 'teencoreclub', name: 'Teen Core Club', diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 5afcf6e0..65bf720e 100755 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -5220,9 +5220,7 @@ const sites = [ name: 'Bait Bus', slug: 'baitbus', url: 'https://gaywire.com/websites/baitbus', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115111, @@ -5233,9 +5231,7 @@ const sites = [ name: 'Pound His Ass', slug: 'poundhisass', url: 'https://gaywire.com/websites/poundhisass', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115451, @@ -5246,9 +5242,7 @@ const sites = [ name: 'Out In Public', slug: 'outinpublic', url: 'https://gaywire.com/websites/outinpublic', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115381, @@ -5259,9 +5253,7 @@ const sites = [ name: 'Thug Hunter', slug: 'thughunter', url: 'https://gaywire.com/websites/thughunter', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 116021, @@ -5272,9 +5264,7 @@ const sites = [ name: 'Rub Him', slug: 'rubhim', url: 'https://gaywire.com/websites/rubhim', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115521, @@ -5285,9 +5275,7 @@ const sites = [ name: 'Sausage Party', slug: 'sausageparty', url: 'https://gaywire.com/websites/sausageparty', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115931, @@ -5298,9 +5286,7 @@ const sites = [ name: 'Its Gonna Hurt', slug: 'itsgonnahurt', url: 'https://gaywire.com/websites/itsgonnahurt', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 116161, @@ -5311,9 +5297,7 @@ const sites = [ name: 'Bareback Attack', slug: 'barebackattack', url: 'https://gaywire.com/websites/barebackattack', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115191, @@ -5324,9 +5308,7 @@ const sites = [ name: 'Bareback Casting', slug: 'barebackcasting', url: 'https://gaywire.com/websites/barebackcasting', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115201, @@ -5337,9 +5319,7 @@ const sites = [ name: 'Haze Him', slug: 'hazehim', url: 'https://gaywire.com/websites/hazehim', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 116141, @@ -5350,9 +5330,7 @@ const sites = [ name: 'UngloryHole', slug: 'ungloryhole', url: 'https://gaywire.com/websites/ungloryhole', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115591, @@ -5363,9 +5341,7 @@ const sites = [ name: 'Urban Invasion', slug: 'urbaninvasion', url: 'https://gaywire.com/websites/urbaninvasion', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115601, @@ -5376,9 +5352,7 @@ const sites = [ name: 'ExBF', slug: 'exbf', url: 'https://gaywire.com/websites/exbf', - tags: [ - 'gay', - ], + tags: ['gay'], parent: 'gaywire', parameters: { siteId: 115881, @@ -8425,7 +8399,6 @@ const sites = [ tags: ['bdsm', 'milf'], parent: 'mylf', parameters: { - layout: 'search', endpoint: 'mylf_dom', }, }, @@ -10966,676 +10939,6 @@ const sites = [ slug: 'rickysroom', url: 'https://rickysroom.com', }, - // SAY UNCLE - { - slug: 'blackgodz', - name: 'Black Godz', - url: 'https://www.blackgodz.com', - tags: [ - 'gay', - 'black-man', - ], - parent: 'sayuncle', - parameters: { - id: 'blackgodz', - }, - }, - { - slug: 'bottomgames', - name: 'BottomGames', - url: 'https://www.bottomgames.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'bottom-games', - }, - }, - { - slug: 'boysatcamp', - name: 'Boys At Camp', - url: 'https://www.boysatcamp.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'boys-at-camp', - }, - }, - { - slug: 'boysdoporn', - name: 'BoysDoPorn', - url: 'https://www.boysdoporn.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'boysdoporn', - }, - }, - { - slug: 'brothercrush', - name: 'Brother Crush', - url: 'https://www.brothercrush.com', - tags: [ - 'gay', - 'family', - ], - parent: 'sayuncle', - parameters: { - id: 'brother-crush', - }, - }, - { - slug: 'bullyhim', - name: 'Bully Him', - url: 'https://www.bullyhim.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'bully-him', - }, - }, - { - slug: 'dadcreep', - name: 'DadCreep', - url: 'https://www.dadcreep.com', - tags: [ - 'gay', - 'family', - ], - parent: 'sayuncle', - parameters: { - id: 'dad-creep', - }, - }, - { - slug: 'dickrides', - name: 'Dick Rides', - url: 'https://www.dickrides.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'dick-rides', - }, - }, - { - slug: 'doctortapes', - name: 'DoctorTapes', - url: 'https://www.doctortapes.com', - tags: [ - 'gay', - 'doctor', - ], - parent: 'sayuncle', - parameters: { - id: 'doctor-tapes', - }, - }, - { - slug: 'eurohunk', - name: 'Euro Hunk', - url: 'https://www.sayuncle.com/series/euro-hunk', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'euro-hunk', - }, - }, - { - slug: 'familydick', - name: 'Family Dick', - url: 'https://www.familydick.com', - tags: [ - 'gay', - 'family', - ], - parent: 'sayuncle', - parameters: { - id: 'familydick', - }, - }, - { - slug: 'freeusetwink', - name: 'Freeuse Twink', - url: 'https://www.freeusetwink.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'freeuse-twink', - }, - }, - { - slug: 'latinleche', - name: 'Latin Leche', - url: 'https://www.latinleche.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'latin-leche', - }, - }, - { - slug: 'militarydick', - name: 'MilitaryDick', - url: 'https://www.militarydick.com', - tags: [ - 'gay', - 'military', - ], - parent: 'sayuncle', - parameters: { - id: 'militarydick', - }, - }, - { - slug: 'missionaryboys', - name: 'Missionary Boys', - url: 'https://www.missionaryboys.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'missionary-boys', - }, - }, - { - slug: 'pigbottoms', - name: 'Pig Bottoms', - url: 'https://www.pigbottoms.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'pig-bottoms', - }, - }, - { - slug: 'sayuncleallstars', - name: 'SayUncle AllStars', - url: 'https://www.sayuncle.com/series/all-stars', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'all-stars', - }, - }, - { - slug: 'sayuncleclassics', - name: 'SayUncle Classics', - url: 'https://www.sayuncle.com/series/classics', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'classics', - }, - }, - { - slug: 'sayunclefeatures', - name: 'SayUncle Features', - url: 'https://www.sayuncle.com/series/features', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'features', - }, - }, - { - slug: 'sayunclelabs', - name: 'SayUncle Labs', - url: 'https://www.sayuncle.com/series/labs', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'labs', - }, - }, - { - slug: 'sayunclexblakemason', - name: 'SayUncle X Blake Mason', - url: 'https://www.sayuncle.com/series/blake-mason', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'blake-mason', - }, - }, - { - slug: 'sayunclexboyfun', - name: 'SayUncle X BoyFun', - url: 'https://www.sayuncle.com/series/boyfun', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'boyfun', - }, - }, - { - slug: 'sayunclexcallumandcole', - name: 'SayUncle X Callum and Cole', - url: 'https://www.sayuncle.com/series/callum-and-cole', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'callum-and-cole', - }, - }, - { - slug: 'sayunclexclubbangboys', - name: 'SayUncle X Club Bang Boys', - url: 'https://www.sayuncle.com/series/clubbangboys', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'clubbangboys', - }, - }, - { - slug: 'sayunclexcocksuremen', - name: 'SayUncle X Cocksure Men', - url: 'https://www.sayuncle.com/series/cocksure-men', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'cocksure-men', - }, - }, - { - slug: 'sayunclexcutlersden', - name: 'SayUncle X Cutlers Den', - url: 'https://www.sayuncle.com/series/cutlers-den', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'cutlers-den', - }, - }, - { - slug: 'sayunclexfrankfurtsexstories', - name: 'SayUncle X Frankfurt Sex Stories', - url: 'https://www.sayuncle.com/series/frankfurt-sex-stories', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'frankfurt-sex-stories', - }, - }, - { - slug: 'sayunclexgayphoenixxx', - name: 'SayUncle X GayPhoenixxx', - url: 'https://www.sayuncle.com/series/gayphoenixxx', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'gayphoenixxx', - }, - }, - { - slug: 'sayunclexgentlemenscloset', - name: "SayUncle X Gentlemen's Closet", - url: 'https://www.sayuncle.com/series/gentlemens-closet', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'gentlemens-closet', - }, - }, - { - slug: 'sayunclexhotdadshotlads', - name: 'SayUncle X Hot Dads Hot Lads', - url: 'https://www.sayuncle.com/series/hot-dads-hot-lads', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'hot-dads-hot-lads', - }, - }, - { - slug: 'sayunclexjaxthirio', - name: 'SayUncle X Jax Thirio', - url: 'https://www.sayuncle.com/series/jax-thirio', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'jax-thirio', - }, - }, - { - slug: 'sayunclexjayseabrook', - name: 'SayUncle X Jay Seabrook', - url: 'https://www.sayuncle.com/series/jay-seabrook', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'jay-seabrook', - }, - }, - { - slug: 'sayunclexlancecharger', - name: 'SayUncle X Lance Charger', - url: 'https://www.sayuncle.com/series/lance-charger', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'lance-charger', - }, - }, - { - slug: 'sayunclexlatinoguysporn', - name: 'SayUncle X LatinoGuysPorn', - url: 'https://www.sayuncle.com/series/latino-guys-porn', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'latino-guys-porn', - }, - }, - { - slug: 'sayunclexmanuelskye', - name: 'SayUncle X Manuel Skye', - url: 'https://www.sayuncle.com/series/manuel-skye', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'manuel-skye', - }, - }, - { - slug: 'sayunclexmasculinejason', - name: 'SayUncle X Masculine Jason', - url: 'https://www.sayuncle.com/series/masculine-jason', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'masculine-jason', - }, - }, - { - slug: 'sayunclexmaxxstoner', - name: 'SayUncle X Maxx Stoner', - url: 'https://www.sayuncle.com/series/maxx-stoner', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'maxx-stoner', - }, - }, - { - slug: 'sayunclexnastydaddy', - name: 'SayUncle X Nasty Daddy', - url: 'https://www.sayuncle.com/series/nasty-daddy', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'nasty-daddy', - }, - }, - { - slug: 'sayunclexofloveandflesh', - name: 'SayUncle X OfLoveAndFlesh', - url: 'https://www.sayuncle.com/series/ofloveandflesh', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'ofloveandflesh', - }, - }, - { - slug: 'sayunclexpakinky', - name: 'SayUncle X PAKinky', - url: 'https://www.sayuncle.com/series/pakinky', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'pakinky', - }, - }, - { - slug: 'sayunclexpabloysebascortes', - name: 'SayUncle X Pablo Y Sebas', - url: 'https://www.sayuncle.com/series/pablo-y-sebas-cortes', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'pablo-y-sebas-cortes', - }, - }, - { - slug: 'sayunclexrandyblue', - name: 'SayUncle X Randy Blue', - url: 'https://www.sayuncle.com/series/randy-blue', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'randy-blue', - }, - }, - { - slug: 'sayunclexraweuro', - name: 'SayUncle X RawEuro', - url: 'https://www.sayuncle.com/series/raweuro', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'raweuro', - }, - }, - { - slug: 'sayunclexsantiagowet', - name: 'SayUncle X Santiago Wet', - url: 'https://www.sayuncle.com/series/santiago-wet', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'santiago-wet', - }, - }, - { - slug: 'sayunclexsebaterry', - name: 'SayUncle X Seba Terry', - url: 'https://www.sayuncle.com/series/seba-terry', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'seba-terry', - }, - }, - { - slug: 'sayunclexsupertwinks', - name: 'SayUncle X Super Twinks', - url: 'https://www.sayuncle.com/series/super-twinks', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'super-twinks', - }, - }, - { - slug: 'sayunclextrentonducati', - name: 'SayUncle X Trenton Ducati', - url: 'https://www.sayuncle.com/series/trenton-ducati', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'trenton-ducati', - }, - }, - { - slug: 'stayhomebro', - name: 'StayHomeBro', - url: 'https://www.stayhomebro.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'stayhomebro', - }, - }, - { - slug: 'stickyrub', - name: 'StickyRub', - url: 'https://www.stickyrub.com', - tags: [ - 'gay', - 'massage', - ], - parent: 'sayuncle', - parameters: { - id: 'stickyrub', - }, - }, - { - slug: 'therapydick', - name: 'TherapyDick', - url: 'https://www.therapydick.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'therapydick', - }, - }, - { - slug: 'troopsex', - name: 'TroopSex', - url: 'https://www.troopsex.com', - tags: [ - 'gay', - 'military', - ], - parent: 'sayuncle', - parameters: { - id: 'troopsex', - }, - }, - { - slug: 'twinktrade', - name: 'Twink Trade', - url: 'https://www.twinktrade.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'twinktrade', - }, - }, - { - slug: 'varsitygrip', - name: 'Varsity Grip', - url: 'https://www.varsitygrip.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'varsitygrip', - }, - }, - { - slug: 'yesfather', - name: 'YesFather', - url: 'https://www.yesfather.com', - tags: [ - 'gay', - 'religion', - ], - parent: 'sayuncle', - parameters: { - id: 'yes-father', - }, - }, - { - slug: 'youngperps', - name: 'Young Perps', - url: 'https://www.youngperps.com', - tags: [ - 'gay', - ], - parent: 'sayuncle', - parameters: { - id: 'young-perps', - }, - }, // SCORE { name: '18 Eighteen', @@ -12581,543 +11884,6 @@ const sites = [ path: '/wife-fucking-scenes', }, }, - /* legacy - { - name: '18 Eighteen', - slug: '18eighteen', - url: 'https://www.18eighteen.com', - parent: 'score', - parameters: { path: '/xxx-teen-videos' }, - }, - { - name: '40 Something Mag', - slug: '40somethingmag', - url: 'https://www.40somethingmag.com', - parameters: { path: '/xxx-mature-videos' }, - parent: 'score', - }, - { - name: '50 Plus MILFs', - slug: '50plusmilfs', - url: 'https://www.50plusmilfs.com', - parameters: { path: '/xxx-milf-videos' }, - parent: 'score', - }, - { - name: '60 Plus MILFs', - slug: '60plusmilfs', - url: 'https://www.60plusmilfs.com', - parameters: { path: '/xxx-granny-videos' }, - parent: 'score', - }, - { - name: 'Ashley Sage Ellison', - slug: 'ashleysageellison', - url: 'https://www.bigboobbundle.com/ashleysageellison', - parameters: { path: '/videos', actors: ['Ashley Sage Ellison'] }, - parent: 'score', - }, - { - name: 'Autumn Jade', - slug: 'autumnjade', - url: 'https://www.bigboobbundle.com/autumn-jade', - parent: 'score', - parameters: { path: '/videos', actors: ['Autumn Jade'] }, - }, - { - name: 'Big Boob Bundle', - slug: 'bigboobbundle', - url: 'https://www.bigboobbundle.com', - parent: 'score', - }, - { - name: 'Big Boobs POV', - slug: 'bigboobspov', - url: 'https://www.scorepass.com/bigboobspov', - parent: 'score', - }, - { - name: 'Big Tit Angela White', - slug: 'bigtitangelawhite', - url: 'https://www.bigboobbundle.com/bigtitangelawhite', - parameters: { path: '/videos', actors: ['Angela White'] }, // no dates available - parent: 'score', - }, - { - name: 'Big Tit Hitomi', - slug: 'bigtithitomi', - url: 'https://www.bigboobbundle.com/bigtithitomi', - parameters: { path: '/videos', actors: ['Hitomi'] }, - parent: 'score', - }, - { - name: 'Big Tit Hooker', - slug: 'bigtithooker', - url: 'https://www.scorepass.com/bigtithooker', - parent: 'score', - }, - { - name: 'Big Tit Terry Nova', - slug: 'bigtitterrynova', - url: 'https://www.bigboobbundle.com/bigtitterrynova', - parameters: { path: '/videos', actors: ['Terry Nova'] }, - parent: 'score', - }, - { - name: 'Big Tit Venera', - slug: 'bigtitvenera', - url: 'https://www.bigboobbundle.com/bigtitvenera', - parent: 'score', - }, - { - name: 'Black And Stacked', - slug: 'blackandstacked', - url: 'https://www.scorepass.com/blackandstacked', - parent: 'score', - }, - { - name: 'Boned At Home', - slug: 'bonedathome', - url: 'https://www.scorepass.com/bonedathome', - parent: 'score', - }, - { - name: 'Bootylicious Mag', - slug: 'bootyliciousmag', - url: 'https://www.bootyliciousmag.com', - parent: 'score', - }, - { - name: 'Busty Angelique', - slug: 'bustyangelique', - url: 'https://www.bigboobbundle.com/bustyangelique', - parent: 'score', - }, - { - name: 'Busty Arianna', - slug: 'bustyarianna', - url: 'https://www.bigboobbundle.com/bustyarianna', - parent: 'score', - }, - { - name: 'Busty Danni Ashe', - slug: 'bustydanniashe', - url: 'https://www.bigboobbundle.com/bustydanniashe', - parent: 'score', - }, - { - name: 'Busty Dusty Stash', - slug: 'bustydustystash', - url: 'https://www.bigboobbundle.com/bustydustystash', - parent: 'score', - }, - { - name: 'Busty Ines Cudna', - slug: 'bustyinescudna', - url: 'https://www.bigboobbundle.com/bustyinescudna', - parent: 'score', - }, - { - name: 'Busty Kelly Kay', - slug: 'bustykellykay', - url: 'https://www.bigboobbundle.com/bustykellykay', - parent: 'score', - }, - { - name: 'Busty Kerry Marie', - slug: 'bustykerrymarie', - url: 'https://www.bigboobbundle.com/bustykerrymarie', - parent: 'score', - }, - { - name: 'Busty Lorna Morgan', - slug: 'bustylornamorgan', - url: 'https://www.bigboobbundle.com/bustylornamorgan', - parent: 'score', - }, - { - name: 'Busty Merilyn', - slug: 'bustymerilyn', - url: 'https://www.scorepass.com/bustymerilyn', - parent: 'score', - }, - { - name: 'Busty Old Sluts', - slug: 'bustyoldsluts', - url: 'https://www.milfbundle.com/bustyoldsluts', - parent: 'score', - }, - { - name: 'Busty Sammie Black', - slug: 'bustysammieblack', - url: 'https://www.bigboobbundle.com/bustysammieblack', - parent: 'score', - }, - { - name: 'Cherry Brady', - slug: 'cherrybrady', - url: 'https://www.bigboobbundle.com/cherrybrady', - parent: 'score', - }, - { - name: 'Chloes World', - slug: 'chloesworld', - url: 'https://www.scorepass.com/chloesworld', - parent: 'score', - }, - { - name: 'Christy Marks', - slug: 'christymarks', - url: 'https://www.scorepass.com/christymarks', - parent: 'score', - }, - { - name: 'Creampie for Granny', - slug: 'creampieforgranny', - url: 'https://www.milfbundle.com/creampieforgranny', - parent: 'score', - }, - { - name: 'Crystal Gunns World', - slug: 'crystalgunnsworld', - url: 'https://www.bigboobbundle.com/crystalgunnsworld', - parent: 'score', - }, - { - name: 'Daylene Rio', - slug: 'daylenerio', - url: 'https://www.bigboobbundle.com/daylenerio', - parent: 'score', - }, - { - name: 'Desiraes World', - slug: 'desiraesworld', - url: 'https://www.bigboobbundle.com/desiraesworld', - parent: 'score', - }, - { - name: 'Diane Poppos', - slug: 'dianepoppos', - url: 'https://www.bigboobbundle.com/dianepoppos', - parent: 'score', - }, - { - name: 'Eva Notty Videos', - slug: 'evanottyvideos', - url: 'https://www.bigboobbundle.com/evanottyvideos', - parent: 'score', - }, - { - name: 'Feed Her Fuck Her', - slug: 'feedherfuckher', - url: 'https://www.scorepass.com/feedherfuckher', - parent: 'score', - }, - { - name: 'Flat And Fucked MILFs', - slug: 'flatandfuckedmilfs', - url: 'https://www.milfbundle.com/flatandfuckedmilfs', - parent: 'score', - }, - { - name: 'Granny Gets A Facial', - slug: 'grannygetsafacial', - url: 'https://www.milfbundle.com/grannygetsafacial', - parent: 'score', - }, - { - name: 'Granny Loves BBC', - slug: 'grannylovesbbc', - url: 'https://www.milfbundle.com/grannylovesbbc', - parent: 'score', - }, - { - name: 'Granny Loves Young Cock', - slug: 'grannylovesyoungcock', - url: 'https://www.milfbundle.com/grannylovesyoungcock', - parent: 'score', - }, - { - name: 'Home Alone MILFs', - slug: 'homealonemilfs', - url: 'https://www.milfbundle.com/homealonemilfs', - parent: 'score', - }, - { - name: 'I Boned Your Mom', - slug: 'ibonedyourmom', - url: 'https://www.milfbundle.com/ibonedyourmom', - parent: 'score', - }, - { - name: 'I Fucked the Boss', - slug: 'ifuckedtheboss', - url: 'https://www.milfbundle.com/ifuckedtheboss', - parent: 'score', - }, - { - name: 'Jessica Turner', - slug: 'jessicaturner', - url: 'https://www.bigboobbundle.com/jessicaturner', - parent: 'score', - }, - { - name: 'Joana Bliss', - slug: 'joanabliss', - url: 'https://www.bigboobbundle.com/joanabliss', - parent: 'score', - }, - { - name: 'Julia Miles', - slug: 'juliamiles', - url: 'https://www.bigboobbundle.com/juliamiles', - parent: 'score', - }, - { - name: 'Karina Hart', - slug: 'karinahart', - url: 'https://www.scorepass.com/karinahart', - parent: 'score', - }, - { - name: 'Karla James', - slug: 'karlajames', - url: 'https://www.bigboobbundle.com/karlajames', - parent: 'score', - }, - { - name: 'Leanne Crow Videos', - slug: 'leannecrowvideos', - url: 'https://www.bigboobbundle.com/leannecrowvideos', - parent: 'score', - }, - { - name: 'Leg Sex', - slug: 'legsex', - url: 'https://www.legsex.com', - parent: 'score', - }, - { - name: 'Linseys World', - slug: 'linseysworld', - url: 'https://www.scorepass.com/linseysworld', - parent: 'score', - }, - { - name: 'Mega Tits Minka', - slug: 'megatitsminka', - url: 'https://www.bigboobbundle.com/megatitsminka', - parent: 'score', - }, - { - name: 'Micky Bells', - slug: 'mickybells', - url: 'https://www.bigboobbundle.com/mickybells', - parent: 'score', - }, - { - name: 'MILF Bundle', - slug: 'milfbundle', - url: 'https://www.milfbundle.com', - parent: 'score', - }, - { - name: 'Teaming Cock', - slug: 'milfthreesomes', - url: 'https://www.milfbundle.com/milfthreesomes', - parent: 'score', - }, - { - name: 'MILF Tugs', - slug: 'milftugs', - url: 'https://www.milfbundle.com/milftugs', - parent: 'score', - }, - { - name: 'Natalie Fiore', - slug: 'nataliefiore', - url: 'https://www.bigboobbundle.com/nataliefiore', - parent: 'score', - }, - { - name: 'Naughty Footjobs', - slug: 'naughtyfootjobs', - url: 'https://www.scorepass.com/naughtyfootjobs', - parent: 'score', - }, - { - name: 'Naughty Mag', - slug: 'naughtymag', - url: 'https://www.naughtymag.com', - parent: 'score', - }, - { - name: 'Naughty Tugs', - slug: 'naughtytugs', - url: 'https://www.scorepass.com/naughtytugs', - parent: 'score', - }, - { - name: 'Nicole Peters', - slug: 'nicolepeters', - url: 'https://www.bigboobbundle.com/nicolepeters', - parent: 'score', - }, - { - name: 'Old Horny MILFs', - slug: 'oldhornymilfs', - url: 'https://www.milfbundle.com/oldhornymilfs', - parent: 'score', - }, - { - name: 'Picking Up Pussy', - slug: 'pickinguppussy', - url: 'https://www.scorepass.com/pickinguppussy', - parent: 'score', - }, - { - name: 'Porn Loser', - slug: 'pornloser', - url: 'https://www.scorepass.com/pornloser', - parent: 'score', - }, - { - name: 'Porn Mega Load', - slug: 'pornmegaload', - url: 'https://www.pornmegaload.com', - parent: 'score', - }, - { - name: 'SaRennas World', - slug: 'sarennasworld', - url: 'https://www.bigboobbundle.com/sarennasworld', - parent: 'score', - }, - { - name: 'Scoreland', - slug: 'scoreland', - url: 'https://www.scoreland.com', - parent: 'score', - parameters: { path: '/big-boob-videos' }, - priority: 3, - }, - { - name: 'Scoreland2', - slug: 'scoreland2', - url: 'https://www.scoreland2.com', - parent: 'score', - parameters: { path: '/big-boob-scenes' }, - priority: 1, - }, - { - name: 'Score Classics', - slug: 'scoreclassics', - url: 'https://www.scoreclassics.com', - parent: 'score', - parameters: { path: '/classic-boob-videos' }, - priority: 1, - }, - { - name: 'Scoreland TV', - slug: 'scorelandtv', - url: 'https://www.scorepass.com/scorelandtv', - parent: 'score', - priority: 1, - }, - { - name: 'ScoreTV', - slug: 'scoretv', - url: 'https://www.scoretv.tv', - parent: 'score', - priority: 1, - }, - { - name: 'Score Videos', - slug: 'scorevideos', - url: 'https://www.scorevideos.com', - parent: 'score', - parameters: { path: '/porn-videos' }, - priority: 2, - }, - { - name: 'Sha Rizel Videos', - slug: 'sharizelvideos', - url: 'https://www.bigboobbundle.com/sharizelvideos', - parent: 'score', - }, - { - name: 'Silver Sluts', - slug: 'silversluts', - url: 'https://www.milfbundle.com/silversluts', - parent: 'score', - }, - { - name: 'Stacy Vandenberg Boobs', - slug: 'stacyvandenbergboobs', - url: 'https://www.bigboobbundle.com/stacyvandenbergboobs', - parent: 'score', - }, - { - name: 'Susie Wildin', - slug: 'susiewildin', - url: 'https://www.bigboobbundle.com/susiewildin', - parent: 'score', - }, - { - name: 'Tawny Peaks', - slug: 'tawnypeaks', - url: 'https://www.bigboobbundle.com/tawny-peaks', - parent: 'score', - }, - { - name: 'Tiffany Towers', - slug: 'tiffanytowers', - url: 'https://www.bigboobbundle.com/tiffany-towers', - parent: 'score', - }, - { - name: 'Tits And Tugs', - slug: 'titsandtugs', - url: 'https://www.scorepass.com/titsandtugs', - parent: 'score', - }, - { - name: 'TNA Tryouts', - slug: 'tnatryouts', - url: 'https://www.scorepass.com/tnatryouts', - parent: 'score', - }, - { - name: 'Valory Irene', - slug: 'valoryirene', - url: 'https://www.bigboobbundle.com/valoryirene', - parent: 'score', - }, - { - name: 'XL Girls', - slug: 'xlgirls', - url: 'https://www.xlgirls.com', - parent: 'score', - }, - { - name: 'Your Mom Loves Anal', - slug: 'yourmomlovesanal', - url: 'https://www.milfbundle.com/yourmomlovesanal', - parent: 'score', - }, - { - name: 'Your Mom\'s Got Big Tits', - slug: 'yourmomsgotbigtits', - url: 'https://www.milfbundle.com/yourmomsgotbigtits', - parent: 'score', - }, - { - name: 'Your Wife My Meat', - slug: 'yourwifemymeat', - url: 'https://www.milfbundle.com/yourwifemymeat', - parent: 'score', - }, - */ // SEX LIKE REAL { name: 'Sex Like Real', @@ -13394,41 +12160,33 @@ const sites = [ name: 'Anal Euro', url: 'https://www.teamskeet.com/series/anal-euro', alias: ['ae'], - parameters: { id: 'anal-euro' }, parent: 'teamskeet', }, { - // also on MYLF premium slug: 'badmilfs', name: 'Bad MILFs', url: 'https://www.teamskeet.com/series/bad-milfs', parent: 'teamskeet', - parameters: { - id: 'bad-milfs', - }, }, { slug: 'blackstepdad', name: 'Black StepDad', url: 'https://www.teamskeet.com/series/black-stepdad', alias: ['bsd'], - parameters: { id: 'black-stepdad' }, parent: 'teamskeet', }, { slug: 'exxxtrasmall', name: 'Exxxtra Small', alias: ['exs', 'ext'], - url: 'https://www.exxxtrasmall.com', - parameters: { id: 'exxxtrasmall' }, + url: 'https://www.teamskeet.com/series/exxxtrasmall', parent: 'teamskeet', }, { slug: 'teenpies', name: 'Teen Pies', alias: ['tp'], - url: 'https://www.teenpies.com', - parameters: { id: 'teenpies' }, + url: 'https://www.teamskeet.com/series/teenpies', parent: 'teamskeet', }, { @@ -13436,56 +12194,49 @@ const sites = [ name: 'I Made Porn', url: 'https://www.teamskeet.com/series/i-made-porn', alias: ['imp'], - parameters: { id: 'i-made-porn' }, parent: 'teamskeet', }, { slug: 'innocenthigh', name: 'Innocent High', alias: ['ih', 'inh'], - url: 'https://www.innocenthigh.com', - parameters: { id: 'innocenthigh' }, + url: 'https://www.teamskeet.com/series/innocenthigh', parent: 'teamskeet', }, { slug: 'kissingsis', name: 'Kissing Sis', alias: ['ss'], - url: 'https://www.kissingsis.com', - parameters: { id: 'kissing-sis' }, + url: 'https://www.teamskeet.com/series/kissing-sis', parent: 'teamskeet', }, { slug: 'latinateam', name: 'Latina Team', alias: ['lt'], - url: 'https://www.latinateam.com', - parameters: { id: 'latina-team' }, + url: 'https://www.teamskeet.com/series/latina-team', parent: 'teamskeet', }, { slug: 'teencurves', name: 'Teen Curves', alias: ['tc'], - url: 'https://www.teencurves.com', - parameters: { id: 'teen-curves' }, + url: 'https://www.teamskeet.com/series/teen-curves', parent: 'teamskeet', }, { slug: 'cfnmteens', name: 'CFNM Teens', alias: ['cfnm', 'cfnmt'], - url: 'https://www.cfnmteens.com', - parameters: { id: 'cfnm-teens' }, + url: 'https://www.teamskeet.com/series/cfnm-teens', parent: 'teamskeet', }, { slug: 'teensloveanal', name: 'Teens Love Anal', alias: ['tla'], - url: 'https://www.teensloveanal.com', + url: 'https://www.teamskeet.com/series/teens-love-anal', tags: ['anal'], - parameters: { id: 'teens-love-anal' }, parent: 'teamskeet', }, { @@ -13494,24 +12245,19 @@ const sites = [ alias: ['bsc'], url: 'https://www.teamskeet.com/series/my-babysitters-club', parent: 'teamskeet', - parameters: { - id: 'my-babysitters-club', - }, }, { slug: 'shesnew', name: 'She\'s New', alias: ['sn', 'ssn'], - url: 'https://www.shesnew.com', - parameters: { id: 'shesnew' }, + url: 'https://www.teamskeet.com/series/shesnew', parent: 'teamskeet', }, { slug: 'teensdoporn', name: 'Teens Do Porn', alias: ['tdp'], - url: 'https://www.teensdoporn.com', - parameters: { id: 'teens-do-porn' }, + url: 'https://www.teamskeet.com/series/teens-do-porn', parent: 'teamskeet', }, { @@ -13520,7 +12266,6 @@ const sites = [ url: 'https://www.teamskeet.com/series/sex-and-grades', tags: ['schoolgirl'], alias: ['sag'], - parameters: { id: 'sex-and-grades' }, parent: 'teamskeet', }, { @@ -13528,7 +12273,6 @@ const sites = [ name: 'Spanish 18', url: 'https://www.teamskeet.com/series/spanish18', alias: ['spa18'], - parameters: { id: 'spanish18' }, parent: 'teamskeet', }, { @@ -13536,127 +12280,111 @@ const sites = [ name: 'Petite Teens 18', alias: ['pt18'], url: 'https://www.teamskeet.com/series/petiteteens18', - parameters: { id: 'petiteteens18' }, parent: 'teamskeet', }, { slug: 'povlife', name: 'POV Life', alias: ['pov'], - url: 'https://www.povlife.com', - parameters: { id: 'povlife' }, + url: 'https://www.teamskeet.com/series/povlife', parent: 'teamskeet', }, { slug: 'therealworkout', name: 'The Real Workout', alias: ['trw'], - url: 'https://www.therealworkout.com', - parameters: { id: 'therealworkout' }, + url: 'https://www.teamskeet.com/series/therealworkout', parent: 'teamskeet', }, { slug: 'thisgirlsucks', name: 'This Girl Sucks', alias: ['tgs'], - url: 'https://www.thisgirlsucks.com', - parameters: { id: 'this-girl-sucks' }, + url: 'https://www.teamskeet.com/series/this-girl-sucks', parent: 'teamskeet', }, { slug: 'teenslovemoney', name: 'Teens Love Money', alias: ['tlm'], - url: 'https://www.teenslovemoney.com', - parameters: { id: 'teens-love-money' }, + url: 'https://www.teamskeet.com/series/teens-love-money', parent: 'teamskeet', }, { slug: 'oyeloca', name: 'Oye Loca', alias: ['ol'], - url: 'https://www.oyeloca.com', + url: 'https://www.teamskeet.com/series/oyeloca', tags: ['latina'], - parameters: { id: 'oyeloca' }, parent: 'teamskeet', }, { slug: 'tittyattack', name: 'Titty Attack', alias: ['ta'], - url: 'https://www.tittyattack.com', - parameters: { id: 'titty-attack' }, + url: 'https://www.teamskeet.com/series/titty-attack', parent: 'teamskeet', }, { slug: 'teenyblack', name: 'Teeny Black', alias: ['tb'], - url: 'https://www.teenyblack.com', - parameters: { id: 'teenyblack' }, + url: 'https://www.teamskeet.com/series/teenyblack', parent: 'teamskeet', }, { slug: 'theloft', name: 'The Loft', url: 'https://www.teamskeet.com/series/the-loft', - parameters: { id: 'the-loft' }, parent: 'teamskeet', }, { slug: 'lusthd', name: 'Lust HD', alias: ['lhd'], - url: 'https://www.lusthd.com', - parameters: { id: 'lusthd' }, + url: 'https://www.teamskeet.com/series/lusthd', parent: 'teamskeet', }, { slug: 'rubateen', name: 'Rub A Teen', alias: ['rat'], - url: 'https://www.rubateen.com', - parameters: { id: 'rubateen' }, + url: 'https://www.teamskeet.com/series/rubateen', parent: 'teamskeet', }, { slug: 'herfreshmanyear', name: 'Her Freshman Year', alias: ['hfy'], - url: 'https://www.herfreshmanyear.com', - parameters: { id: 'her-freshman-year' }, + url: 'https://www.teamskeet.com/series/her-freshman-year', parent: 'teamskeet', }, { slug: 'selfdesire', name: 'Self Desire', alias: ['sd'], - url: 'https://www.selfdesire.com', - parameters: { id: 'self-desire' }, + url: 'https://www.teamskeet.com/series/self-desire', parent: 'teamskeet', }, { slug: 'solointerviews', name: 'Solo Interviews', alias: ['si'], - url: 'https://www.solointerviews.com', - parameters: { id: 'solo-interviews' }, + url: 'https://www.teamskeet.com/series/solo-interviews', parent: 'teamskeet', }, { slug: 'dyked', name: 'Dyked', alias: ['dyk'], - url: 'https://www.dyked.com', - parameters: { id: 'dyked' }, + url: 'https://www.teamskeet.com/series/dyked', parent: 'teamskeet', }, { slug: 'gingerpatch', name: 'Ginger Patch', alias: ['gp'], - url: 'https://www.gingerpatch.com', - parameters: { id: 'gingerpatch' }, + url: 'https://www.teamskeet.com/series/gingerpatch', parent: 'teamskeet', }, { @@ -13664,16 +12392,14 @@ const sites = [ name: 'Brace Faced', alias: ['bfd'], tags: ['braces'], - url: 'https://www.bracefaced.com', - parameters: { id: 'bracefaced' }, + url: 'https://www.teamskeet.com/series/bracefaced', parent: 'teamskeet', }, { slug: 'teenjoi', name: 'Teen JOI', alias: ['joi'], - url: 'https://www.teenjoi.com', - parameters: { id: 'teen-joi' }, + url: 'https://www.teamskeet.com/series/teen-joi', parent: 'teamskeet', }, { @@ -13681,8 +12407,7 @@ const sites = [ name: 'Step Siblings', alias: ['sss', 'steps'], tags: ['family'], - url: 'https://www.stepsiblings.com', - parameters: { id: 'stepsiblings' }, + url: 'https://www.teamskeet.com/series/stepsiblings', parent: 'teamskeet', }, { @@ -13690,22 +12415,19 @@ const sites = [ name: 'StayHomePOV', alias: ['shp', 'steps'], tags: ['pov', 'quarantine'], - url: 'https://www.stayhomepov.com', - parameters: { id: 'stay-home-pov' }, + url: 'https://www.teamskeet.com/series/stay-home-pov', parent: 'teamskeet', }, { slug: 'afterdark', name: 'After Dark', url: 'https://www.teamskeet.com/series/after-dark', - parameters: { id: 'after-dark' }, parent: 'teamskeet', }, { slug: 'messyjessy', name: 'Messy Jessy', url: 'https://www.teamskeet.com/series/messy-jessy', - parameters: { id: 'messy-jessy' }, parent: 'teamskeet', }, { @@ -13713,7 +12435,6 @@ const sites = [ name: 'Team Skeet Classics', url: 'https://www.teamskeet.com/series/classics', alias: ['cls'], - parameters: { id: 'classics' }, parent: 'teamskeet', }, { @@ -13721,14 +12442,12 @@ const sites = [ name: 'Team Skeet Labs', alias: ['tlb', 'team skeet extras'], url: 'https://www.teamskeet.com/series/labs', - parameters: { id: 'labs' }, parent: 'teamskeet', }, { slug: 'teamskeetfeatures', name: 'Team Skeet Features', url: 'https://www.teamskeet.com/series/features', - parameters: { id: 'features' }, parent: 'teamskeet', }, { @@ -13736,7 +12455,6 @@ const sites = [ name: 'Team Skeet Allstars', alias: ['tsa', 'steps'], url: 'https://www.teamskeet.com/series/all-stars', - parameters: { id: 'all-stars' }, parent: 'teamskeet', }, { @@ -13744,19 +12462,14 @@ const sites = [ name: 'Team Skeet Selects', alias: ['tsc'], url: 'https://www.teamskeet.com/series/selects', - parameters: { id: 'selects' }, parent: 'teamskeet', }, { slug: 'brattamer', name: 'Brat Tamer', - url: 'https://www.mylf.com/series/brat-tamer', + url: 'https://www.teamskeet.com/series/brat-tamer', parent: 'teamskeet', - parameters: { - id: 'brat-tamer', - }, }, - /* TEAM SKEET premium */ { slug: 'teensloveblackcocks', name: 'Teens Love Black Cocks', @@ -13764,18 +12477,12 @@ const sites = [ tags: ['bbc'], url: 'https://www.teamskeet.com/series/teens-love-black-cocks', parent: 'teamskeet', - parameters: { - id: 'teens-love-black-cocks', - }, }, { slug: 'bffs', name: 'BFFs', url: 'https://www.teamskeet.com/series/bffs', parent: 'teamskeet', - parameters: { - id: 'bffs', - }, }, { slug: 'blackvalleygirls', @@ -13783,9 +12490,6 @@ const sites = [ url: 'https://www.teamskeet.com/series/black-valley-girls', tags: ['black'], parent: 'teamskeet', - parameters: { - id: 'black-valley-girls', - }, }, { slug: 'hijabhookup', @@ -13794,9 +12498,6 @@ const sites = [ alias: ['hijab hookups'], tags: ['hijab'], parent: 'teamskeet', - parameters: { - id: 'hijab-hookup', - }, }, { slug: 'littleasians', @@ -13804,113 +12505,67 @@ const sites = [ url: 'https://www.teamskeet.com/series/little-asians', tags: ['asian'], parent: 'teamskeet', - parameters: { - id: 'little-asians', - }, }, { slug: 'thickumz', name: 'Thickumz', url: 'https://www.teamskeet.com/series/thickumz', parent: 'teamskeet', - parameters: { - id: 'thickumz', - }, }, { slug: 'ciaobella', name: 'Ciao Bella', url: 'https://www.teamskeet.com/series/ciao-bella', parent: 'teamskeet', - parameters: { - id: 'ciao-bella', - }, }, { slug: 'daddypounds', name: 'Daddy Pounds', url: 'https://www.teamskeet.com/series/daddy-pounds', parent: 'teamskeet', - parameters: { - id: 'daddy-pounds', - }, }, { slug: 'glowupz', name: 'Glowupz', url: 'https://www.teamskeet.com/series/glowupz', parent: 'teamskeet', - parameters: { - id: 'glowupz', - }, }, { slug: 'myfirst', name: 'My First', url: 'https://www.teamskeet.com/series/my-first', parent: 'teamskeet', - parameters: { - id: 'my-first', - }, }, { slug: 'ourlittlesecret', name: 'Our Little Secret', url: 'https://www.teamskeet.com/series/our-little-secret', parent: 'teamskeet', - parameters: { - id: 'our-little-secret', - }, }, { slug: 'tomboyz', name: 'Tomboyz', url: 'https://www.teamskeet.com/series/tomboyz', parent: 'teamskeet', - parameters: { - id: 'tomboyz', - }, }, { slug: 'passportbros', name: 'Passport Bros', url: 'https://www.teamskeet.com/series/passport-bros', parent: 'teamskeet', - parameters: { - id: 'passport-bros', - }, }, - /* premium, unavailable - { - slug: 'submissived', - name: 'Submissived', - description: '', - url: 'https://www.submissived.com', - tags: ['bdsm'], - parameters: { scraper: 'A' }, - parent: 'teamskeet', - }, - */ // PERVZ { slug: 'pervzfeatures', name: 'Pervz Features', url: 'https://www.pervz.com/series/pervz-features', parent: 'pervz', - parameters: { - id: 'pervz-features', - endpoint: 'pervbundle', - }, }, { slug: 'pervzsingles', name: 'Pervz Singles', url: 'https://www.pervz.com/series/pervz-singles', parent: 'pervz', - parameters: { - id: 'pervz-singles', - endpoint: 'pervbundle', - }, }, { slug: 'shoplyfter', @@ -13918,7 +12573,6 @@ const sites = [ url: 'https://www.shoplyfter.com', parent: 'pervz', parameters: { - layout: 'search', endpoint: 'ts_shl', }, }, @@ -13929,7 +12583,6 @@ const sites = [ tags: ['milf'], parent: 'pervz', parameters: { - layout: 'search', endpoint: 'mylf_msl', }, }, @@ -13938,10 +12591,6 @@ const sites = [ name: 'MILF Taxi', url: 'https://www.pervz.com/series/milf-taxi-ts', parent: 'pervz', - parameters: { - id: 'milf-taxi-ts', - endpoint: 'pervbundle', - }, }, { slug: 'pervdoctor', @@ -13949,10 +12598,6 @@ const sites = [ url: 'https://www.pervz.com/series/pervdoctor', tags: ['doctor'], parent: 'pervz', - parameters: { - id: 'pervdoctor', - endpoint: 'pervbundle', - }, }, { slug: 'pervmassage', @@ -13960,10 +12605,6 @@ const sites = [ url: 'https://www.pervz.com/series/pervmassage', tags: ['massage'], parent: 'pervz', - parameters: { - id: 'pervmassage', - endpoint: 'pervbundle', - }, }, { slug: 'pervprincipal', @@ -13971,7 +12612,6 @@ const sites = [ url: 'https://www.pervprincipal.com', parent: 'pervz', parameters: { - layout: 'search', endpoint: 'mylf_ppv', }, }, @@ -13981,7 +12621,6 @@ const sites = [ url: 'https://www.pervtherapy.com', parent: 'pervz', parameters: { - layout: 'search', endpoint: 'ts_pvt', }, }, @@ -13990,10 +12629,6 @@ const sites = [ name: 'Perv Driver', url: 'https://www.pervz.com/series/pervdriver', parent: 'pervz', - parameters: { - id: 'pervdriver', - endpoint: 'pervbundle', - }, }, // SWAPPZ { @@ -14002,9 +12637,6 @@ const sites = [ url: 'https://www.swappz.com/series/swappz-features', tags: ['family'], parent: 'swappz', - parameters: { - id: 'swappz-features', - }, }, { slug: 'swappzsingles', @@ -14012,9 +12644,6 @@ const sites = [ url: 'https://www.swappz.com/series/swappz-singles', tags: ['family'], parent: 'swappz', - parameters: { - id: 'swappz-singles', - }, }, { slug: 'daughterswap', @@ -14023,9 +12652,6 @@ const sites = [ alias: ['dsw'], tags: ['family'], parent: 'swappz', - parameters: { - id: 'daughterswap', - }, }, { slug: 'sisswap', @@ -14033,9 +12659,6 @@ const sites = [ url: 'https://www.swappz.com/series/sis-swap', tags: ['family'], parent: 'swappz', - parameters: { - id: 'sis-swap', - }, }, { slug: 'momswap', @@ -14043,9 +12666,6 @@ const sites = [ url: 'https://www.swappz.com/series/mom-swap', tags: ['family', 'milf'], parent: 'swappz', - parameters: { - id: 'mom-swap', - }, }, // FREE USE { @@ -14054,9 +12674,6 @@ const sites = [ url: 'https://www.freeuse.com/series/freeuse-milf', tags: ['free-use', 'milf'], parent: 'freeuse', - parameters: { - id: 'freeuse-milf', - }, }, { slug: 'freeusefantasy', @@ -14064,9 +12681,6 @@ const sites = [ url: 'https://www.freeuse.com/series/freeuse-fantasy', parent: 'freeuse', tags: ['free-use'], - parameters: { - id: 'freeuse-fantasy', - }, }, { slug: 'freakyfembots', @@ -14074,9 +12688,6 @@ const sites = [ url: 'https://www.freeuse.com/series/freakyfembots', parent: 'freeuse', tags: ['free-use'], - parameters: { - id: 'freakyfembots', - }, }, { slug: 'usepov', @@ -14084,9 +12695,6 @@ const sites = [ url: 'https://www.freeuse.com/series/use-pov', parent: 'freeuse', tags: ['free-use', 'pov'], - parameters: { - id: 'use-pov', - }, }, // FAMILY STROKES { @@ -14096,9 +12704,6 @@ const sites = [ url: 'https://www.familystrokes.com/series/family-strokes', tags: ['family'], parent: 'familystrokes', - parameters: { - id: 'family-strokes', - }, }, { slug: 'familystrokesfeatures', @@ -14106,9 +12711,6 @@ const sites = [ url: 'https://www.familystrokes.com/series/family-strokes-features', tags: ['family'], parent: 'familystrokes', - parameters: { - id: 'family-strokes-features', - }, }, { slug: 'sislovesme', @@ -14137,9 +12739,6 @@ const sites = [ url: 'https://www.familystrokes.com/series/pervnana/', tags: ['family', 'mature'], parent: 'familystrokes', - parameters: { - id: 'pervnana', - }, }, { slug: 'notmygrandpa', @@ -14147,18 +12746,12 @@ const sites = [ url: 'https://www.familystrokes.com/series/not-my-grandpa', tags: ['family', 'older-men'], parent: 'familystrokes', - parameters: { - id: 'not-my-grandpa', - }, }, { slug: 'tinysis', name: 'Tiny Sis', url: 'https://www.familystrokes.com/series/tiny-sis', parent: 'familystrokes', - parameters: { - id: 'tiny-sis', - }, }, { slug: 'fostertapes', @@ -14166,9 +12759,6 @@ const sites = [ url: 'https://www.familystrokes.com/series/fostertapes', tags: ['family'], parent: 'familystrokes', - parameters: { - id: 'fostertapes', - }, }, { slug: 'dadcrush', @@ -14186,8 +12776,539 @@ const sites = [ url: 'https://www.familystrokes.com/series/ask-your-mother', tags: ['family', 'milf'], parent: 'familystrokes', + }, + // SAY UNCLE + { + slug: 'blackgodz', + name: 'Black Godz', + url: 'https://www.blackgodz.com', + tags: [ + 'gay', + 'black-man', + ], + parent: 'sayuncle', parameters: { - id: 'ask-your-mother', + id: 'blackgodz', + }, + }, + { + slug: 'bottomgames', + name: 'BottomGames', + url: 'https://www.bottomgames.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'bottom-games', + }, + }, + { + slug: 'boysatcamp', + name: 'Boys At Camp', + url: 'https://www.boysatcamp.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'boys-at-camp', + }, + }, + { + slug: 'boysdoporn', + name: 'BoysDoPorn', + url: 'https://www.boysdoporn.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'boysdoporn', + }, + }, + { + slug: 'brothercrush', + name: 'Brother Crush', + url: 'https://www.brothercrush.com', + tags: [ + 'gay', + 'family', + ], + parent: 'sayuncle', + parameters: { + id: 'brother-crush', + }, + }, + { + slug: 'bullyhim', + name: 'Bully Him', + url: 'https://www.bullyhim.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'bully-him', + }, + }, + { + slug: 'dadcreep', + name: 'DadCreep', + url: 'https://www.dadcreep.com', + tags: [ + 'gay', + 'family', + ], + parent: 'sayuncle', + parameters: { + id: 'dad-creep', + }, + }, + { + slug: 'dickrides', + name: 'Dick Rides', + url: 'https://www.dickrides.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'dick-rides', + }, + }, + { + slug: 'doctortapes', + name: 'DoctorTapes', + url: 'https://www.doctortapes.com', + tags: [ + 'gay', + 'doctor', + ], + parent: 'sayuncle', + parameters: { + id: 'doctor-tapes', + }, + }, + { + slug: 'eurohunk', + name: 'Euro Hunk', + url: 'https://www.sayuncle.com/series/euro-hunk', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'euro-hunk', + }, + }, + { + slug: 'familydick', + name: 'Family Dick', + url: 'https://www.familydick.com', + tags: [ + 'gay', + 'family', + ], + parent: 'sayuncle', + parameters: { + id: 'familydick', + }, + }, + { + slug: 'freeusetwink', + name: 'Freeuse Twink', + url: 'https://www.freeusetwink.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'freeuse-twink', + }, + }, + { + slug: 'latinleche', + name: 'Latin Leche', + url: 'https://www.latinleche.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'latin-leche', + }, + }, + { + slug: 'militarydick', + name: 'MilitaryDick', + url: 'https://www.militarydick.com', + tags: [ + 'gay', + 'military', + ], + parent: 'sayuncle', + parameters: { + id: 'militarydick', + }, + }, + { + slug: 'missionaryboys', + name: 'Missionary Boys', + url: 'https://www.missionaryboys.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'missionary-boys', + }, + }, + { + slug: 'pigbottoms', + name: 'Pig Bottoms', + url: 'https://www.pigbottoms.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'pig-bottoms', + }, + }, + { + slug: 'buttvirgins', + name: 'Butt Virgins', + url: 'https://www.sayuncle.com/series/butt-virgins', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'anonimo', + name: 'Anonimo', + url: 'https://www.sayuncle.com/series/anonimo', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclecompilations', + name: 'SayUncle Compilations', + url: 'https://www.sayuncle.com/series/compilations', + tags: ['gay', 'compilation'], + parent: 'sayuncle', + }, + { + slug: 'europeenz', + name: 'Europeenz', + url: 'https://www.sayuncle.com/series/europeenz', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayuncleallstars', + name: 'SayUncle AllStars', + url: 'https://www.sayuncle.com/series/all-stars', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayuncleclassics', + name: 'SayUncle Classics', + url: 'https://www.sayuncle.com/series/classics', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclefeatures', + name: 'SayUncle Features', + url: 'https://www.sayuncle.com/series/features', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclelabs', + name: 'SayUncle Labs', + url: 'https://www.sayuncle.com/series/labs', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexblakemason', + delete: true, + name: 'SayUncle X Blake Mason', + url: 'https://www.sayuncle.com/series/blake-mason', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexboyfun', + delete: true, + name: 'SayUncle X BoyFun', + url: 'https://www.sayuncle.com/series/boyfun', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexcallumandcole', + delete: true, + name: 'SayUncle X Callum and Cole', + url: 'https://www.sayuncle.com/series/callum-and-cole', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexclubbangboys', + delete: true, + name: 'SayUncle X Club Bang Boys', + url: 'https://www.sayuncle.com/series/clubbangboys', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexcocksuremen', + delete: true, + name: 'SayUncle X Cocksure Men', + url: 'https://www.sayuncle.com/series/cocksure-men', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexcutlersden', + delete: true, + name: 'SayUncle X Cutlers Den', + url: 'https://www.sayuncle.com/series/cutlers-den', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexfrankfurtsexstories', + delete: true, + name: 'SayUncle X Frankfurt Sex Stories', + url: 'https://www.sayuncle.com/series/frankfurt-sex-stories', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexgayphoenixxx', + delete: true, + name: 'SayUncle X GayPhoenixxx', + url: 'https://www.sayuncle.com/series/gayphoenixxx', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexgentlemenscloset', + delete: true, + name: "SayUncle X Gentlemen's Closet", + url: 'https://www.sayuncle.com/series/gentlemens-closet', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexhotdadshotlads', + delete: true, + name: 'SayUncle X Hot Dads Hot Lads', + url: 'https://www.sayuncle.com/series/hot-dads-hot-lads', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexjaxthirio', + delete: true, + name: 'SayUncle X Jax Thirio', + url: 'https://www.sayuncle.com/series/jax-thirio', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexjayseabrook', + delete: true, + name: 'SayUncle X Jay Seabrook', + url: 'https://www.sayuncle.com/series/jay-seabrook', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexlancecharger', + delete: true, + name: 'SayUncle X Lance Charger', + url: 'https://www.sayuncle.com/series/lance-charger', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexlatinoguysporn', + delete: true, + name: 'SayUncle X LatinoGuysPorn', + url: 'https://www.sayuncle.com/series/latino-guys-porn', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexmanuelskye', + delete: true, + name: 'SayUncle X Manuel Skye', + url: 'https://www.sayuncle.com/series/manuel-skye', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexmasculinejason', + delete: true, + name: 'SayUncle X Masculine Jason', + url: 'https://www.sayuncle.com/series/masculine-jason', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexmaxxstoner', + delete: true, + name: 'SayUncle X Maxx Stoner', + url: 'https://www.sayuncle.com/series/maxx-stoner', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexnastydaddy', + delete: true, + name: 'SayUncle X Nasty Daddy', + url: 'https://www.sayuncle.com/series/nasty-daddy', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexofloveandflesh', + delete: true, + name: 'SayUncle X OfLoveAndFlesh', + url: 'https://www.sayuncle.com/series/ofloveandflesh', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexpakinky', + delete: true, + name: 'SayUncle X PAKinky', + url: 'https://www.sayuncle.com/series/pakinky', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexpabloysebascortes', + delete: true, + name: 'SayUncle X Pablo Y Sebas', + url: 'https://www.sayuncle.com/series/pablo-y-sebas-cortes', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexrandyblue', + delete: true, + name: 'SayUncle X Randy Blue', + url: 'https://www.sayuncle.com/series/randy-blue', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexraweuro', + delete: true, + name: 'SayUncle X RawEuro', + url: 'https://www.sayuncle.com/series/raweuro', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexsantiagowet', + delete: true, + name: 'SayUncle X Santiago Wet', + url: 'https://www.sayuncle.com/series/santiago-wet', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexsebaterry', + delete: true, + name: 'SayUncle X Seba Terry', + url: 'https://www.sayuncle.com/series/seba-terry', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclexsupertwinks', + delete: true, + name: 'SayUncle X Super Twinks', + url: 'https://www.sayuncle.com/series/super-twinks', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'sayunclextrentonducati', + delete: true, + name: 'SayUncle X Trenton Ducati', + url: 'https://www.sayuncle.com/series/trenton-ducati', + tags: ['gay'], + parent: 'sayuncle', + }, + { + slug: 'stayhomebro', + name: 'StayHomeBro', + url: 'https://www.stayhomebro.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'stayhomebro', + }, + }, + { + slug: 'stickyrub', + name: 'StickyRub', + url: 'https://www.stickyrub.com', + tags: ['gay', 'massage'], + parent: 'sayuncle', + parameters: { + id: 'stickyrub', + }, + }, + { + slug: 'therapydick', + name: 'TherapyDick', + url: 'https://www.therapydick.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'therapydick', + }, + }, + { + slug: 'troopsex', + name: 'TroopSex', + url: 'https://www.troopsex.com', + tags: ['gay', 'military'], + parent: 'sayuncle', + parameters: { + id: 'troopsex', + }, + }, + { + slug: 'twinktrade', + name: 'Twink Trade', + url: 'https://www.twinktrade.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'twinktrade', + }, + }, + { + slug: 'varsitygrip', + name: 'Varsity Grip', + url: 'https://www.varsitygrip.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'varsitygrip', + }, + }, + { + slug: 'yesfather', + name: 'YesFather', + url: 'https://www.yesfather.com', + tags: [ + 'gay', + 'religion', + ], + parent: 'sayuncle', + parameters: { + id: 'yes-father', + }, + }, + { + slug: 'youngperps', + name: 'Young Perps', + url: 'https://www.youngperps.com', + tags: ['gay'], + parent: 'sayuncle', + parameters: { + id: 'young-perps', }, }, // TEEN CORE CLUB diff --git a/src/scrapers/teamskeet.js b/src/scrapers/teamskeet.js index 1e68b54a..cf7e7395 100755 --- a/src/scrapers/teamskeet.js +++ b/src/scrapers/teamskeet.js @@ -41,7 +41,7 @@ async function fetchTrailerUrl(videoId, entity) { return null; } -async function scrapeScene(scene, channel, parameters, includeTrailers) { +async function scrapeScene(scene, channel, _parameters, includeTrailers) { const release = {}; // release.entryId = scene.id; // legacy @@ -53,10 +53,10 @@ async function scrapeScene(scene, channel, parameters, includeTrailers) { release.description = scene.description; release.date = unprint.extractDate(scene.publishedDate, 'YYYY-MM-DD'); - // release.actors = scene.models?.map((model) => model.modelName) || []; release.actors = scene.models?.map((model) => ({ name: model.modelName || model.name || model.title, - avatar: model.img || (parameters.avatars && `${parameters.avatars}/${slugify(model.modelName || model.name || model.title, '_')}.jpg`), + avatar: model.img, + gender: model.gender, url: `${channel.url}/models/${model.modelId || model.id}`, })); @@ -92,38 +92,12 @@ function scrapeAll(scenes, channel, parameters) { } async function fetchLatest(channel, page = 1, { parameters }) { - const res = await http.get(`https://tours-store.psmcdn.net/${parameters.fullEndpoint || `${parameters.endpoint}-videoscontent`}/_search?q=site.seo.seoSlug:"${parameters.id}"&sort=publishedDate:desc&size=30&from=${(page - 1) * 30}`); + // url: 'https://www.pervz.com/series/pervz-features', + const seriesId = parameters.id || new URL(channel.url).pathname.match(/\/series\/([a-z-]+)/)?.[1]; - if (res.ok) { - return scrapeAll(res.body.hits.hits.map(({ _source: scene }) => scene), channel, parameters); - } - - return res.status; -} - -async function fetchLatestOrganic(channel, page, context) { - const res = await http.get(`https://store.psmcdn.net/${context.parameters.endpoint}/newestMovies/items.json?orderBy="$key"&startAt="${context.cursor || 'aaaaaaaa'}"&limitToFirst=100`); - - if (res.ok) { - const scenes = scrapeAll(Object.values(res.body), channel, context.parameters); - - return { - // cursor implies page > 1 and first scene is last scene on previous page, - // it probably won't trip up the pagination logic, but avoid the duplicate anyway - scenes: context.cursor ? scenes.slice(1) : scenes, - context: { - cursor: Object.keys(res.body).at(-1), // official page seems to derive cursor from last scene, too - }, - }; - } - - return res.status; -} - -async function fetchLatestSearch(channel, page = 1, { parameters }) { - const url = parameters.id - ? `https://tours-store.psmcdn.net/${parameters.fullEndpoint || parameters.endpoint}/_search?q=(site.seo.seoSlug:"${parameters.id}" AND type:video)&sort=publishedDate:desc&size=30&from=${(page - 1) * 30}` - : `https://tours-store.psmcdn.net/${parameters.fullEndpoint || parameters.endpoint}/_search?sort=publishedDate:desc&q=(type:video AND isXSeries:false)&size=30&from=${(page - 1) * 30}`; + const url = seriesId + ? `https://tours-store.psmcdn.net/${parameters.endpoint}/_search?q=(site.seo.seoSlug:"${seriesId}" AND type:video)&sort=publishedDate:desc&size=30&from=${(page - 1) * 30}` + : `https://tours-store.psmcdn.net/${parameters.endpoint}/_search?sort=publishedDate:desc&q=(type:video AND isXSeries:false)&size=30&from=${(page - 1) * 30}`; const res = await http.get(url); @@ -135,7 +109,7 @@ async function fetchLatestSearch(channel, page = 1, { parameters }) { } async function fetchScene(url, channel, baseScene, { parameters, includeTrailers }) { - if (parameters.layout !== 'organic' && baseScene?.entryId && !includeTrailers) { + if (baseScene?.entryId && !includeTrailers) { // overview and deep data is the same in elastic API, don't hit server unnecessarily return baseScene; } @@ -175,6 +149,7 @@ async function scrapeProfile(actor, entity, parameters) { profile.url = `${entity.url}/models/${actor.id}`; profile.description = actor.modelBio; + profile.gender = actor.gender; if (actor.bio.about && !/\band\b/.test(actor.bio.about)) { const bio = actor.bio.about.split(/\n/).filter(Boolean).reduce((acc, item) => { @@ -235,15 +210,11 @@ async function scrapeProfile(actor, entity, parameters) { } async function fetchProfile(baseActor, { entity, parameters }) { - // const url = format(parameters.profiles, { slug: baseActor.slug }); - const url = parameters.layout === 'organic' - ? `https://store.psmcdn.net/${parameters.endpoint}/modelsContent/${baseActor.slug}.json` - : `https://tours-store.psmcdn.net/${parameters.fullEndpoint || `${parameters.endpoint}-modelscontent`}/_doc/${parameters.modelPrefix || ''}${baseActor.slug}`; - + const url = `https://tours-store.psmcdn.net/${parameters.endpoint}/_doc/model_${baseActor.slug}`; const res = await unprint.get(url); if (res.ok && res.data) { - return scrapeProfile(parameters.layout === 'organic' ? res.data : res.data._source || res.body, entity, parameters); + return scrapeProfile(res.data._source || res.body, entity, parameters); } return res.status; @@ -253,12 +224,4 @@ module.exports = { fetchLatest, fetchScene, fetchProfile, - organic: { - fetchLatest: fetchLatestOrganic, - fetchScene, - }, - search: { - fetchLatest: fetchLatestSearch, - fetchScene, - }, }; diff --git a/tests/profiles.js b/tests/profiles.js index 130a83fc..80dd9f87 100644 --- a/tests/profiles.js +++ b/tests/profiles.js @@ -4,6 +4,7 @@ const config = require('config'); const test = require('node:test'); const assert = require('node:assert/strict'); const unprint = require('unprint'); +const omit = require('object.omit'); const argv = require('../src/argv'); const include = require('../src/utils/argv-include')(argv); @@ -43,9 +44,13 @@ const actors = [ { entity: 'milfy', name: 'Clea Gaultier', fields: ['gender', 'avatar', 'description'] }, { entity: 'wifey', name: 'Danielle Renae', fields: ['gender', 'avatar', 'description'] }, // teamskeet - { entity: 'teamskeet', name: 'Abella Danger', fields: ['description', 'avatar', 'measurements', 'birthPlace', 'nationality', 'ethnicity', 'height', 'weight', 'hairColor', 'hasPiercings'] }, - { entity: 'mylf', name: 'Eliza Ibarra', fields: ['avatar', 'measurements', 'nationality', 'hairColor', 'hasPiercings', 'hasTattoos'] }, - { entity: 'sayuncle', name: 'Greg McKeon', fields: ['avatar', 'description'] }, + { entity: 'teamskeet', name: 'Abella Danger', fields: ['description', 'gender', 'avatar', 'measurements', 'birthPlace', 'nationality', 'ethnicity', 'height', 'weight', 'hairColor', 'hasPiercings'] }, + { entity: 'mylf', name: 'Eliza Ibarra', fields: ['avatar', 'gender', 'measurements', 'nationality', 'hairColor', 'hasPiercings', 'hasTattoos'] }, + { entity: 'familystrokes', name: 'Eliza Ibarra', fields: ['avatar', 'gender', 'measurements', 'nationality', 'hairColor', 'hasPiercings', 'hasTattoos'] }, + { entity: 'freeuse', name: 'Gabbie Carter', fields: ['avatar', 'gender'] }, + { entity: 'swappz', name: 'Riley Reid', fields: ['avatar', 'gender', 'measurements', 'nationality', 'ethnicity', 'hairColor', 'hasPiercings', 'height', 'weight'] }, + { entity: 'pervz', name: 'Kenzie Reeves', fields: ['avatar', 'gender', 'measurements', 'nationality', 'ethnicity', 'hairColor'] }, + { entity: 'sayuncle', name: 'Greg McKeon', fields: ['avatar', 'gender', 'description'] }, // mike adriano { entity: 'trueanal', name: 'Brenna McKenna', fields: ['avatar', 'gender', 'description', 'dateOfBirth', 'birthPlace', 'measurements', 'eyes', 'weight', 'height', 'hairColor', 'hasTattoos'] }, { entity: 'analonly', name: 'Lilith Grace', fields: ['avatar', 'gender', 'description', 'dateOfBirth', 'birthPlace', 'measurements', 'eyes', 'weight', 'height', 'hairColor'] }, @@ -272,7 +277,7 @@ const validators = { description: (value) => typeof value === 'string' && value.length > 3, birthPlace: (value) => typeof value === 'string' && value.length > 1, // may return US or USA birthCountry: (value) => typeof value === 'string' && value.length > 1, - nationality: (value) => typeof value === 'string' && value.length > 3, + nationality: (value) => typeof value === 'string' && value.length > 2, // height: (value) => !!Number(value) || /\d'\d{1,2}"/.test(value), // ft in needs to be converted height: (value) => !!Number(value) && value > 130, weight: (value) => !!Number(value) && value > 40, @@ -347,7 +352,7 @@ async function init() { assert.fail('profile not found'); } - console.log(profile); + console.log(omit(profile, ['scenes'])); console.log('Untested fields', Object.entries(profile).filter(([field, value]) => !actor.fields.includes(field) && typeof value !== 'undefined' && value !== null).map(([field]) => `'${field}'`).join(', ')); await Promise.all(actor.fields.map(async (field) => {