diff --git a/seeds/01_sites.js b/seeds/01_sites.js index 7fa1d21c..e18aaa2d 100644 --- a/seeds/01_sites.js +++ b/seeds/01_sites.js @@ -160,7 +160,7 @@ const sites = [ name: 'Trickery', slug: 'bangtrickery', url: 'https://www.bang.com/original/4800/bang-trickery', - parameters: JSON.stringify({ siteId: 4800 }), + parameters: { siteId: 4800 }, network: 'bang', }, { @@ -168,7 +168,7 @@ const sites = [ slug: 'yngrcom', // url: 'https://www.bang.com/original/5010/bang-yngr', url: 'https://yngr.com', - parameters: JSON.stringify({ siteId: 5010 }), + parameters: { siteId: 5010 }, network: 'bang', }, { @@ -176,21 +176,21 @@ const sites = [ slug: 'bangroadsidexxx', // url: 'https://www.bang.com/original/4864/roadside-xxx', url: 'https://roadsidexxx.com', - parameters: JSON.stringify({ siteId: 4864 }), + parameters: { siteId: 4864 }, network: 'bang', }, { name: 'Surprise', slug: 'bangsurprise', url: 'https://www.bang.com/original/5000/bang-surprise', - parameters: JSON.stringify({ siteId: 5000 }), + parameters: { siteId: 5000 }, network: 'bang', }, { name: 'Real Teens', slug: 'bangrealteens', url: 'https://www.bang.com/original/3366/bang-real-teens', - parameters: JSON.stringify({ siteId: 3366 }), + parameters: { siteId: 3366 }, network: 'bang', }, { @@ -198,7 +198,7 @@ const sites = [ slug: 'bangfakenews', // url: 'https://www.bang.com/original/4998/bang-fckNews', url: 'https://fck.news', - parameters: JSON.stringify({ siteId: 4998 }), + parameters: { siteId: 4998 }, network: 'bang', }, { @@ -206,56 +206,56 @@ const sites = [ slug: 'prettyandraw', // url: 'https://www.bang.com/original/4792/bang-pretty-and-raw', url: 'https://prettyandraw.com', - parameters: JSON.stringify({ siteId: 4792 }), + parameters: { siteId: 4792 }, network: 'bang', }, { name: 'Japan', slug: 'bangjapan', url: 'https://www.bang.com/original/3079/bang-japan', - parameters: JSON.stringify({ siteId: 3079, ignore: true }), + parameters: { siteId: 3079, ignore: true }, network: 'bang', }, { name: 'Rammed', slug: 'bangrammed', url: 'https://www.bang.com/original/4836/bang-rammed', - parameters: JSON.stringify({ siteId: 4836 }), + parameters: { siteId: 4836 }, network: 'bang', }, { name: 'Glamkore', slug: 'bangglamkore', url: 'https://www.bang.com/original/4586/bang-glamkore', - parameters: JSON.stringify({ siteId: 4586 }), + parameters: { siteId: 4586 }, network: 'bang', }, { name: 'Screw The Cops', slug: 'screwthecops', url: 'https://www.bang.com/original/4710/bang-screw-cops', - parameters: JSON.stringify({ siteId: 4710 }), + parameters: { siteId: 4710 }, network: 'bang', }, { name: 'Real MILFs', slug: 'bangrealmilfs', url: 'https://www.bang.com/original/4448/bang-real-milfs', - parameters: JSON.stringify({ siteId: 4448 }), + parameters: { siteId: 4448 }, network: 'bang', }, { name: 'Confessions', slug: 'bangconfessions', url: 'https://www.bang.com/original/4308/bang-confessions', - parameters: JSON.stringify({ siteId: 4308 }), + parameters: { siteId: 4308 }, network: 'bang', }, { name: 'Casting', slug: 'bangcasting', url: 'https://www.bang.com/original/3261/bang-casting', - parameters: JSON.stringify({ siteId: 3261 }), + parameters: { siteId: 3261 }, network: 'bang', }, // BANGBROS @@ -265,7 +265,7 @@ const sites = [ slug: 'assparade', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ap' }), + parameters: { code: 'ap' }, }, { name: 'AvaSpice', @@ -273,7 +273,7 @@ const sites = [ slug: 'avaspice', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'av' }), + parameters: { code: 'av' }, }, { name: 'Back Room Facials', @@ -281,7 +281,7 @@ const sites = [ slug: 'backroomfacials', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'brf' }), + parameters: { code: 'brf' }, }, { name: 'Backroom MILF', @@ -289,7 +289,7 @@ const sites = [ slug: 'backroommilf', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'mf' }), + parameters: { code: 'mf' }, }, { name: 'Ball Honeys', @@ -297,7 +297,7 @@ const sites = [ slug: 'ballhoneys', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'es' }), + parameters: { code: 'es' }, }, { name: 'BangBros 18', @@ -305,7 +305,7 @@ const sites = [ slug: 'bangbros18', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bbe' }), + parameters: { code: 'bbe' }, }, { name: 'BangBros Angels', @@ -313,7 +313,7 @@ const sites = [ slug: 'bangbrosangels', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bng' }), + parameters: { code: 'bng' }, }, { name: 'Bangbros Clips', @@ -321,7 +321,7 @@ const sites = [ slug: 'bangbrosclips', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bbc' }), + parameters: { code: 'bbc' }, }, { name: 'BangBros Remastered', @@ -329,7 +329,7 @@ const sites = [ slug: 'bangbrosremastered', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'rm' }), + parameters: { code: 'rm' }, }, { name: 'Bang Bus', @@ -337,7 +337,7 @@ const sites = [ slug: 'bangbus', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bb' }), + parameters: { code: 'bb' }, }, { name: 'Bang Casting', @@ -345,7 +345,7 @@ const sites = [ slug: 'bangbroscasting', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'hih' }), + parameters: { code: 'hih' }, }, { name: 'Bang POV', @@ -353,7 +353,7 @@ const sites = [ slug: 'bangpov', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bpov' }), + parameters: { code: 'bpov' }, }, { name: 'Bang Tryouts', @@ -361,7 +361,7 @@ const sites = [ slug: 'bangtryouts', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bto' }), + parameters: { code: 'bto' }, }, { name: 'Big Mouthfuls', @@ -369,7 +369,7 @@ const sites = [ slug: 'bigmouthfuls', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bmf' }), + parameters: { code: 'bmf' }, }, { name: 'Big Tit Cream Pie', @@ -377,7 +377,7 @@ const sites = [ slug: 'bigtitcreampie', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'btcp' }), + parameters: { code: 'btcp' }, }, { name: 'Big Tits, Round Asses', @@ -385,7 +385,7 @@ const sites = [ slug: 'bigtitsroundasses', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'btra' }), + parameters: { code: 'btra' }, }, { name: 'BlowJob Fridays', @@ -393,7 +393,7 @@ const sites = [ slug: 'blowjobfridays', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bj' }), + parameters: { code: 'bj' }, }, { name: 'Blowjob Ninjas', @@ -401,7 +401,7 @@ const sites = [ slug: 'blowjobninjas', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'aa' }), + parameters: { code: 'aa' }, }, { name: 'Boob Squad', @@ -409,7 +409,7 @@ const sites = [ slug: 'boobsquad', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bs' }), + parameters: { code: 'bs' }, }, { name: 'Brown Bunnies', @@ -417,7 +417,7 @@ const sites = [ slug: 'brownbunnies', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bkb' }), + parameters: { code: 'bkb' }, }, { name: 'Can He Score?', @@ -425,7 +425,7 @@ const sites = [ slug: 'canhescore', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bd' }), + parameters: { code: 'bd' }, }, { name: 'Casting', @@ -433,7 +433,7 @@ const sites = [ slug: 'casting', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ca' }), + parameters: { code: 'ca' }, }, { name: 'Chongas', @@ -441,7 +441,7 @@ const sites = [ slug: 'chongas', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ch' }), + parameters: { code: 'ch' }, }, { name: 'Colombia Fuck Fest', @@ -449,7 +449,7 @@ const sites = [ slug: 'colombiafuckfest', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'cff' }), + parameters: { code: 'cff' }, }, { name: 'Dirty World Tour', @@ -457,7 +457,7 @@ const sites = [ slug: 'dirtyworldtour', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bf' }), + parameters: { code: 'bf' }, }, { name: 'Dorm Invasion', @@ -465,7 +465,7 @@ const sites = [ slug: 'dorminvasion', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'di' }), + parameters: { code: 'di' }, }, { name: 'Facial Fest', @@ -473,7 +473,7 @@ const sites = [ slug: 'facialfest', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ff' }), + parameters: { code: 'ff' }, }, { name: 'Fuck Team Five', @@ -481,7 +481,7 @@ const sites = [ slug: 'fuckteamfive', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'bbw' }), + parameters: { code: 'bbw' }, }, { name: 'Glory Hole Loads', @@ -489,7 +489,7 @@ const sites = [ slug: 'gloryholeloads', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ghl' }), + parameters: { code: 'ghl' }, }, { name: 'Latina Rampage', @@ -497,7 +497,7 @@ const sites = [ slug: 'latinarampage', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'lrp' }), + parameters: { code: 'lrp' }, }, { name: 'Living With Anna', @@ -505,7 +505,7 @@ const sites = [ slug: 'livingwithanna', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'lr' }), + parameters: { code: 'lr' }, }, { name: 'Magical Feet', @@ -513,7 +513,7 @@ const sites = [ slug: 'magicalfeet', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'fj' }), + parameters: { code: 'fj' }, }, { name: 'Milf Soup', @@ -521,7 +521,7 @@ const sites = [ slug: 'milfsoup', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ms' }), + parameters: { code: 'ms' }, }, { name: 'MomIsHorny', @@ -529,7 +529,7 @@ const sites = [ slug: 'momishorny', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'mih' }), + parameters: { code: 'mih' }, }, { name: 'Monsters of Cock', @@ -537,7 +537,7 @@ const sites = [ slug: 'monstersofcock', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'mc' }), + parameters: { code: 'mc' }, }, { name: 'Mr CamelToe', @@ -545,7 +545,7 @@ const sites = [ slug: 'mrcameltoe', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ct' }), + parameters: { code: 'ct' }, }, { name: 'My Dirty Maid', @@ -553,7 +553,7 @@ const sites = [ slug: 'mydirtymaid', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'mda' }), + parameters: { code: 'mda' }, }, { name: 'My Life In Brazil', @@ -561,7 +561,7 @@ const sites = [ slug: 'mylifeinbrazil', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'mb' }), + parameters: { code: 'mb' }, }, { name: 'Newbie Black', @@ -569,7 +569,7 @@ const sites = [ slug: 'newbieblack', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'blkg' }), + parameters: { code: 'blkg' }, }, { name: 'Party of Three', @@ -577,7 +577,7 @@ const sites = [ slug: 'partyofthree', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ls' }), + parameters: { code: 'ls' }, }, { name: 'Pawg', @@ -585,7 +585,7 @@ const sites = [ slug: 'pawg', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'pwg' }), + parameters: { code: 'pwg' }, }, { name: 'Penny Show', @@ -593,7 +593,7 @@ const sites = [ slug: 'pennyshow', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ps' }), + parameters: { code: 'ps' }, }, { name: 'Porn Star Spa', @@ -601,7 +601,7 @@ const sites = [ slug: 'pornstarspa', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'pos' }), + parameters: { code: 'pos' }, }, { name: 'Power Munch', @@ -609,7 +609,7 @@ const sites = [ slug: 'powermunch', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'pm' }), + parameters: { code: 'pm' }, }, { name: 'Public Bang', @@ -617,7 +617,7 @@ const sites = [ slug: 'publicbang', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'pb' }), + parameters: { code: 'pb' }, }, { name: 'Slutty White Girls', @@ -625,7 +625,7 @@ const sites = [ slug: 'sluttywhitegirls', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'swg' }), + parameters: { code: 'swg' }, }, { name: 'Stepmom Videos', @@ -633,7 +633,7 @@ const sites = [ slug: 'stepmomvideos', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'smv' }), + parameters: { code: 'smv' }, }, { name: 'Street Ranger', @@ -641,7 +641,7 @@ const sites = [ slug: 'streetranger', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'sg' }), + parameters: { code: 'sg' }, }, { name: 'Tugjobs', @@ -649,7 +649,7 @@ const sites = [ slug: 'tugjobs', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'hj' }), + parameters: { code: 'hj' }, }, { name: 'Working Latinas', @@ -657,7 +657,7 @@ const sites = [ slug: 'workinglatinas', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'lw' }), + parameters: { code: 'lw' }, }, { name: 'MILF Lessons', @@ -665,7 +665,7 @@ const sites = [ slug: 'milflessons', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ml' }), + parameters: { code: 'ml' }, }, { name: 'Mr. Anal', @@ -673,7 +673,7 @@ const sites = [ slug: 'mranal', description: null, network: 'bangbros', - parameters: JSON.stringify({ code: 'ma' }), + parameters: { code: 'ma' }, }, // BLOWPASS { @@ -1218,7 +1218,7 @@ const sites = [ name: 'Evil Angel', url: 'https://www.evilangel.com', description: 'Welcome to the award winning Evil Angel website, home to the most popular pornstars of today, yesterday and tomorrow in their most extreme and hardcore porn scenes to date. We feature almost 30 years of rough sex videos and hardcore anal porn like you\'ve never seen before, and have won countless AVN and XBiz awards including \'Best Site\' and \'Best Studio\'.', - parameters: JSON.stringify({ independent: true }), + parameters: { independent: true }, network: 'evilangel', }, // FAKE HUB @@ -1598,7 +1598,7 @@ const sites = [ name: 'LegalPorno', url: 'https://www.legalporno.com', description: 'The Best HD Porn For You!', - parameters: JSON.stringify({ independent: true }), + parameters: { independent: true }, network: 'legalporno', }, // METRO HD @@ -1607,7 +1607,7 @@ const sites = [ name: 'Deviant Hardcore', url: 'https://www.devianthardcore.com', description: '', - parameters: JSON.stringify({ siteId: 305 }), + parameters: { siteId: 305 }, network: 'metrohd', }, { @@ -1615,7 +1615,7 @@ const sites = [ name: 'She Will Cheat', url: 'https://www.shewillcheat.com', description: '', - parameters: JSON.stringify({ siteId: 306 }), + parameters: { siteId: 306 }, network: 'metrohd', }, { @@ -1623,7 +1623,7 @@ const sites = [ name: 'Family Hookups', url: 'https://www.familyhookups.com', description: '', - parameters: JSON.stringify({ siteId: 307 }), + parameters: { siteId: 307 }, network: 'metrohd', }, { @@ -1631,7 +1631,7 @@ const sites = [ name: 'Kinky Spa', url: 'https://www.kinkyspa.com', description: '', - parameters: JSON.stringify({ siteId: 308 }), + parameters: { siteId: 308 }, network: 'metrohd', }, { @@ -1639,7 +1639,7 @@ const sites = [ name: 'Girl Grind', url: 'https://www.girlgrind.com', description: '', - parameters: JSON.stringify({ siteId: 309 }), + parameters: { siteId: 309 }, network: 'metrohd', }, // MEN @@ -1648,7 +1648,7 @@ const sites = [ name: 'Big Dicks At School', url: 'https://www.bigdicksatschool.com', description: '', - parameters: JSON.stringify({ siteId: 252 }), + parameters: { siteId: 252 }, network: 'men', }, { @@ -1656,7 +1656,7 @@ const sites = [ name: 'Drill My Hole', url: 'https://www.drillmyhole.com', description: '', - parameters: JSON.stringify({ siteId: 253 }), + parameters: { siteId: 253 }, network: 'men', }, { @@ -1664,7 +1664,7 @@ const sites = [ name: 'Str8 to Gay', url: 'https://www.str8togay.com', description: '', - parameters: JSON.stringify({ siteId: 254 }), + parameters: { siteId: 254 }, network: 'men', }, { @@ -1672,7 +1672,7 @@ const sites = [ name: 'The Gay Office', url: 'https://www.thegayoffice.com', description: '', - parameters: JSON.stringify({ siteId: 255 }), + parameters: { siteId: 255 }, network: 'men', }, { @@ -1680,7 +1680,7 @@ const sites = [ name: 'Jizz Orgy', url: 'https://www.jizzorgy.com', description: '', - parameters: JSON.stringify({ siteId: 256 }), + parameters: { siteId: 256 }, network: 'men', }, { @@ -1688,7 +1688,7 @@ const sites = [ name: 'Men of UK', url: 'https://www.menofuk.com', description: '', - parameters: JSON.stringify({ siteId: 258 }), + parameters: { siteId: 258 }, network: 'men', }, { @@ -1696,7 +1696,7 @@ const sites = [ name: 'Top to Bottom', url: 'https://www.toptobottom.com', description: '', - parameters: JSON.stringify({ siteId: 259 }), + parameters: { siteId: 259 }, network: 'men', }, { @@ -1704,7 +1704,7 @@ const sites = [ name: 'Gods of Men', url: 'https://www.godsofmen.com', description: '', - parameters: JSON.stringify({ siteId: 260 }), + parameters: { siteId: 260 }, network: 'men', }, // MINDGEEK @@ -1713,7 +1713,7 @@ const sites = [ name: 'Tube8Vip', url: 'https://www.tube8vip.com', description: '', - parameters: JSON.stringify({ native: true }), + parameters: { native: true }, network: 'mindgeek', }, { @@ -1721,7 +1721,7 @@ const sites = [ name: 'TransAngels', url: 'https://www.transangels.com', description: '', - parameters: JSON.stringify({ native: true }), + parameters: { native: true }, network: 'mindgeek', }, // MIKE ADRIANO @@ -1758,7 +1758,7 @@ const sites = [ slug: 'doghousedigital', name: 'Doghouse Digital', url: 'https://www.doghousedigital.com', - parameters: JSON.stringify({ siteId: 321 }), + parameters: { siteId: 321 }, network: 'milehighmedia', }, { @@ -1771,28 +1771,28 @@ const sites = [ slug: 'realityjunkies', name: 'Reality Junkies', url: 'https://www.realityjunkies.com', - parameters: JSON.stringify({ siteId: 324 }), + parameters: { siteId: 324 }, network: 'milehighmedia', }, { slug: 'sweetheartvideo', name: 'Sweetheart Video', url: 'https://www.sweetheartvideo.com', - parameters: JSON.stringify({ siteId: 325 }), + parameters: { siteId: 325 }, network: 'milehighmedia', }, { slug: 'sweetsinner', name: 'Sweet Sinner', url: 'https://www.sweetsinner.com', - parameters: JSON.stringify({ siteId: 326 }), + parameters: { siteId: 326 }, network: 'milehighmedia', }, { slug: 'iconmale', name: 'Icon Male', url: 'https://www.iconmale.com', - parameters: JSON.stringify({ native: true }), + parameters: { native: true }, network: 'milehighmedia', }, // MOFOS @@ -2311,7 +2311,7 @@ const sites = [ url: 'http://www.analoverdose.com', description: 'Before proceeding, use caution: the stunning pornstars of Anal Overdose are so fiery that they cause heavy breathing, throbbing cocks and volcanic loads of cum. If you think you can handle the heat of smoking tits, sweltering pussy and red hot ass.', network: 'pervcity', - parameters: JSON.stringify({ tourId: 3 }), + parameters: { tourId: 3 }, }, { slug: 'bangingbeauties', @@ -2319,7 +2319,7 @@ const sites = [ description: "Banging Beauties isn't just a porn site; it's the gateway to all your pussy-obsessed fantasies! Our members' area is flowing with beautiful pornstars anticipating big dick throbbing in their syrupy pink slits. These experienced babes love brutal vaginal pounding! Similarly, they're eager for anal switch-hitting to shake things up. However, it's not only about gorgeous sexperts filling their hungry holes. Sometimes, it's all about innocent rookies earning their pornstar status in first time threesomes and premier interracial scenes.", url: 'http://www.bangingbeauties.com', network: 'pervcity', - parameters: JSON.stringify({ tourId: 7 }), + parameters: { tourId: 7 }, }, { slug: 'oraloverdose', @@ -2327,7 +2327,7 @@ const sites = [ description: "Oral Overdose is the only site you need to live out every saliva soaked blowjob of your dreams in HD POV! We've got the most stunning cocksuckers in the world going to town on big dick. These babes not only love cock, they can't get enough of it! In fact, there is no prick too huge for our hungry girls' throats. You'll find gorgeous, big tits pornstars exercising their gag reflex in intense balls deep facefuck scenes. We also feature fresh, young newbies taking on the gagging deepthroat challenge.", url: 'http://www.oraloverdose.com', network: 'pervcity', - parameters: JSON.stringify({ tourId: 4 }), + parameters: { tourId: 4 }, }, { slug: 'chocolatebjs', @@ -2335,15 +2335,15 @@ const sites = [ description: "You've just won the golden ticket to the best Chocolate BJs on the planet! We've sought far and wide to bring you the most beautiful black and ethnic pornstars. And they're in our members' area now! They can't wait to suck your white lollipop and lick the thick cream shooting from your big dick. Of course, no matter how sweet the booty or juicy the big tits, these brown foxes aren't all sugar and spice. In fact, when it comes to giving head, these big ass ebony babes know what they want: huge white cocks filling their throats!", url: 'http://www.chocolatebjs.com', network: 'pervcity', - parameters: JSON.stringify({ tourId: 6 }), + parameters: { tourId: 6 }, }, { slug: 'upherasshole', name: 'Up Her Asshole', - description: "You don't need to travel the globe in search of the anal wonders of the world, because you get your own private tour right here on Up Her Asshole! Our stunning pornstars and rookie starlets welcome all ass fetish and anal sex fans, with their twerking bubble butts and winking assholes. However, big booty worship is just a slice of the fun. Combined with juicy tits (big and small), wet pussy (hairy and bald), these girls deliver a spectacular sensory experience in HD POV. Not only are you in danger of busting a nut before the going gets good, but also when the good turns remarkable with rimming, fingering and butt toys!", + description: "You don't need to travel the globe in search of the anal wonders of the world, because you get your own private tour right here on Up Her Asshole! Our stunning pornstars and rookie starlets welcome all ass fetish and anal sex fans, with their twerking bubble butts and winking assholes. However, big booty worship is just a slice of the fun. Combined with juicy tits (big and small, wet pussy (hairy and bald, these girls deliver a spectacular sensory experience in HD POV. Not only are you in danger of busting a nut before the going gets good, but also when the good turns remarkable with rimming, fingering and butt toys!", url: 'http://www.upherasshole.com', network: 'pervcity', - parameters: JSON.stringify({ tourId: 9 }), + parameters: { tourId: 9 }, }, // PORN PROS { @@ -2611,7 +2611,7 @@ const sites = [ name: 'Pure Taboo', url: 'https://www.puretaboo.com', description: 'PureTaboo.com is the ultimate site for family taboo porn, featuring submissive teens & virgins in rough sex videos in ultra 4k HD.', - parameters: JSON.stringify({ independent: true }), + parameters: { independent: true }, network: 'puretaboo', }, // REALITY KINGS @@ -2619,8 +2619,8 @@ const sites = [ name: 'Look At Her Now', url: 'https://www.lookathernow.com', description: 'Look At Her Now brings you best HD reality porn videos every week. Check out these girls before and after they get some rough pounding.', - parameters: JSON.stringify({ native: true }), - // parameters: JSON.stringify({ siteId: 300 }), + parameters: { native: true }, + // parameters: { siteId: 300 }, slug: 'lookathernow', network: 'realitykings', }, @@ -2628,7 +2628,7 @@ const sites = [ name: 'We Live Together', url: 'https://www.welivetogether.com', description: "We are girls that love to eat pussy and We Live Together! Every week we go out on the streets, bars, parties, malls... wherever and we pick up the cutest lesbians and invite them to come over and party at our apartment. From our girl friends at college, to roommates, and friends of friends.. we're always looking for the hottest lesbian girls around! We Live Together has hundreds of lesbian videos for you to download right from Reality Kings... it's the sexiest lesbian porn anywhere guys and gals! :-) Come watch us eat pussy and work our dildo magic on gorgeous, sexy girls. We love to get together and get off in steamy hot threesome and foursome lesbian movies! We promise you're going to love our amazing collection of lesbian porn. Thanks for dropping in to the We Live Together Apartment, hope you enjoy your visit! Love xoxo Brittney, Taylor, Nicole & All the Girls", - parameters: JSON.stringify({ siteId: 3 }), + parameters: { siteId: 3 }, slug: 'welivetogether', network: 'realitykings', }, @@ -2644,7 +2644,7 @@ const sites = [ name: 'Dare Dorm', url: 'https://www.daredorm.com', description: '', - parameters: JSON.stringify({ siteId: 48 }), + parameters: { siteId: 48 }, slug: 'daredorm', network: 'realitykings', }, @@ -2652,7 +2652,7 @@ const sites = [ name: 'GF Revenge', url: 'https://www.gfrevenge.com', description: '', - parameters: JSON.stringify({ siteId: 49 }), + parameters: { siteId: 49 }, slug: 'gfrevenge', network: 'realitykings', }, @@ -2676,7 +2676,7 @@ const sites = [ name: 'Crazy Asian GFs', url: 'https://www.crazyasiangfs.com', description: '', - parameters: JSON.stringify({ siteId: 52 }), + parameters: { siteId: 52 }, slug: 'crazyasiangfs', network: 'realitykings', }, @@ -2684,7 +2684,7 @@ const sites = [ name: 'Teens Love Huge Cocks', url: 'https://www.teenslovehugecocks.com', description: "Teens Love Big Cocks is dedicated to providing you the hottest teens getting fucked by the biggest cocks! Every week Reality Kings introduces another teen to a big hot meat rod! When these girls see a big throbbing penis they can't resist shoving it in their hot teen mouths. These girl next door types are no slouches when it comes to oral sex! Watch them deepthroat & gag on a mouth full of cock before taking big hot loads all over their pretty faces. The fun doesn't stop there! These girls love getting their tight teen pussy & asses spread wide and pounded by massive dicks! These girls won't settle for less & there is no dick too large. Start downloading TeensLoveBigCock porn videos & HD quality pictures now and watch teen pussy get fucked like you've never seen before!", - parameters: JSON.stringify({ siteId: 42 }), + parameters: { siteId: 42 }, slug: 'teenslovehugecocks', network: 'realitykings', }, @@ -2692,7 +2692,7 @@ const sites = [ name: 'Big Naturals', url: 'https://www.bignaturals.com', description: "If you think there is nothing like big natural breasts, Big Naturals welcomes you home. Reality Kings brings you nothing but the hottest amateur big tit women. We're talking about some seriously big boobs. Sexy women with big bouncy tits who love to get it on. These women don't hesitate to let their big natural tits get fucked and let those massive juggs bounce! Big Naturals has hundreds of high quality videos available for download. If into tits, this is the place to be. There's no plastic parts here, only big natural boobs! There's thousands of high resolution pics available to download as well. Check out any of our top rated scenes for the biggest, huge natural tits. Hooters, fun bags, juggs... whatever you want to call them Reality Kings and Big Naturals have the hottest big boobs you'll find anywhere. Sit back, relax, and watch the titties bounce... Reality Kings style!", - parameters: JSON.stringify({ siteId: 5 }), + parameters: { siteId: 5 }, slug: 'bignaturals', network: 'realitykings', }, @@ -2700,7 +2700,7 @@ const sites = [ name: 'Money Talks', url: 'https://www.moneytalks.com', description: "Money Talks... bullshit walks. We all know the saying, but at Reality Kings we like to prove it! Just watch us approach everyday people on the street and ask them what they will do for some real American Greenbacks! Check out smokin' hot amateurs preform in porn videos or watch crazy college kids preform insane stunts on film... all in exchange for cold hard cash. People will do anything when Money Talks! Watch as we offer cash in exchange for one, AMAZING blow job! From crazy Spring Breakers to the girl next door, we find some amazing sluts and see just what they'll do for the loot--girls that give up the booty, for the booty! Arrr! Reality Kings has every high quality Money Talks episode available for download. We're talking about some seriously hot videos here. You won't find this crazy porn content anywhere else! Remember, Money Talks... bullshit walks!", - parameters: JSON.stringify({ siteId: 28 }), + parameters: { siteId: 28 }, slug: 'moneytalks', network: 'realitykings', }, @@ -2708,7 +2708,7 @@ const sites = [ name: 'Moms Lick Teens', url: 'https://www.momslickteens.com', description: 'Hot moms know how to fuck, especially when they have a lot of pent up energy. MomsLickTeens.com is where all the magic happens between lustful milf minxes and curious 18+ teen bombshells in HD porn videos. Mature horny women love to sample a fresh batch of pussy and ass whenever possible here at Reality Kings. They love teaching the carnal arts to eager younger women who crave a deeper understanding of the female body. Our bodacious mommies love exploring the anatomy of their fresh-faced lesbian lovers and engage in cunnilingus and anilingus within seconds. Naked women licking, sucking, scissoring, and toying their gaping pussy and assholes with a plethora of adult toys is absolutely riveting to watch. You’ll be aroused by RK girls of different ages rolling around together in sweaty sex scenes. Moms Lick Teens features limber tongues exploring the deepest recesses of female erogenous zones often eliciting projectile squirt orgasms. The phenomenon of female ejaculation occurs regularly in our premium erotica so get a load of it while blowing your own load to our buxom mommies today!', - parameters: JSON.stringify({ siteId: 43 }), + parameters: { siteId: 43 }, slug: 'momslickteens', network: 'realitykings', }, @@ -2724,7 +2724,7 @@ const sites = [ name: 'Milf Hunter', url: 'https://www.milfhunter.com', description: "Reality Kings presents MILF Hunter the ORIGINAL reality porn site dedicated to MILFs and mature sex content. If you don't know what a MILF is, allow us to explain... we're talking about sex starved, smokin' hot moms that are in need of a little attention--a MILF, a Mother I'd Like to Fuck! We've all seen these moms at the mall, the beach, and around town. Watch every week as the Hunter captures another hottie on film and gives them what they've been craving... some dick! These moms are seriously hot MILFs and they appear in the most incredible high quality pics and movies! We have hundreds of mature porn videos available for you to download. Or if you're looking for photos we have thousands of high resolution MILF porn pics directly from the MILF Hunter! Reality Kings brings you the best mature sex scenes around so why not join the MILF Hunter hunt down mature moms across America...", - parameters: JSON.stringify({ siteId: 2 }), + parameters: { siteId: 2 }, slug: 'milfhunter', network: 'realitykings', }, @@ -2748,7 +2748,7 @@ const sites = [ name: 'Cum Fiesta', url: 'https://www.cumfiesta.com', description: '"Is this the fiesta $4 " Of course, welcome to the Cum Fiesta! Every week Reality Kings welcomes another hottie to the party... the dick sucking party! :-) When the girl (or girls!) arrive they show us the super secret password (watch a trailer to find out) and the party begins! As their clothes come off, these babes begin to show off their amazing oral skills. Amateur chicks taking the biggest facial cumshots, that\'s what Cum Fiesta is about! There are no pansy blow jobs here, these chicks give the best head around, and take huge cum shots to their face at the same time. Download hundreds of high quality videos and pics of semen swallowing hotties. Join the party that features amateurs, newbies, and even the girl next door! These babes love to suck cock and take incredible cum shots you\'ll find no where else! This is no siesta folks, it\'s a Cum Fiesta!', - parameters: JSON.stringify({ siteId: 10 }), + parameters: { siteId: 10 }, slug: 'cumfiesta', network: 'realitykings', }, @@ -2756,7 +2756,7 @@ const sites = [ name: '8th Street Latinas', url: 'https://www.8thstreetlatinas.com', description: "Scientists say that the sun is what makes the temperature rise south of the equator, but we think its the women! If you haven't seen the chicas (women) from 8th Street Latinas, you're in for a spicy treat. From the famous Calle 8 (8th Street) in Miami, Reality Kings brings you the some incredibly hot latinas! We're talking Cubans, Dominicans, Panamanians, and other sexy latinas from South and Central America. These babes aim to please with their tanned bodies and deliciously round asses. Damn, we can't get enough! 8th Street Latinas has some caliente (hot) content for you to download, featuring the hottest latina sex scenes around. These are not tanned white chicks, these are REAL, hot latinas who know how to get your blood pumping. If you think you can handle the heat, grab your pair of shorts and flip-flops and let's head to Miami... 8th Street Latinas has some incredible latina porn for you!", - parameters: JSON.stringify({ siteId: 1 }), + parameters: { siteId: 1 }, slug: '8thstreetlatinas', network: 'realitykings', }, @@ -2764,7 +2764,7 @@ const sites = [ name: "Mike's Apartment", url: 'http://www.mikesapartment.com', description: 'There\'s a room for rent in Mikes Apartment and Mike has found another hot chick to fill the vacancy! Join Mike on his search for roommates to help pay the bills. If these hot euro babes don\'t have the money, that\'s alright, Mike offers them the room in exchange for a few hours of masturbation and fun! And if the girl is traveling with a companion, thats not a problem... Mike just creates another steamy euro sex film for his "private" collection. Seriously, these babes are Europe\'s finest and Mike is your connoisseur of European booty! From their tight bodies, to their thick accents, these ladies know how to please and excite. Reality Kings offers hundreds of our incredible european porn movies and pics for you to download, and you don\'t have to travel to Moscow to get them. If you\'re looking for original, hot, European porn content, welcome to your new home: Mikes Apartment.', - parameters: JSON.stringify({ siteId: 25 }), + parameters: { siteId: 25 }, slug: 'mikesapartment', network: 'realitykings', }, @@ -2772,7 +2772,7 @@ const sites = [ name: 'In the VIP', url: 'http://www.inthevip.com', description: "Ever wonder what happens In The VIP$3 Reality Kings takes you to the hottest night clubs in the country to show you exactly what goes on in the VIP room. When the club is packed, the music is pumpin', and the ladies are looking this HOT, you know it's going to be a damn good time! Grab a drink and step into the VIP room. Check out these gorgeous babes shaking their asses and flashing the camera. You will never see ladies like this in some whack ass bar, only in the most exclusive VIP rooms. As the party gets going, the clothes come off, and the panties drop! Watch some amazing free VIP porn movies, featuring these hotties having sex VIP style. We're talking about some down and dirty club sex featuring smokin' hot sluts. These chicks came for a good time and they've found it! Join the exclusive party In The VIP.", - parameters: JSON.stringify({ siteId: 22 }), + parameters: { siteId: 22 }, slug: 'inthevip', network: 'realitykings', }, @@ -2820,7 +2820,7 @@ const sites = [ name: 'Captain Stabbin', url: 'https://www.captainstabbin.com', description: "Hop aboard the S.S. Stabbin and join Captain Stabbin on his trip to analize the seven seas! What's better than a girl with a hot pussy$8 A girl with a hot pussy getting poked in the ass! Reality Kings invites you to the worlds greatest anal sex adventure. These babes don't need a boarding pass to climb aboard this ship, only a hot body and a gorgeous ass. Watch as the Captain sets course for the anal islands in search of the best anal sex scenes around! Download hundreds of incredible anal sex movies and pics in stunning high quality formats. Captain Stabbin brings you the very best booty content, from her first anal sex scene, to amazing boat sex scenes at sea, every episode is sure to please! These girls are ready for a stern spanking (pun intended)! Raise the main sail, set course, and join Captain Stabbin on his anal adventure! Arrr!", - parameters: JSON.stringify({ siteId: 8 }), + parameters: { siteId: 8 }, slug: 'captainstabbin', network: 'realitykings', }, @@ -2868,7 +2868,7 @@ const sites = [ name: 'Happy Tugs', url: 'https://www.happytugs.com', description: "Come on dudes, who doesn't like a happy ending$13 We've all seen those hole in the wall Asian massage parlors! Finally there is a site that celebrates the hand job. Asian beauties rubbing massage oil all over, what could be better$14 These babes know how to work out the kinks, seriously amazing rub 'n tug jobs. Happy Tugs captures hidden camera footage from inside one of the country's best sexual massage parlors. The dudes come in looking for a little rub down and, for a few dollars more, get a full servicing. It doesn't get any better than this, hand jobs and hot Asian babes. Check out our amazing happy ending videos, with babes rubbing their oil soaked breasts all over their favorite customers. Strip down, jump on the massage table and get your wallet out, Happy Tugs will ensure you get a very happy ending!", - parameters: JSON.stringify({ siteId: 19 }), + parameters: { siteId: 19 }, slug: 'happytugs', network: 'realitykings', }, @@ -2948,7 +2948,7 @@ const sites = [ name: 'Moms Bang Teens', url: 'https://www.momsbangteens.com', description: "Reality Kings presents the first website dedicated to hot moms who love to bang 18+ teens. Moms Bang Teens features the sexiest MILFs on the web, and these MILFs are all about fucking young guys on camera. If you remember lusting after one of your friend's hot moms back in grade school, then you know exactly what Moms Bang Teens is all about. Imagine if instead of just fantasizing about that sexy mother, you actually got to bang her. These are the same hot moms you see at your local supermarket and shopping at your neighborhood mall. Some of them are married and never get the attention they need. While others are just horny and sexy moms who never got tied down with a husband. Instead they like to go out and find hot young studs that know how to fuck them right. These are experienced and mature women who know what they want; young 18+ teens that can give them that rock hard cock.", - parameters: JSON.stringify({ siteId: 27 }), + parameters: { siteId: 27 }, slug: 'momsbangteens', network: 'realitykings', }, @@ -2956,7 +2956,7 @@ const sites = [ name: 'Sneaky Sex', url: 'https://www.sneakysex.com', description: 'Sneaky dirty sex! They are fucking and nobody can see, otherwise they will have a HUGE problem. When no one is watching, these horny MILFs and Teens are having sneaky sex!', - parameters: JSON.stringify({ siteId: 46 }), + parameters: { siteId: 46 }, slug: 'sneakysex', network: 'realitykings', }, @@ -2980,7 +2980,7 @@ const sites = [ name: 'Lil Humpers', url: 'https://lilhumpers.com', description: '', - parameters: JSON.stringify({ siteId: 310 }), + parameters: { siteId: 310 }, slug: 'lilhumpers', network: 'realitykings', }, @@ -3004,7 +3004,7 @@ const sites = [ name: 'Tranny Surprise', url: 'https://www.trannysurprise.com', description: 'If you’re in the mood for graphic tranny porn, look no further than TrannySurprise.com. A sexy shemale is a thing of beauty, often possessing a voracious appetite for sex. Reality Kings is home to some of the most incredible transsexual pornstars on the net. Watch them stroke their huge dicks and massage their voluminous ball sacks in our full-length HD videos. All these goddesses want to do is suck dick until it erupts in their wide open mouths. Cum swallowing is their specialty so enjoy our scenes full of creamy jizz loads overflowing onto their giant tits and firm stomachs. These nude RK shemales live to get rimjobs before getting drilled by gigantic dicks. Messy creampies are usually how their nights end so witness the torrid fuck marathons leading up to juicy orgasms. Tranny Surprise features sensual ladyboys that know just how to please anyone looking to take a walk on the wild side. Premium porno is what you deserve so eat it all up with our luscious, busty trannies. Long legs, tight asses, toned physiques, and a healthy dose of raw animal passion is what our “chicks with dicks” deliver in every one of our erotic films.', - parameters: JSON.stringify({ native: true }), + parameters: { native: true }, slug: 'trannysurprise', network: 'realitykings', }, @@ -3036,7 +3036,7 @@ const sites = [ name: 'Round and Brown', url: 'https://www.roundandbrown.com', description: 'Chocolate lovers out there, Reality Kings presents to you... Round And Brown, the porn site that caters to horny dudes who have a mighty craving for fine "sistah" booties. The ladies featured in these ebony porn movies are SIZZLING HOT, like a newly melted chocolate fondue! We\'re talking about some damn fine black booties! If it\'s Round And Brown, it gets the special lube treatment, no exceptions! Think you can handle this collection of premium ebony ass$1 There\'s no skinny white girls here, only gorgeous black beauties with deliciously round booties, featured in the best hardcore ebony sex videos around! Reality Kings is the only one who can bring you this amazing collection of black girl porn. If you love big round asses, gorgeous black babes, and amazing tits we have the videos and pics you\'re looking for. Warning: This chocolate may melt in your hand and your mouth... but who cares, if it\'s Round And Brown!', - parameters: JSON.stringify({ siteId: 33 }), + parameters: { siteId: 33 }, slug: 'roundandbrown', network: 'realitykings', }, @@ -3491,6 +3491,7 @@ const sites = [ slug: 'scorevideos', url: 'https://www.scorevideos.com', network: 'score', + parameters: { path: '/porn-videos' }, priority: 2, }, { @@ -3577,7 +3578,7 @@ const sites = [ name: 'Exxxtra Small', description: '', url: 'https://www.exxxtrasmall.com', - parameters: JSON.stringify({ id: 'exs' }), + parameters: { id: 'exs' }, network: 'teamskeet', }, { @@ -3585,7 +3586,7 @@ const sites = [ name: 'Teen Pies', description: '', url: 'https://www.teenpies.com', - parameters: JSON.stringify({ id: 'tp' }), + parameters: { id: 'tp' }, network: 'teamskeet', }, { @@ -3593,7 +3594,7 @@ const sites = [ name: 'Innocent High', description: '', url: 'https://www.innocenthigh.com', - parameters: JSON.stringify({ id: 'ih' }), + parameters: { id: 'ih' }, network: 'teamskeet', }, { @@ -3601,7 +3602,7 @@ const sites = [ name: 'Teen Curves', description: '', url: 'https://www.teencurves.com', - parameters: JSON.stringify({ id: 'tc' }), + parameters: { id: 'tc' }, network: 'teamskeet', }, { @@ -3609,7 +3610,7 @@ const sites = [ name: 'CFNM Teens', description: '', url: 'https://www.cfnmteens.com', - parameters: JSON.stringify({ id: 'cfnm' }), + parameters: { id: 'cfnm' }, network: 'teamskeet', }, { @@ -3617,7 +3618,7 @@ const sites = [ name: 'Teens Love Anal', description: '', url: 'https://www.teensloveanal.com', - parameters: JSON.stringify({ id: 'tla' }), + parameters: { id: 'tla' }, network: 'teamskeet', }, { @@ -3625,7 +3626,7 @@ const sites = [ name: 'My Babysitters Club', description: '', url: 'https://www.mybabysittersclub.com', - parameters: JSON.stringify({ id: 'bsc' }), + parameters: { id: 'bsc' }, network: 'teamskeet', }, { @@ -3633,7 +3634,7 @@ const sites = [ name: 'She\'s New', description: '', url: 'https://www.shesnow.com', - parameters: JSON.stringify({ id: 'bsc' }), + parameters: { id: 'bsc' }, network: 'teamskeet', }, { @@ -3641,7 +3642,7 @@ const sites = [ name: 'Teens Do Porn', description: '', url: 'https://www.teensdoporn.com', - parameters: JSON.stringify({ id: 'tdp' }), + parameters: { id: 'tdp' }, network: 'teamskeet', }, { @@ -3649,7 +3650,7 @@ const sites = [ name: 'POV Life', description: '', url: 'https://www.povlife.com', - parameters: JSON.stringify({ id: 'pov' }), + parameters: { id: 'pov' }, network: 'teamskeet', }, { @@ -3657,7 +3658,7 @@ const sites = [ name: 'The Real Workout', description: '', url: 'https://www.therealworkout.com', - parameters: JSON.stringify({ id: 'trw' }), + parameters: { id: 'trw' }, network: 'teamskeet', }, { @@ -3665,7 +3666,7 @@ const sites = [ name: 'This Girl Sucks', description: '', url: 'https://www.thisgirlsucks.com', - parameters: JSON.stringify({ id: 'tgs' }), + parameters: { id: 'tgs' }, network: 'teamskeet', }, { @@ -3673,7 +3674,7 @@ const sites = [ name: 'Teens Love Money', description: '', url: 'https://www.teenslovemoney.com', - parameters: JSON.stringify({ id: 'tlm' }), + parameters: { id: 'tlm' }, network: 'teamskeet', }, { @@ -3681,7 +3682,7 @@ const sites = [ name: 'Oye Loca', description: '', url: 'https://www.oyeloca.com', - parameters: JSON.stringify({ id: 'ol' }), + parameters: { id: 'ol' }, network: 'teamskeet', }, { @@ -3689,7 +3690,7 @@ const sites = [ name: 'Titty Attack', description: '', url: 'https://www.tittyattack.com', - parameters: JSON.stringify({ id: 'ta' }), + parameters: { id: 'ta' }, network: 'teamskeet', }, { @@ -3697,7 +3698,7 @@ const sites = [ name: 'Teeny Black', description: '', url: 'https://www.teenyblack.com', - parameters: JSON.stringify({ id: 'tb' }), + parameters: { id: 'tb' }, network: 'teamskeet', }, { @@ -3705,7 +3706,7 @@ const sites = [ name: 'Lust HD', description: '', url: 'https://www.lusthd.com', - parameters: JSON.stringify({ id: 'lhd' }), + parameters: { id: 'lhd' }, network: 'teamskeet', }, { @@ -3713,7 +3714,7 @@ const sites = [ name: 'Rub A Teen', description: '', url: 'https://www.rubateen.com', - parameters: JSON.stringify({ id: 'rat' }), + parameters: { id: 'rat' }, network: 'teamskeet', }, { @@ -3721,7 +3722,7 @@ const sites = [ name: 'Her Freshman Year', description: '', url: 'https://www.exxxtrasmall.com', - parameters: JSON.stringify({ id: 'hfy' }), + parameters: { id: 'hfy' }, network: 'teamskeet', }, { @@ -3729,7 +3730,7 @@ const sites = [ name: 'Self Desire', description: '', url: 'https://www.selfdesire.com', - parameters: JSON.stringify({ id: 'sd' }), + parameters: { id: 'sd' }, network: 'teamskeet', }, { @@ -3737,7 +3738,7 @@ const sites = [ name: 'Solo Interviews', description: '', url: 'https://www.solointerviews.com', - parameters: JSON.stringify({ id: 'si' }), + parameters: { id: 'si' }, network: 'teamskeet', }, { @@ -3745,7 +3746,7 @@ const sites = [ name: 'Team Skeet Extras', description: '', url: 'https://www.teamskeetextras.com', - parameters: JSON.stringify({ id: 'tse' }), + parameters: { id: 'tse' }, network: 'teamskeet', }, { @@ -3753,7 +3754,7 @@ const sites = [ name: 'Dyked', description: '', url: 'https://www.dyked.com', - parameters: JSON.stringify({ id: 'dyk' }), + parameters: { id: 'dyk' }, network: 'teamskeet', }, { @@ -3761,7 +3762,7 @@ const sites = [ name: 'Bad MILFs', description: '', url: 'https://www.badmilfs.com', - parameters: JSON.stringify({ id: 'bad' }), + parameters: { id: 'bad' }, network: 'teamskeet', }, { @@ -3769,7 +3770,7 @@ const sites = [ name: 'Ginger Patch', description: '', url: 'https://www.gingerpatch.com', - parameters: JSON.stringify({ id: 'gp' }), + parameters: { id: 'gp' }, network: 'teamskeet', }, { @@ -3777,7 +3778,7 @@ const sites = [ name: 'Brace Faced', description: '', url: 'https://www.bracefaced.com', - parameters: JSON.stringify({ id: 'bfd' }), + parameters: { id: 'bfd' }, network: 'teamskeet', }, { @@ -3785,7 +3786,7 @@ const sites = [ name: 'Teen JOI', description: '', url: 'https://www.teenjoi.com', - parameters: JSON.stringify({ id: 'joi' }), + parameters: { id: 'joi' }, network: 'teamskeet', }, { @@ -3793,7 +3794,7 @@ const sites = [ name: 'Step Siblings', description: '', url: 'https://www.stepsiblings.com', - parameters: JSON.stringify({ id: 'sss' }), + parameters: { id: 'sss' }, network: 'teamskeet', }, { @@ -3801,7 +3802,7 @@ const sites = [ name: 'Submissived', description: '', url: 'https://www.submissived.com', - parameters: JSON.stringify({ scraper: 'A' }), + parameters: { scraper: 'A' }, network: 'teamskeet', }, { @@ -3809,7 +3810,7 @@ const sites = [ name: 'Family Strokes', description: '', url: 'https://www.familystrokes.com', - parameters: JSON.stringify({ scraper: 'A' }), + parameters: { scraper: 'A' }, network: 'teamskeet', }, // VIXEN @@ -3869,7 +3870,7 @@ const sites = [ name: 'Wicked', url: 'https://www.wicked.com', description: 'Welcome to the new Wicked.com! Watch over 25 years of Wicked Pictures\' brand of award-winning porn for couples and women in 4k HD movies & xxx videos', - parameters: JSON.stringify({ independent: true }), + parameters: { independent: true }, network: 'wicked', }, // XEMPIRE @@ -3921,7 +3922,7 @@ exports.seed = knex => Promise.resolve() name: site.name, description: site.description, url: site.url, - parameters: site.parameters, + parameters: JSON.stringify(site.parameters), network_id: networksMap[site.network], priority: site.priority, })); diff --git a/src/releases.js b/src/releases.js index a9f0c08d..ad0bf0bf 100644 --- a/src/releases.js +++ b/src/releases.js @@ -279,17 +279,13 @@ async function fetchTagReleases(queryObject, options = {}) { function accumulateActors(releases) { return releases.reduce((acc, release) => { - if (!release.actors) return acc; + if (!Array.isArray(release.actors)) return acc; release.actors.forEach((actor) => { - const trimmedActor = actor.trim(); + const actorName = actor.name ? actor.name.trim() : actor.trim(); - if (acc[trimmedActor]) { - acc[trimmedActor] = acc[trimmedActor].concat(release.id); - return; - } - - acc[trimmedActor] = [release.id]; + if (!acc[actorName]) acc[actorName] = []; + acc[actorName].push(release.id); }); return acc; diff --git a/src/scrapers/score.js b/src/scrapers/score.js index 582f9ca8..35718361 100644 --- a/src/scrapers/score.js +++ b/src/scrapers/score.js @@ -32,10 +32,9 @@ function scrapeAll(html) { return exa(html, '.container .video').map(({ q, qa, qd, ql }) => { const release = {}; - const linkEl = q('a.i-title'); - - release.title = linkEl.textContent.trim(); + release.title = q('.title, .i-title', true); + const linkEl = q('a'); const url = new URL(linkEl.href); release.url = `${url.origin}${url.pathname}`; @@ -44,14 +43,18 @@ function scrapeAll(html) { [release.entryId] = url.pathname.split('/').slice(-2); - release.date = qd('.i-date', 'MMM DD', /\w+ \d{1,2}$/); - release.actors = qa('.i-model', true); + release.date = qd('.i-date', 'MMM DD', /\w+ \d{1,2}$/) + || qd('.dt-box', 'MMM.DD YYYY'); + release.actors = qa('.model, .i-model', true); release.duration = ql('.i-amount'); const posterEl = q('.item-img img'); if (posterEl) { release.poster = `https:${posterEl.src}`; + } + + if (posterEl?.dataset.gifPreview) { release.teaser = { src: `https:${posterEl.dataset.gifPreview}`, }; @@ -62,15 +65,15 @@ function scrapeAll(html) { } async function scrapeScene(html, url) { - const { q, qa, qd, ql, qu, qp, qt } = ex(html, '#videos-page'); + const { q, qa, qtext, qd, ql, qu, qis, qp, qt } = ex(html, '#videos-page, #content'); const release = {}; [release.entryId] = new URL(url).pathname.split('/').slice(-2); - release.title = q('#breadcrumb-top + h1', true); - release.description = q('.p-desc', true); + release.title = q('h2.text-uppercase, h2.title', true); + release.description = qtext('.p-desc, .desc'); - release.actors = qa('a[href*=models]', true); + release.actors = qa('.value a[href*=models], .value a[href*=performer]', true); release.tags = qa('a[href*=tag]', true); const dateEl = qa('.value').find(el => /\w+ \d+\w+, \d{4}/.test(el.textContent)); @@ -80,8 +83,13 @@ async function scrapeScene(html, url) { release.duration = ql(durationEl); const photosUrl = qu('a[href*=photos]'); - release.photos = await fetchPhotos(photosUrl); - release.poster = qp('video'); // _800.jpg is larger than _xl.jpg in landscape + + if (photosUrl) { + release.photos = await fetchPhotos(photosUrl); + release.poster = qp('video'); // _800.jpg is larger than _xl.jpg in landscape + } else { + release.photos = qis('img[src*=ThumbNails]'); + } const trailer = qt(); release.trailer = [ @@ -154,7 +162,8 @@ function scrapeProfile(html) { } async function fetchLatest(site, page = 1) { - const url = `${site.url}/big-boob-videos?page=${page}`; + const latestPath = site.parameters?.path || '/big-boob-videos'; + const url = `${site.url}${latestPath}?page=${page}`; const res = await bhttp.get(url); if (res.statusCode === 200) { diff --git a/src/utils/q.js b/src/utils/q.js index aad196bb..de0c97b1 100644 --- a/src/utils/q.js +++ b/src/utils/q.js @@ -35,6 +35,19 @@ function qall(context, selector, attrArg, trim = true) { return Array.from(context.querySelectorAll(selector)); } +function qtext(context, selector, trim = true) { + const el = q(context, selector, false, trim); + if (!el) return null; + + const text = Array.from(el.childNodes) + .filter(node => node.nodeName === '#text') + .map(node => (trim ? node.textContent : node.textContent.trim())) + .join(' '); + + if (trim) return text.trim(); + return text; +} + function qmeta(context, selector, attrArg = 'content', trim = true) { return q(context, selector, attrArg, trim); } @@ -95,6 +108,8 @@ function qtrailer(context, selector = 'source', attr = 'src', protocol = 'https' function qlength(context, selector, attr = 'textContent') { const durationString = q(context, selector, attr); + + if (!durationString) return null; const duration = durationString.match(/(\d+:)?\d+:\d+/); if (duration) { @@ -115,6 +130,7 @@ const funcs = { qposter, qlength, qmeta, + qtext, qtrailer, qurls, qurl, @@ -126,6 +142,7 @@ const funcs = { ql: qlength, qm: qmeta, qt: qtrailer, + qtx: qtext, qu: qurl, qus: qurls, };