1159 lines
59 KiB
JavaScript
Executable File
1159 lines
59 KiB
JavaScript
Executable File
const path = require('path');
|
||
const Promise = require('bluebird');
|
||
const sharp = require('sharp');
|
||
|
||
const upsert = require('../src/utils/upsert');
|
||
|
||
const sfw = Object.entries({
|
||
animals: [
|
||
['7WXfIIxVlNo', 'David Boca'],
|
||
['aMBhrrveocw', 'Ivan Diaz'],
|
||
['LTzbD8lj0kw', 'Lionel HESRY'],
|
||
['t2I1PTZEx4E', 'Mohamed Nanabhai'],
|
||
['0S1qMPpHbkE', 'Thomas Giotopoulos'],
|
||
['UnLcVKt7d7I', 'Fernando @cferdo'],
|
||
['reXwAuEdkVM', 'Ryan Al Bishri'],
|
||
['Hq5N_iPRkOs', 'Axel Holen'],
|
||
['GtXsMqOR3ik', 'Sophie Dale'],
|
||
['FYJNmIQk7JA', 'Anastasiya Romanova'],
|
||
['pQmu6_4VDaI', 'joel herzog'],
|
||
['j0iiByCxGfA', 'Jordan Opel'],
|
||
['67rtZAf_Jgw', 'Sean Thoman'],
|
||
['2puB0ahKDag', 'K. Mitch Hodge'],
|
||
['AM9ZtoUss68', 'Erica Nilsson'],
|
||
['7r58deUCN4Q', 'Zuriela Benitez'],
|
||
['PQJN_Po0O1U', 'Quaid Lagan'],
|
||
['rCkstBJusv4', 'Martin Woortman'],
|
||
['Tj4lLm49hhM', 'Saketh Upadhya'],
|
||
['SjtR_cCEh0w', 'Patti Black'],
|
||
['hmn3ZiTDep4', 'Portuguese Gravity'],
|
||
['ZC3LibyQxZQ', 'Narges Pms'],
|
||
['l-OYOwN2gpQ', 'Pablo Guerrero'],
|
||
['E8LxrpUjW7Q', 'Tamara Bellis'],
|
||
['xYVRzube0iM', 'Ricardo Braham'],
|
||
['7AzUTGOBeJI', 'Adam Thomas'],
|
||
['9Ha6VNNsKAA', 'Thomas Evans'],
|
||
['GNvCMZzljr0', 'Hari Nandakumar'],
|
||
['51u3WqwzXnQ', 'Grace Evans'],
|
||
['X8Sck0T0y8s', 'Mélody P'],
|
||
],
|
||
kittens: [
|
||
['fEK4jvgnApg', 'Kim Davies'],
|
||
['FCx5h0erwnA', 'Lorraine Steriopol'],
|
||
['RcGUiP9dphM', 'Kym Ellis'],
|
||
['gAPXLS1LRVE', 'Olya Kuzovkina'],
|
||
['JHf_O0inuHg', 'Prasad Panchakshari'],
|
||
['CKsDMYPDgCs', 'Jacalyn Beales'],
|
||
['mQquoOszMRM', 'Dimitri Houtteman'],
|
||
['MNju0A6EeE0', 'Amy Baugess'],
|
||
['emI7VUcvLi0', 'The Lucky Neko'],
|
||
['Aq4e2-v7UuQ', 'Mario Peter'],
|
||
['6vY_jbV12kQ', 'Kazuky Akayashi'],
|
||
['1BfCps2-XjQ', 'Ramiz Dedaković'],
|
||
['iNEXVlX-RLs', 'Lucija Ros'],
|
||
['b8g-ywrrl5Y', 'Leighann Blackwood'],
|
||
['Y3gjv5x38Wc', 'Agustin Fernandez'],
|
||
['TYXh7h4QxX0', 'Leighann Blackwood'],
|
||
['6EchiwVg7C4', 'Jesse Borovnica'],
|
||
['fGh_mgAcKYY', 'Šárka Jonášová'],
|
||
['V8o2n1GbMWc', 'Hunt Han'],
|
||
['TEnrxLKakgI', 'Diver Zhang'],
|
||
['XZuTLRfxwcU', 'Diana Parkhouse'],
|
||
['rpvS2T2Tl0c', 'Luiza Braun'],
|
||
['1S08ciB6Fy4', 'Екатерина Балабанова'],
|
||
['iuBVMDnwaho', 'Shaun Meintjes'],
|
||
['02kGh5lGsb8', 'Kym Ellis'],
|
||
['8ELEgu78IbU', 'Kristin Wilson'],
|
||
['TQ0XD_mGC8c', 'Kamal Bilal'],
|
||
['zgvb8Knw_AU', 'Zoë Gayah Jonker'],
|
||
['GGb-AyBZhjY', 'Brett Jordan'],
|
||
['DyD9hx5lvpg', 'James Pond'],
|
||
],
|
||
dogs: [
|
||
['f7-aL0xQd6A', 'Mark Galer'],
|
||
['kOI1RlSGsfo', 'Mark Zamora'],
|
||
['7c8z4KEvgds', 'William Daigneault'],
|
||
['oWrZoAVOBS0', 'William Daigneault'],
|
||
['xwpF_Hts7jA', 'Carolinie Cavalli'],
|
||
['72mXoMwCoq4', 'Yuki Dog'],
|
||
['7EKROB9iGFc', 'Yuki Dog'],
|
||
['cX-KEISwDIw', 'Cole Keister'],
|
||
['6v-lTFEoO6E', 'Camilo Fierro'],
|
||
['1-sM8xqPFTM', 'Dimitri Bong'],
|
||
['uTRtIcwkbGM', 'Lenin Estrada'],
|
||
['dpn6K9e1vzY', 'Evan Clark'],
|
||
['M8AKGLnbi90', 'Tatiana Rodriguez'],
|
||
['sxGJv1SUlew', 'Jon Tyson'],
|
||
['pT9TTuuzivQ', 'William Daigneault'],
|
||
['KKNxCHLesGc', 'Julio Arcadio Santamaría Reyes'],
|
||
['e_Du6fAT5dI', 'Thomas Fryatt'],
|
||
['1IqHMmYaQJE', 'Mitchell Orr'],
|
||
['BHh-jKrTIoU', 'NICOLAS TESSARI'],
|
||
['l6GlfPH-8y4', 'Tatiana Rodriguez'],
|
||
['d7TLLuiwm_c', 'Brett Jordan'],
|
||
['I_PBuIa3Bm8', 'Karl Bewick'],
|
||
['d2hWXEV8J-8', 'Harrison Kugler'],
|
||
['AhKXmqa_7yU', 'Yuki Dog'],
|
||
['aH79Nc7Npas', 'Irene Garcia'],
|
||
['v3-zcCWMjgM', 'James Barker'],
|
||
],
|
||
architecture: [
|
||
['jBanV-D3T-Q', 'Dimitry Anikin'],
|
||
['VoQ35NRfZro', 'Dabbas'],
|
||
['_u_wI4LaT7o', 'Alex Hudson'],
|
||
['oSmn4cbhl8w', 'Jorge Gardner'],
|
||
['c8GdokJMjWU', 'Mert Kahveci'],
|
||
['nfPguKj20Ac', 'Ilya Panasenko'],
|
||
['GGxUyCgfORg', 'photo_comments'],
|
||
['oLUPaceKme0', 'Jack Schwartz'],
|
||
['bo6oz4m4OXY', 'Vinicius Henrique'],
|
||
['7HYbCXD2GSA', 'Theme Inn'],
|
||
['6K4hh4VX3T0', 'SaiKrishna Saketh'],
|
||
['lTxOZBNZ9yM', '[2Ni]'],
|
||
['H3mL3kocOQ4', 'Artur Matosyan'],
|
||
['ijxxeMO3c8E', 'Larry Teo'],
|
||
['WMrd7-CjyF0', 'Anna Claire Schellenberg'],
|
||
['FJIFiUCOTfc', 'Kirsten Drew'],
|
||
['9daKXiWx5Eg', 'Anastasia Dulgier'],
|
||
['47QjuZBn5dQ', 'Murugavel Oli'],
|
||
['yjR2ne1gtAA', 'Marius'],
|
||
['y9vO3FWDZb0', 'bckfwd'],
|
||
['Ro6CB6x-VUg', 'Andreas NextVoyagePL'],
|
||
['2td44mctvmI', 'Cameron Venti'],
|
||
['M1uoNRrNrkE', 'Willian Justen de Vasconcellos'],
|
||
['L-2jRW74fPY', 'Daryan Shamkhali'],
|
||
['Qr5pi1_GlvY', 'Benno Klandt'],
|
||
['twruXW0M2Mw', 'sk'],
|
||
['B8vwUO2NM9Y', 'Stuart Frisby'],
|
||
['p9jBrqMSU6Q', 'Han Leentvaar'],
|
||
['4rGlazYAV3I', 'Dmitry Bayer'],
|
||
],
|
||
flowers: [
|
||
['4QLKuXKAy7k', 'BEAUFIGEAU CELINE'],
|
||
['DlYzHwAl32g', 'HISANARI KUNIMOTO'],
|
||
['3TXuFNun-5Q', 'Erik Andres Reynoso'],
|
||
['Rrhfeq9yeQ0', 'NeONBRAND'],
|
||
['YaQdJyulJdU', 'Natasha V'],
|
||
['wt4u1wNiT9I', 'Teo Zac'],
|
||
['HG5RcKEawLA', 'Varshesh Joshi'],
|
||
['VBtdWGCQ2yw', 'Vanessa Ochotorena'],
|
||
['a-lIQzpvbHs', 'Thomas AE'],
|
||
['D5RScffd8WU', 'NeONBRAND'],
|
||
['mXQyEcINwa8', 'Thought Catalog'],
|
||
['REczfcmwooE', 'Steve Harvey'],
|
||
['7pGehyH7o64', 'Leonardo Wong'],
|
||
['wvGQYtZ_c08', 'chuttersnap'],
|
||
['jjqZ0gvHLYc', 'Suresh Purohit'],
|
||
['9wQ-aGu0gBs', 'Joël de Vriend'],
|
||
['8ANiHTtHbAQ', 'Nick Karvounis'],
|
||
['Ehko8EbURbk', 'Chris Barbalis'],
|
||
['Rlxfn__azLQ', 'Annie Spratt'],
|
||
['q8I3Jeph4uU', 'Jake Dela Concepcion'],
|
||
['wQjjYp8_a0Y', 'Henry Lorenzatto'],
|
||
['GnwWHUXBfYI', 'Will Svec'],
|
||
['pwFNVBlj5XU', 'Danijela Froki'],
|
||
['RWz313DUECo', 'Laura Baker'],
|
||
['lffwXgsqChg', 'Nils Schirmer'],
|
||
['e1O6NCmhUt4', 'Brian McGowan'],
|
||
],
|
||
food: [
|
||
['1ZTccDpF71k', 'Austin Paquette'],
|
||
['4-rmvQRL2nY', 'Annie Spratt'],
|
||
['44eKcVXzFoc', 'Alonso Romero'],
|
||
['4E0dknSrQVU', 'Matteo Maretto'],
|
||
['4PtChDuxsDI', 'Dronile Hiraldo'],
|
||
['8JIIoSFtEbo', 'Massimo Virgilio'],
|
||
['8Yvwy4Kbd1g', 'Alex Kondratiev'],
|
||
['9TWavGempJc', 'Ashleigh Robertson'],
|
||
['9cfHdC2Asak', 'cindy fernandez'],
|
||
['9vHOhKoNlNw', 'Edrece Stansberry'],
|
||
['Au-LzDMd_Cw', 'Stephanie McCabe'],
|
||
['BKSntHf8oiU', 'Melissa Walker Horn'],
|
||
['DPNrBT1WCMs', 'Egor Lyfar'],
|
||
['Hvrm3efPYIA', 'Delaney Van'],
|
||
['I2tgHl69Dco', 'Louis Hansel @shotsoflouis'],
|
||
['JpbtAb-f3JA', 'Dollar Gill'],
|
||
['Mi1SNlsyWAk', 'Louis Hansel @shotsoflouis'],
|
||
['U3hCd1S7FQ4', 'Louis Hansel @shotsoflouis'],
|
||
['VOpJTnP6S9g', 'Liana Mikah'],
|
||
['VpxavZd4S-I', 'Mr. Lemon'],
|
||
['XPSXhLx143g', 'Wouter Meijering'],
|
||
['Yy-dHQP-Ax0', 'Markus Spiske'],
|
||
['asaGSZEyltQ', 'Noora AlHammadi'],
|
||
['fCE-pTmFrPI', 'Valeriu Bondarenco'],
|
||
['fyQr1T3GE34', 'Petr Sevcovic'],
|
||
['gZsgKrNc8es', 'Dan Gold'],
|
||
['krNP2ESq-54', 'Joshua Bedford'],
|
||
['nn0whk6nzv4', 'Yulia Chinato'],
|
||
['pGe5mc4Eip8', 'Daniel Park'],
|
||
['uScYRjZ2ol8', 'Donald Modeste'],
|
||
],
|
||
candy: [
|
||
['51AhxwkYyHo', 'Viktor Forgacs'],
|
||
['rS1GogPLVHk', 'Eaters Collective'],
|
||
['9m6NQHyxk-s', 'Brooke Lark'],
|
||
['DOmaKmeCp_8', 'Sarah Takforyan'],
|
||
['aCPOKOb4qis', 'Jamie Street'],
|
||
['On8Ov1TItnU', 'QooQee'],
|
||
['KN7tpVQCmWA', 'Nick Fewings'],
|
||
['9lmFbtJ2QzM', 'Tim Gouw'],
|
||
['54hUU5pNSvo', 'Erol Ahmed'],
|
||
['zYH4SubXCWY', 'Наталья Горох'],
|
||
['wJHJY7PcDcg', 'Andrew Itaga'],
|
||
['BnusUP5jydc', 'Marc Markstein'],
|
||
['NI_fJ15rIfI', 'Szabo Viktor'],
|
||
['LymVMRIUwPQ', 'Happy Films'],
|
||
['mrNVnLEphdo', 'Greg Nunes'],
|
||
['CKLF34baCTQ', 'Willian Justen de Vasconcellos'],
|
||
['7uGCN9qshsY', 'Siora Photography'],
|
||
['xBTnaTgleQE', 'Glen Carrie'],
|
||
['sC_HExGwbhI', 'Erik Mclean'],
|
||
['1gViVVlEaPc', 'Sérgio André'],
|
||
['k9yY0XZTSnI', 'Fernando Hernandez'],
|
||
['h1_R9-o9an0', 'emrecan arık'],
|
||
['XB0ha-DSGoU', 'Laura Briedis'],
|
||
['ONn4OfAnxZY', 'Monique Carrati'],
|
||
['24p9dPeXdFA', 'Frederic Köberl'],
|
||
['GL6J_sFYHLw', 'Yuiizaa September'],
|
||
['LU_fCezP9-o', 'Amit Lahav'],
|
||
['CSkAj_XqOVc', 'Mockaroon'],
|
||
['xLvIcAYuuMQ', 'Luis Aguila'],
|
||
],
|
||
fruit: [
|
||
['ZLc9yTIFzNk', 'Kelly Sikkema'],
|
||
['DoxGtpAsdYY', 'Sanni Sahil'],
|
||
['lyEkpuuIrg0', 'kaouther djouada'],
|
||
['fDx4zHpnlOM', 'Nanxi wei'],
|
||
['0AXNt5SdeXU', 'Sara Cervera'],
|
||
['s05XKB6jK2c', 'Markus Spiske'],
|
||
['bPMyJzKhCyA', 'Louis Hansel @shotsoflouis'],
|
||
['4jeWN4puDrw', 'Carolyn Leber'],
|
||
['8EScigZC6AU', 'MF Evelyn'],
|
||
['1QbosWMxOx0', 'elCarito'],
|
||
['NWA3s8r-1bc', 'Fli Hi'],
|
||
['TfNUmbaIjj8', 'Sophie Dale'],
|
||
['duskNBVv420', 'Louis Hansel @shotsoflouis'],
|
||
['QYupKZjYDbw', 'Moritz Kindler'],
|
||
['ozcHSq3XfVs', 'Callum Blacoe'],
|
||
['ucY_-U1dM8U', 'Louis Hansel @shotsoflouis'],
|
||
['4WLc_dWE-kc', 'Dmitry Mishin'],
|
||
['BTqDasyX62E', 'Priscilla Du Preez'],
|
||
['SD5dOSkhQdU', 'Alexander Mils'],
|
||
['4pJekgmSmPM', 'Rinck Content Studio'],
|
||
['0XGWys_GaFo', 'Toa Heftiba'],
|
||
['uTZvsJsylYc', 'Louis Hansel @shotsoflouis'],
|
||
['vAHaYh5s_Sc', 'RAPHAEL MAKSIAN'],
|
||
['0N4A1c5tJSs', 'Miguel Vaz'],
|
||
['VAhUq30sW0c', 'Cody Berg'],
|
||
['qbO7Mlhq8PQ', 'JOSHUA COLEMAN'],
|
||
['dLB32q_bRs0', 'Jason Leung'],
|
||
['66itnKdGlC4', 'Fateme Azimi'],
|
||
['_DYRZHbCIq0', 'Will Mcmahon'],
|
||
],
|
||
landscapes: [
|
||
['FuaNmJPLAHg', 'MINSUN KIM'],
|
||
['8flZ753v87Q', 'Ken Schlabach'],
|
||
['6qdO_nFhYoI', 'Clay Banks'],
|
||
['VMmPxFmfwfQ', 'Xiaopeng Ma'],
|
||
['DAufF3R8B5Q', 'Sangga Rima Roman Selia'],
|
||
['5U9n9gip7VY', 'Annie Spratt'],
|
||
['Tot7FLHWotI', 'elCarito'],
|
||
['vph4L_OjhuI', 'Marek Piwnicki'],
|
||
['Nd8h38tRIlc', 'Kevin Horvat'],
|
||
['nACRxCEAut8', 'ALEKSEY KUPRIKOV'],
|
||
['PjyfZ-Ujut8', 'Denys Nevozhai'],
|
||
['X6utHocVX8w', 'Ian Williams'],
|
||
['cq6g1WssaJI', 'Tyler Casey'],
|
||
['U1ad7OjdHx8', 'Dave Herring'],
|
||
['si5673B4PIE', 'Annie Spratt'],
|
||
['shv8H0Dv5iE', 'Aditya Chinchure'],
|
||
['hjVrWFVyOqE', 'chuttersnap'],
|
||
['_skrrHIcsEk', 'Edward Ma'],
|
||
['GMNtcgo-KdA', 'Yoav Hornung'],
|
||
['313dueuxHls', 'Jamie Street'],
|
||
['SncOlKOY7NY', 'Ward Mercer'],
|
||
['7R11NCmOY6k', 'Ivan Bandura'],
|
||
['YFwOiSisSLM', 'Krzysztof Kotkowicz'],
|
||
['gbO7zCOUJIg', 'Brian Kyed'],
|
||
['5iwG4xlUgJ4', 'Jason Leung'],
|
||
['G_PSim-dsvU', 'Alexandra Jitariuc'],
|
||
['gVl6Hsi_pxo', 'Jean-Philippe Delberghe'],
|
||
['p8h0_0pyW9k', 'Bence Balla-Schottner'],
|
||
],
|
||
waterfalls: [
|
||
['Cwd0zYOIClY', 'Thomas Ensley'],
|
||
['dGCHAo7mb2Q', 'Jamie Melville'],
|
||
['bukitR21NO8', 'Jen Theodore'],
|
||
['IKIY5bpd9eM', 'Bruno Kelzer'],
|
||
['rrVm3b-uxkk', 'Jamie Melville'],
|
||
['UegnUIW76gQ', 'Jamie Melville'],
|
||
['d0cvao4fC6Q', 'Forest Simon'],
|
||
['N8r2hH1siEY', 'Lester Hine'],
|
||
['oRmeWoJx_nY', 'Michael Olsen'],
|
||
['jVjwlfyJAkA', 'Tom Wheatley'],
|
||
['ar6PYxBFgis', 'Gerald Berliner'],
|
||
['9fpK7fPw6Is', 'Jamie Melville'],
|
||
['jeXkw2HR1SU', 'Julia Caesar'],
|
||
['Evs5MnlmUXY', 'Damian Kamp'],
|
||
['phstcH4QKJc', 'Jakob Owens'],
|
||
['7dmDlBfB9Vk', 'Spencer Watson'],
|
||
['SHhaNnNR1xo', 'SaiKrishna Saketh'],
|
||
['_6ghImrDiVU', 'Daniel H. Tong'],
|
||
['gfaXzDmMY7M', 'RADIN AHMAD MUJAHID'],
|
||
['rFbK1PP9LEA', 'Daniel Hernandez'],
|
||
['s6Tv7b4SAoo', 'Miltiadis Fragkidis'],
|
||
['ir9RUDjVpPo', 'Clay Banks'],
|
||
['7emiteIwfuk', 'yunchuan luo'],
|
||
['9tqrKo4B98I', 'Austin Farrington'],
|
||
['dfazzUCjMro', 'oakie'],
|
||
['4HEuHmA7WfM', 'Ketan Morris'],
|
||
['eG1_rPekhTk', 'Jack B'],
|
||
['_up7EDGdTqU', 'Hari Nandakumar'],
|
||
['MhIPEJmVwaA', 'Karthik Chandran'],
|
||
],
|
||
travel: [
|
||
['gC2Q_Tfub6c', 'James Lee'],
|
||
['1Tcu61Qz7c0', 'Payas'],
|
||
['eLMJ2x7s9ak', 'Alexandre Chambon'],
|
||
['aNrRsB2wLDk', 'Ahmet Yalçınkaya'],
|
||
['xu2WYJek5AI', 'Anastasia Petrova'],
|
||
['xRoexKKv8fs', 'Robson Hatsukami Morgan'],
|
||
['qdIer4A0afE', 'Camille Brodard'],
|
||
['0lPZBa6-1J8', 'Torbjorn Sandbakk'],
|
||
['CLm3pWXrS9Q', 'Tim Trad'],
|
||
['D1fs2x11_jk', 'Raul Taciu'],
|
||
['BZ3aE3ouAfc', 'Petr Sevcovic'],
|
||
['_OUvt8kLf0s', 'GAWN AUSTRALIA'],
|
||
['T_6yJJQ_-wA', 'Square Lab'],
|
||
['1Z_mX3zzEBc', 'Andy Pearce'],
|
||
['lWHJwoSZf7M', 'Joseph Costa'],
|
||
['O6Euhw7NMbQ', 'Cosmic Timetraveler'],
|
||
['bs1eqd6zSiU', 'Harley-Davidson'],
|
||
['_qkuc1V9Gbg', 'Ken Cheung'],
|
||
],
|
||
cars: [
|
||
['w5SZe8hoqlk', 'Rachel Lynette French'],
|
||
['Nwk0ye_Y_As', 'Lex Valishvili'],
|
||
['P9yqMy_9ZaY', 'Anastasia Dulgier'],
|
||
['aGwBtbncMWo', 'Sandra Kaas'],
|
||
['jV_QaRjbhWE', 'Clem Onojeghuo'],
|
||
['SwmaJDvasuU', 'Gunnar Ridderström'],
|
||
['BsJovWrQ7vE', 'Caroline'],
|
||
['3t0Q-GYXE0U', 'Austin Park'],
|
||
['tlCzxI2RQAc', 'Vinícius Henrique'],
|
||
['fecFQcxsUok', 'Zachary Spears'],
|
||
['upttrzCo8-U', 'takahiro taguchi'],
|
||
['zoHustBfNxA', 'Lukas Werner'],
|
||
['UZH69YA50qY', 'Austin Park'],
|
||
['tJwY80NMkhk', 'Hanny Naibaho'],
|
||
['esfNTaHsR1c', 'Willian Justen de Vasconcellos'],
|
||
['Tas1kF-6aNA', 'Tyler Casey'],
|
||
['7nrsVjvALnA', 'Denys Nevozhai'],
|
||
['CRf3KYexpCA', 'Will Truettner'],
|
||
['B8JpogxOnyw', 'Mike Von'],
|
||
['mU5vnpJW_CQ', 'Luke Tanis'],
|
||
['GaRPxo9Z86M', 'Court Cook'],
|
||
['Orp-VAQ_gNA', 'Angello Lopez'],
|
||
['q4UZ53rYYy0', 'Ali Moharami'],
|
||
['XA2OEcvrrP8', 'Alexander Pidgeon'],
|
||
['hXMv04v_py0', 'Patrick Schöpflin'],
|
||
['G7sWGEF8pRc', 'Julian Hochgesang'],
|
||
['PUnARRf-rE8', 'jean wimmerlin'],
|
||
['UIk-rF4Df60', 'Igor Bumba'],
|
||
['0dW-eQVL0WQ', 'Michael Heuser'],
|
||
],
|
||
aviation: [
|
||
['bw1hXT_okL4', 'sayhitobel'],
|
||
['ecOXN5jGtaU', 'Alexander Lobanov'],
|
||
['rFujmwrNv1w', 'Abe Drzycimski'],
|
||
['EKYsla2fER8', 'Paola Aguilar'],
|
||
['1uiXp6fXd3w', 'Kevin Hackert'],
|
||
['tVzGTraJ4T0', 'Samantha Gades'],
|
||
['5h1-cHxJz1I', 'Nikli Nodin'],
|
||
['u-1cYIua_aI', 'John Torcasio'],
|
||
['l2OusPPMLxs', 'yvette Wynne'],
|
||
['SUIvWFHBZas', 'Timothy Newman'],
|
||
['Tvrnezn1N6g', 'Daniel Eledut'],
|
||
['ZN0469D3v98', 'Jason Hafso'],
|
||
['LNmKCmZ2pcI', 'Ricardo Resende'],
|
||
['P_ExwnnPGyM', 'Tudose Alexandru'],
|
||
['1vyWYdyUDGU', 'Ian Cumming'],
|
||
['k102QVrpitQ', 'Jake Blucker'],
|
||
['eB8-XtMtqZI', 'Miguel Ángel Sanz'],
|
||
['1XDZavWyows', 'Samuel Sianipar'],
|
||
['7WHD-pdECGU', 'Miguel Ángel Sanz'],
|
||
['CN8HsCUCjUQ', 'Cameron Kitson'],
|
||
['q_rNy9pRe78', 'Walter Walraven'],
|
||
['a9SA6Zs1L9g', 'Tim Dennert'],
|
||
['JW50PRr5UbI', 'Roland O'],
|
||
['um_6nrOnPZ4', 'Pascal Meier'],
|
||
['EpxT58kpBhc', 'Terence Burke'],
|
||
['3fbjHj2k0vE', 'Dušan Smetana'],
|
||
['9o4p3eCcRBE', 'Jeremy Bishop'],
|
||
['sbfLwfoVX7E', 'Nour Betar'],
|
||
['4VCJBAtlnNI', 'sippakorn yamkasikorn'],
|
||
['LcbsrFbqwGk', 'Angel Barnes'],
|
||
],
|
||
nature: [
|
||
['io0umElGQwU', 'Fabrizio Forte'],
|
||
['lh2sQ_L3GaA', 'Daniel Lord'],
|
||
['Gyr7o3BMsSc', 'Dave Francis'],
|
||
['lRipDukRpd4', 'Kevin'],
|
||
['GxymWkdnl4Y', 'Fernando Jorge'],
|
||
['rWnw7JL0LPE', 'Rahul Gupta'],
|
||
['YKuYS3ChMyw', 'Yuliya Kosolapova'],
|
||
['ZsUjLYqbNz8', 'Pau Morfín'],
|
||
['x2o3HX6RKG8', 'Dave'],
|
||
['Few073pm6aQ', 'Dennis Bertuch'],
|
||
['jP-wvLA7uyg', 'Gary Butterfield'],
|
||
['euhs3wanL-I', 'Andrew Stapleton'],
|
||
['UHt2TG_CHO0', 'Wolfgang Hasselmann'],
|
||
['SAIb5NkbAaE', 'Alexis Gethin'],
|
||
['tdNjdIW-_OY', 'Lachlan'],
|
||
['0NtjFr0-DwM', 'Jane Carmona'],
|
||
['fhg_nm1sufU', 'Pascal Debrunner'],
|
||
['HJUDECvtxZE', 'jose alfonso sierra'],
|
||
['8vS1CwHIEH8', 'Serge Sustavov'],
|
||
['oTTnZcwQ2t4', 'Daniel Radford'],
|
||
['TNhs9udas8Q', 'Migsar Navarro'],
|
||
['zT9g3crTPcE', 'Devin L'],
|
||
['hYuNG1zptM4', 'Roberto Gamito'],
|
||
['DfOQRep1LKU', 'Wolfgang Rottmann'],
|
||
['2sT_iJhIcEg', 'Anamika Pokharel'],
|
||
['Zjcl2vaeGdo', 'Lucas Mitchell'],
|
||
['b2T6zgFAW1E', 'Theme Inn'],
|
||
['EnFQmcTtsjo', 'Yang Jing'],
|
||
['PWI-CDVynhw', 'Thomas Galler'],
|
||
['gTvLsDi-Uzo', 'Arun Raj'],
|
||
],
|
||
trees: [
|
||
['aSCx7M1E4Vo', 'Markos Mant'],
|
||
['3B9MYDjQ-EQ', 'Firasat Durrani'],
|
||
['39oaRqfUacc', 'Nick'],
|
||
['Y0NLa_KmEgU', 'Michael Ankes'],
|
||
['i6nGVkbbUT4', 'Henry McIntosh'],
|
||
['_WITb4g1ImY', 'Mark Basarab'],
|
||
['prd5CXMsD68', 'JOHN TOWNER'],
|
||
['avxSevmCKfw', 'Marta Pawlik'],
|
||
['LZf0HMPg-3I', 'Max Brinton'],
|
||
['Ovjx9FsXX9c', 'Andy Fitzsimon'],
|
||
['YPtfMXRMUe0', 'Corey Agopian'],
|
||
['h3y3XPXKoeY', 'Elke Karin Lugert'],
|
||
['qeGC1zrsG8U', 'Tycho Atsma'],
|
||
['dAkd3xaSDTA', 'Nick West'],
|
||
['Prd-KB7CKo4', 'Austin Neill'],
|
||
['klNpWLkgezo', 'Wil Stewart'],
|
||
['Pm4U5IqI4dM', 'Lena Derevianko'],
|
||
['5i664o1oY4c', 'Yannick Pulver'],
|
||
['uoMFPm5_Xg8', 'Yoni Kozminsi'],
|
||
['Qr2dZRNdf_M', 'Afifi Zulkifle'],
|
||
['jxljuYqn8uU', 'Sebastian Pichler'],
|
||
['H3mO3zNlvNU', 'Jonathan Knepper'],
|
||
['pEb-Xf_qM0s', 'Martin Reisch'],
|
||
['prSogOoFmkw', 'Braden Jarvis'],
|
||
['y9csmronT3s', 'Alberto Restifo'],
|
||
['R8R9H_xuvBY', 'Andrew Pons'],
|
||
['fuT-m1yzUG4', 'Ales Krivec'],
|
||
],
|
||
wildlife: [
|
||
['-I0EgcZdV0E', 'Maarten van den Heuvel'],
|
||
['F21zt7_icpo', 'Tevin Trinh'],
|
||
['gMxgp-MwCyQ', 'James Wainscoat'],
|
||
['FFlb5Uj3vhc', 'Sigmund'],
|
||
['hglSMjdh83M', 'Srinivasan Venkataraman'],
|
||
['UgWcvfl4q5I', 'NOAA'],
|
||
['PZ1nEPFNBJQ', 'Third Idea'],
|
||
['f4yYs5P5GbA', 'rigel'],
|
||
['e94T5ag-9x0', 'Jayden Brand'],
|
||
['6Fcllk7ze_Q', 'Vivian Arcidiacono'],
|
||
['O7G3II8E2Eo', 'Erik-Jan Leusink'],
|
||
['-6UNL6Ghn_c', 'Silvio Kundt'],
|
||
['EyZMGYn1Uj4', 'AGL Fotos'],
|
||
['nxR7gvSokH8', 'Waldemar Brandt'],
|
||
['sAGXVK6bNFc', 'Amar Yashlaha'],
|
||
['8zLCXDWETEg', 'Clément ROY'],
|
||
['4nPFQ2sUhUE', 'Justin Porter'],
|
||
['mUNDTQrfnSk', 'Zahrin Lukman'],
|
||
['VXcX0Joa09k', 'Max Rovensky'],
|
||
['F_HycxA2lwc', 'Marthijn Brinks'],
|
||
['ss01halnU4I', 'Dušan Smetana'],
|
||
['lktWv61WoNI', 'Rory Lindholm'],
|
||
['myeQ2RH1PX0', 'Alexander Ross'],
|
||
['dhIAyAmfjz8', 'Third Idea'],
|
||
['AGprQpF4STo', 'Jeff Lemond'],
|
||
['P8pBJQVt4UA', 'Christer Gundersen'],
|
||
['nt8Ek7sRgdA', 'Mikell Darling'],
|
||
['YHv0BDThVOw', 'Nicholas Doherty'],
|
||
],
|
||
interior: [
|
||
['9wGKENQ-qTI', 'Kunj Parekh'],
|
||
['x3BCSWCAtrY', 'yann maignan'],
|
||
['EF6z_6R94zQ', 'Orlova Maria'],
|
||
['dC8NC2QBFyQ', 'Kari Shea'],
|
||
['A_AuirVquQY', 'Abbie Bernet'],
|
||
['IJf2v-StB4Y', 'yann maignan'],
|
||
['frsN89Tf-1Q', 'Joshua Eckstein'],
|
||
['s95oB2n9jng', 'Aaron Huber'],
|
||
['n_vdmdtNh6M', 'Tiplada Mekvisan'],
|
||
['GbiVL6t4T-o', 'gdtography'],
|
||
['xx0oSB1YxRE', 'Joseph Albanese'],
|
||
['McaNtoPEEcg', 'Brooke Cagle'],
|
||
['s65VlkIYSDw', 'Robert Bye'],
|
||
['pEaBEqXXk-M', 'Aw Creative'],
|
||
['GaX7QTgs8pg', 'Waldemar Brandt'],
|
||
['b75FBg97dU0', 'Bao Menglong'],
|
||
['5i0GnoTTjSE', 'Philipp Berndt'],
|
||
['buhmhprfo3g', 'Kara Eads'],
|
||
['L7EwHkq1B2s', 'Kara Eads'],
|
||
['gBdirnalxcQ', 'Nick Fewings'],
|
||
['ILgaxpiQu0', 'Matteo Maretto'],
|
||
['ydcMwcfY5E0', 'Clark Street Mercantile'],
|
||
['zLT3VqWEgOQ', 'Sidekix Media'],
|
||
['Yg0Rds6_TsY', 'Sergiu Cindea'],
|
||
['gbS_fhrFo10', 'Bekah Russom'],
|
||
['o3c-euNd_ZM', 'Alessandra Caretto'],
|
||
['IEkMMvdZFc0', 'Nick Hillier'],
|
||
['hnhE83RhAWg', 'Stefan Steinbauer'],
|
||
],
|
||
statues: [
|
||
['ig8E7Mlrl7Y', 'Vidar Nordli-Mathisen'],
|
||
['1ak3Z7ZmtQA', 'Ryan Lum'],
|
||
['ntPF02wcTY', 'Gigi'],
|
||
['5_i4OPeOAZU', 'Viktor Forgacs'],
|
||
['iRON0g6iO0k', 'Alexandre Chambon'],
|
||
['PhQ4CpXLEX4', 'Daniels Joffe'],
|
||
['EfHqouvZU2Y', 'Bettina Otott Kovács'],
|
||
['kaEhf0eZme8', 'Nils'],
|
||
['4-4IDc21Gto', 'K. Mitch Hodge'],
|
||
['Y8Xh7ZJFU5A', 'Vidar Nordli-Mathisen'],
|
||
['fmawALmMLSA', 'Gabriel TRESCH'],
|
||
['DUp4B6M0AMc', 'Sebastien'],
|
||
['MFZUY4gqvA4', 'James Yarema'],
|
||
['50vvwcNFFzU', 'Robert Anasch'],
|
||
['TMRi8cD2umM', 'Frank Eiffert'],
|
||
['wLx_WCkWvHg', 'Chris A. Tweten'],
|
||
['Twoj21Av-so', 'Arthur Reeder'],
|
||
['EiGDn8cwU4Y', 'Tessa Rampersad'],
|
||
['fVY6UxZuECA', 'Christine Wehrmeier'],
|
||
['uJdTBTJ9rbo', 'Christine Wehrmeier'],
|
||
['4eEBFTBKx5E', 'Ralph Spandl'],
|
||
['HtQRGemW_40', 'Ivan Bertona'],
|
||
['uHBcinxOLhQ', 'K. Mitch Hodge'],
|
||
['2TmsyZXMNTE', 'Emma Fabbri'],
|
||
['9KkPloRgOUY', 'Matteo Maretto'],
|
||
['KzPefInJW58', 'JOSHUA COLEMAN'],
|
||
['szVTIkisN1M', 'David Siglin'],
|
||
['iRzEPkYSETQ', 'Francois Olwage'],
|
||
],
|
||
technology: [
|
||
['QpTCSHzhWuo', 'Joshua Hoehne'],
|
||
['0lMpQaXfOCg', 'Barrett Ward'],
|
||
['w33-zg-dNL4', 'Rami Al-zayat'],
|
||
['MC5WbGo_bZM', 'Tom Pumford'],
|
||
['iHJ7xouUyXs', 'Amith Nair'],
|
||
['E3I9thV98kQ', 'Tatiana Lapina'],
|
||
['JuUK7Er9nR4', 'Mohamed Boumaiza'],
|
||
['Dei5oAC_wJc', 'Kenny Luo'],
|
||
['ltwEbf_G9bs', 'Mario Caruso'],
|
||
['gWdlDR4WpV4', 'Zarak Khan'],
|
||
['0Um6Yr1cyx0', 'Antoine Beauvillain'],
|
||
['_8S9nEmCZK0', 'Oliur'],
|
||
['etFrnBJS1qc', 'NeONBRAND'],
|
||
['ZMVtx_KJtOk', 'Thought Catalog'],
|
||
['JNuKyKXLh8U', 'Noiseporn'],
|
||
['5gzr-RM-rZM', 'Kenny Luo'],
|
||
['eWaXmZsXKDs', 'Zane Lee'],
|
||
['4qGbMEZb56c', 'Thomas William'],
|
||
['hwqWxHoH2wk', 'Markus Spiske'],
|
||
['vZJdYl5JVXY', 'Kaitlyn Baker'],
|
||
['Lg8xTZjs6Lg', 'Marc Mueller'],
|
||
['M5HQPjXrjlQ', 'Matt Hoffman'],
|
||
['A-b37b-CrYE', 'Kenny Luo'],
|
||
['Kj2SaNHG-hg', 'Christopher Burns'],
|
||
['A1v0-iH3T5A', 'Patrick Hendry'],
|
||
['iFBIdX54BOk', 'Keagan Henman'],
|
||
],
|
||
})
|
||
.map(([category, photos]) => photos.map(([photo, credit], index) => ({
|
||
id: photo,
|
||
path: `sfw/${category}/${photo}.jpeg`,
|
||
thumbnail: `sfw/${category}/thumbs/${photo}.jpeg`,
|
||
lazy: `sfw/${category}/lazy/${photo}.jpeg`,
|
||
mime: 'image/jpeg',
|
||
is_sfw: true,
|
||
sfw_media_id: null,
|
||
group: category,
|
||
index,
|
||
credit,
|
||
})))
|
||
.flat();
|
||
|
||
const tagMedia = [
|
||
['69', 1, 'Melody Petite'],
|
||
['69', 3, 'Anne Amari and Alina Lopez in "Hot Lesbian Seduction"', 'lesbianx'],
|
||
['69', 0, 'Abby Lee Brazil and Ramon Nomar', 'wicked'],
|
||
['69', 4, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['69', 2, 'Abigail Mac and Kissa Sins in "Lesbian Anal Workout"', 'hardx'],
|
||
['airtight', 'adriana_chechik_hardx', 'Adriana Chechik', 'hardx'],
|
||
['airtight', 7, 'Lana Rhoades in "Gangbang Me 3"', 'hardx'],
|
||
['airtight', 'hime_marie_blackedraw', 'Hime Marie', 'blackedraw'],
|
||
['airtight', 6, 'Remy Lacroix in "Ass Worship 14"', 'julesjordan'],
|
||
['airtight', 'yoha_boundgangbangs', 'Yoha in "Home Invasion"', 'boundgangbangs'],
|
||
['airtight', 'anissa_kate_legalporno', 'Anissa Kate in GP1962', 'analvids'],
|
||
['airtight', 'emily_willis_blacked', 'Emily Willis', 'blacked'],
|
||
['airtight', 'savannah_bond_julesjordan', 'Savannah Bond', 'julesjordan'],
|
||
['airtight', 'diamond_foxxx_milfslikeitbig', 'Diamond Foxx in "Diamond\'s Bday Gangbang"', 'milfslikeitbig'],
|
||
['airtight', 'tory_lane_bigtitsatwork', 'Tory Lane in "I\'m Your Christmas Bonus"', 'bigtitsatwork'],
|
||
['airtight', 11, 'Malena Nazionale in "Rocco\'s Perverted Secretaries 2: Italian Edition"', 'roccosiffredi'],
|
||
['airtight', 3, 'Anita Bellini in "Triple Dick Gangbang"', 'handsonhardcore'],
|
||
['airtight', 'venera_maxima_legalporno', 'Venera Maxima in LegalPorno SZ2645', 'analvids'],
|
||
['airtight', 'mina_ddfnetwork', 'Remy Lacroix in "Ass Worship 14"', 'julesjordan'],
|
||
['airtight', 1, 'Jynx Maze in "Pump My Ass Full of Cum 3"', 'julesjordan'],
|
||
['airtight', 10, 'Asa Akira in "Asa Akira To The Limit"', 'julesjordan'],
|
||
['airtight', 8, 'Veronica Leal in SZ2520', 'analvids'],
|
||
['airtight', 5, 'Chloe Amour in "DP Masters 4"', 'julesjordan'],
|
||
['airtight', 9, 'Cindy Shine in GP1658'],
|
||
['anal', 5, 'Abella Danger', 'hardx'],
|
||
['anal', 'alexa_flexy_private_1', 'Alexa Flexy in "Seeks Anal Volunteers"', 'private'],
|
||
['anal', 'kira_noir_julesjordan', 'Kira Noir in "Kira Noir Opens Her Ass For Manuel"', 'julesjordan'],
|
||
['anal', 'courtney_taylor_brazzers', 'Courtney Taylor in "Pounding That Pussy By The Pool"', 'brazzers'],
|
||
['anal', 'kelly_oliveira_teenfidelity_1', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'],
|
||
['anal', 'jane_wilde_evilangel_2', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['anal', 'jynx_maze_evilangel', 'Jynx Maze in "Gape Me"', 'evilangel'],
|
||
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3"', 'julesjordan'],
|
||
['anal', 'nikki_benz_bigwetbutts', 'Nikki Benz in "Pantyhose Playtime"', 'bigwetbutts'],
|
||
['anal', 7, 'Anastasia Brokelyn', 'bangbros'],
|
||
['anal', 'gia_derza_julesjordan', 'Gia Derza in "Manuel Opens Their Asses 8"', 'julesjordan'],
|
||
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal"', 'darkx'],
|
||
['anal', 4, 'Lana Roy in "Anal In The Club"', '21naturals'],
|
||
['anal', 3, 'Dakota Skye', 'brazzers'],
|
||
['anal-creampie', 4, 'Chloe Cherry in "Chloe\'s Big Anal"', 'darkx'],
|
||
['anal-creampie', 2, 'Lana Rhoades in "Lana\'s Anal Workout"', 'hardx'],
|
||
['anal-creampie', 3, 'Rose Valerie', 'eurosexparties'],
|
||
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary"', 'tushy'],
|
||
['anal-creampie', 1, 'Aleska Diamond in "Aleska Wants More"', 'assholefever'],
|
||
['anal-fingering', 0, 'Marry Queen in "Queen of Assholes"', 'assholefever'],
|
||
['anal-fingering', 'pussykat_assholefever', 'Pussykat', 'assholefever'],
|
||
['anal-fingering', 3, 'Rose Valerie', 'pornworld'],
|
||
['anal-fingering', 1, 'Cherry Kiss, Veronica Leal and Sybil in "Capture This"', 'lezcuties'],
|
||
['anal-fingering', 2, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga"', 'lesbianx'],
|
||
['anal-fisting', 1, 'Jane Wilde fisting Alexis Tae in "Jane Wilde is AGAPE"', 'evilangel'],
|
||
['anal-prolapse', 'alysa_isabella_clark_evilangel_1', 'Alysa and Isabella Clark in "Anal Buffet 6"', 'evilangel'],
|
||
['anal-prolapse', 'alysa_isabella_clark_evilangel', 'Alysa and Isabella Clark in "Anal Buffet 6"', 'evilangel'],
|
||
['asian', 0, 'Vina Sky', 'eroticax', 'eroticax'],
|
||
['ass-eating', 2, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties"', 'lezcuties'],
|
||
['ass-eating', 5, 'Remy LaCroix and Abigail Mac', 'allgirlmassage'],
|
||
['ass-eating', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!"', 'darkx'],
|
||
['ass-eating', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['ass-eating', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
|
||
['ass-eating', 1, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga"', 'lesbianx'],
|
||
['ass-eating', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches"', 'assholefever'],
|
||
['ass-eating', 3, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['atm', 2, 'Jureka Del Mar in "Stretched Out"', 'herlimit'],
|
||
['atm', 'rebel_rhyder_analonly_1', 'Rebel Rhyder in "Advanced Anal With Rebel"', 'analonly'],
|
||
['atm', 3, 'Natasha Teen in "Work That Ass!"', 'herlimit'],
|
||
['atm', 7, 'Mandy Muse in "Mandy\'s Anal Amusement"', 'bigwettbutts'],
|
||
['atm', 0, 'Roxy Lips in "Under Her Coat"', '21naturals'],
|
||
['atm', 6, 'Jane Wilde in "Teen Anal"', 'evilangel'],
|
||
['atogm', 0, 'Alysa Gap and Logan in "Anal Buffet 4"', 'evilangel'],
|
||
['atogm', 'adriana_chechik_hope_howell_hopehowellxxx', 'Adriana Chechik and Hope Howell in "Hope And Adriana\'s Gangbang', 'hopehowellxxx'],
|
||
['bdsm', 0, 'Dani Daniels in "The Traning of Dani Daniels, Day 2"', 'thetrainingofo'],
|
||
['bisexual', 'bunny_colby_dante_colle_dillon_diaz_devilsfilm', 'Bunny Colby, Dante Colle and Dillon Diaz', 'devilsfilm'],
|
||
['black', 2, 'Nia Nacci', 'sweetheartvideo'],
|
||
['black', 1, 'Ana Foxxx in "DP Me 4"', 'hardx'],
|
||
['black', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
|
||
['blindfold', 0, 'Kylie Page in "Natural Blindfolded Beauties"', 'hustler'],
|
||
['blonde', 'marry_queen', 'Marry Queen'],
|
||
['blonde', 3, 'Kylie Page in "A Juicy Afternoon Delight"', 'newsensations'],
|
||
['blonde', 'shawna_lenee_sunrisekings', 'Shawna Lenee', 'sunrisekings'],
|
||
['blonde', 2, 'Isabelle Deltore', 'herlimit'],
|
||
['blowbang', 'cory_chase_interracialblowbang_4', 'Cory Chase', 'interracialblowbang'],
|
||
['blowbang', 'ana_foxxx_hardx', 'Ana Foxxx in "Facialized Vol. 4"', 'hardx'],
|
||
['blowbang', 'lisey_sweet_legalporno', 'Lisey Sweet in GIO816', 'analvids'],
|
||
['blowbang', 'angela_white_julesjordan', 'Angela White in "Her Biggest Gangbang Ever"', 'julesjordan'],
|
||
['blowbang', 'monika_fox_legalporno', 'Monika Fox in GL479', 'analvids'],
|
||
['blowbang', 0, 'Lacy Lennon in "Lacy Lennon\'s First Blowbang"', 'hardx'],
|
||
['blowbang', 'zaawaadi_roccosiffredi_1', 'Zaawaadi in "My Name Is Zaawaadi"', 'roccosiffredi'],
|
||
['blowbang', 1, 'Nicole Black in GIO1680', 'analvids'],
|
||
['blowbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'],
|
||
['blowjob', 'clanddi_jinkcego_ddfbusty_1', 'Clanddi Jinkcego', 'ddfbusty'],
|
||
['blowjob', 'juelz_ventura_babygotboobs', 'Juelz Ventura in "A Deep DP For Dessert"', 'babygotboobs'],
|
||
['blowjob', 4, 'Chloe Cherry in "Chloe\'s Big Anal"', 'darkx'],
|
||
['blowjob', 'anissa_kate_vixen_1', 'Anissa Kate in "Power Moves"', 'vixen'],
|
||
['blowjob', 'maddy_may_cherrypimps', 'Maddy May', 'cherrypimps'],
|
||
['blowjob', 'amy_anderssen_julesjordan', 'Amy Anderssen in "Lex The Impaler 8"', 'julesjordan'],
|
||
['blowjob', 'pussykat_assholefever', 'Pussykat', 'assholefever'],
|
||
['blowjob', 1, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower"', 'spyfam'],
|
||
['blowjob', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['blowjob', 'cecilia_lion_wefuckblackgirls', 'Cecilia Lion in "Cecilia Lion\'s Second Appearance"', 'wefuckblackgirls'],
|
||
['blowjob', 0, 'Adriana Chechik in "The Dinner Party"', 'realwifestories'],
|
||
['blowjob', 5, 'Kaylynn', 'mommyblowsbest'],
|
||
['blowjob', 'azul_hermosa_realitykings', 'Azul Hermosa and Scott Nails in "Diva For A Day"', 'brazzers'],
|
||
['blowjob', 3, 'Rose Valie', 'handsonhardcore'],
|
||
['blowjob', 2, 'Luna Kitsuen in "Gag Reflex"', 'evilangel'],
|
||
['bondage', 0, 'Veronica Leal', 'herlimit'],
|
||
['brunette', 0, 'Darcie Dolce', 'playboy'],
|
||
['bts', 'charlie_red_private', 'Charlie Red', 'private'],
|
||
['bts', '3b', 'Brenna Sparks', 'bangconfessions'],
|
||
['bts', 0, 'Janice Griffith in "Day With A Pornstar: Janice"', 'brazzers'],
|
||
['bts', 1, 'Madison Ivy in "Day With A Pornstar"', 'brazzers'],
|
||
['bts', 2, 'Christy Mack', 'digitalplayground'],
|
||
['bukkake', 'yui_kawagoe_spermmania', 'Yui Kawagoe', 'spermmania'],
|
||
['bukkake', 0, 'Jaye Summers in "Facialized 5"', 'hardx'],
|
||
['bukkake', 'ana_foxxx_hardx', 'Ana Foxxx in "Facialized Vol. 4"', 'hardx'],
|
||
['bukkake', 'jasmine_byrne_julesjordan', 'Jasmine Byrne in "Flesh Hunter 10"', 'julesjordan'],
|
||
['bukkake', 'megan_rain_julesjordan', 'Megan Rain in "Slutty Teen In A 10 Cock Blowbang! It\'s RAINING Cum!"', 'julesjordan'],
|
||
['creampie', 1, 'Eveline Dellai', 'nubiles'],
|
||
['creampie', 'katrina_moreno_bangbros', 'Katrina Moreno in "Stripper Cream Pie"', 'bangbros'],
|
||
['creampie', 3, 'Silvia Soprina in "Satisfaction"', '5kteens'],
|
||
['creampie', 2, 'Natasha Lapiedra in "New and Ready"', '5kporn'],
|
||
['creampie', 'poster', 'Alina Lopez in "Making Yourself Unforgettable"', 'blacked'],
|
||
['cum-drunk', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'],
|
||
['cum-in-mouth', 1, 'Sarah Vandella in "Blow Bang Vandella"', 'hardx'],
|
||
['cum-in-mouth', 'courtney_taylor_brazzers', 'Courtney Taylor in "Nostalgic Nympho Finally Fucks"', 'brazzers'],
|
||
['cum-in-mouth', 3, 'Kira Noir', 'hardx'],
|
||
['cum-in-mouth', 5, 'Emma Hix in "A Big Dick"', 'darkx'],
|
||
['cum-in-mouth', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!"', 'darkx'],
|
||
['cum-in-mouth', 'kaylani_lei_milfslikeitbig', 'Kaylani Lei', 'milfslikeitbig'],
|
||
['cum-in-mouth', 2, 'Jaye Summers in "Double The Cum"', 'hardx'],
|
||
['cum-in-mouth', 'lara_frost_legalporno', 'Lara Frost in NRX059', 'analvids'],
|
||
['cum-in-mouth', 0, 'Vina Sky and Avi Love', 'hardx'],
|
||
['cum-on-boobs', 'september_reign_penthouse', 'September Reign in "Sensual Ride"', 'penthouse'],
|
||
['cum-on-boobs', 'gogo_fukme_devilsfilm', 'GoGo FukMe in "BAD Relatives"', 'devilsfilm'],
|
||
['cum-on-boobs', 1, 'Kylie Page in "Melt In Your Mouth"', 'twistyshard'],
|
||
['cum-on-boobs', 0, 'Alessandra Jane', 'private'],
|
||
['cum-on-boobs', 2, 'Blake Blossom in "Naturally Stacked Cutie"', 'hardx'],
|
||
['cum-on-butt', 'chloe_temple_macy_meadows_brattysis', 'Chloe Temple and Macy Meadows', 'brattysis'],
|
||
['cum-on-butt', 0, 'Jynx Maze in "Don\'t Make Me Beg 4"', 'evilangel'],
|
||
['cum-on-pussy', 'katrina_moreno_elegantraw', 'Katrina Moreno in "Pump My Ass Raw!"', 'elegantraw'],
|
||
['cum-on-pussy', 0, 'Talinka A', 'sexart'],
|
||
['da-tp', 7, 'Polly Petrova in YE069', 'analvids'],
|
||
['da-tp', 5, 'Venera Maxima in GIO1287'],
|
||
['da-tp', 6, 'Adriana Chechik in "Gangbang Me"', 'hardx'],
|
||
['dap', 7, 'Adriana Chechik in "DP Masters 6"', 'julesjordan'],
|
||
['dap', 10, 'Kira Noir', 'hardx'],
|
||
['dap', 'emily_pink_legalporno', 'Emily Pink', 'analvids'],
|
||
['dap', 'silvia_dellai_legalporno', 'Silvia Dellai in GIO1765', 'analvids'],
|
||
['dap', 9, 'Vicky Sol in GIO1547', 'analvids'],
|
||
['dap', 'cherry_kiss_roccosiffredi', 'Cherry Kiss in "My Name Is Zaawaadi"', 'roccosiffredi'],
|
||
['dap', 6, 'Sheena Shaw in "Ass Worship 14"', 'julesjordan'],
|
||
['dap', 2, 'Lana Rhoades in "Lana Rhoades Unleashed"', 'hardx'],
|
||
['dap', 11, 'Haley Reed in "Young Hot Ass"', 'evilangel'],
|
||
['dap', 1, 'Ria Sunn in SZ1801', 'analvids'],
|
||
['dap', 5, 'Riley Reid in "The Gangbang of Riley Reid"', 'julesjordan'],
|
||
['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971', 'analvids'],
|
||
['deepthroat', 'arielle_faye_lubed', 'Arielle Faye', 'lubed'],
|
||
['deepthroat', 'janice_griffith_throated_1', 'Janice Griffith', 'throated'],
|
||
['deepthroat', 2, 'Sarah Vandella', 'throated'],
|
||
['deepthroat', 3, 'Kira Noir in "Ebony Throat Vs Monster Cock"', 'throated'],
|
||
['deepthroat', 'cathy_heaven_brazzers', 'Cathy Heaven in " 7 Minutes in Mrs. Heaven"', 'brazzers'],
|
||
['deepthroat', 4, 'Tammy', 'youngthroats'],
|
||
['deepthroat', 1, 'Jynx Maze in "Slutty and Sluttier 13"', 'evilangel'],
|
||
['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun"', 'throated'],
|
||
['desi', 'priya_rai_hollyrandall', 'Priya Rai in "Dildo Fun"', 'hollyrandall'],
|
||
['desi', 'resha_watch4beauty_1', 'Resha in "Casting Resha"', 'watch4beauty'],
|
||
['doggy-style', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['double-blowjob', 1, 'Veronica Rodriguez and Penny Pax in "Fucking Older Guys 5"', 'penthouse'],
|
||
['double-blowjob', 0, 'Kira Noir and Kali Roses', 'brazzers'],
|
||
['double-blowjob', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
|
||
['double-dildo', 3, 'Kelly and Leona in "Sleeping Over"', 'lezcuties'],
|
||
['double-dildo', 1, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3"', 'digitalplayground'],
|
||
['double-dildo', 9, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long"', 'pornworld'],
|
||
['double-dildo', 2, 'Jasmine Webb and Aria Alexander in "Homeless Horny"', 'digitalplayground'],
|
||
['double-dildo', 'alina_ali_jessie_saint_nicole_kitt_zebragirls', 'Alina Ali, Jessie Saint and Nicole Kitt', 'zebragirls'],
|
||
['double-dildo', 7, 'Gina Gerson and Anastasia Brokelyn in "One Double Sided Dildo, Two Cuties"', 'pornworld'],
|
||
['double-dildo', 0, 'Kali Roses in "Double Dildo Party"'],
|
||
['double-dildo', 4, 'Claudia Macc and Victoria Pure', 'eurogirlsongirls'],
|
||
['double-dildo', 8, 'Harmony Wonder, Katie Kush and Jewelz Blu in "Pick Your Pleasure"', 'realitykings'],
|
||
['double-dildo', 5, 'Kimber Woods and Mandy Muse in "Big Oiled Asses"', 'naughtyamerica'],
|
||
['double-dildo', 6, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['double-dildo-anal', 0, 'Vina Sky and Kenzie Reeves in "Vina Sky\'s 1st Lesbian Anal"', 'hardx'],
|
||
['double-dildo-anal', 1, 'Sammie Rhodes and Ainsley Addision in "Tickle Me Pink"', 'welivetogether'],
|
||
['double-dildo-anal', 6, 'Anikka Albrite, Jenna Sativa and Tori Black in "Tori Black\'s Lesbian Gangbang"', 'lesbianx'],
|
||
['double-dildo-anal', 2, 'Adria Rae and Megan Rain in "Best Friends Anal"', 'holed'],
|
||
['double-dildo-anal', 9, 'Veronica Leal, Cherry Kiss and Sybil in "Capture This"', 'lezcuties'],
|
||
['double-dildo-anal', 7, 'Alysa and Wildeassholeslut in "Anal Buffet 5"', 'evilangel'],
|
||
['double-dildo-anal', 8, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties"', 'lezcuties'],
|
||
['double-dildo-anal', 3, 'Amber Rayne, Phoenix Marie and Roxy Raye in "Deep Anal Abyss 4"', 'evilangel'],
|
||
['double-dildo-anal', 5, 'Jenna Sativa and Tara Morgan in "Little Black Book"', 'digitalplayground'],
|
||
['double-dildo-anal', 4, 'Ashley Fires, Sammie Rhodes and Kiara Diane in "Real Romance"', 'realitykings'],
|
||
['double-dildo-blowjob', 0, 'Adriana Chechik and Vicki Chase in "Anal Savages"', 'julesjordan'],
|
||
['double-dildo-blowjob', 6, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3"', 'digitalplayground'],
|
||
['double-dildo-blowjob', 8, 'Morgan Lee and Reena Sky in "Power Play"', 'brazzers'],
|
||
['double-dildo-blowjob', 11, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long"', 'pornworld'],
|
||
['double-dildo-blowjob', 1, 'Aidra Fox and Reena Sky in "Reena\'s Got A Staring Problem"', 'brazzers'],
|
||
['double-dildo-blowjob', 7, 'Jasmine Webb and Aria Alexander in "Homeless Horny"', 'digitalplayground'],
|
||
['double-dildo-blowjob', 9, 'Kimber Woods and Mandy Muse in "Big Oiled Asses"', 'naughtyamerica'],
|
||
['double-dildo-blowjob', 10, 'Kiki Daire and Brittany', 'kenmarcus'],
|
||
['double-dildo-blowjob', 3, 'Angela White and Madison Ivy in "Sunbathing Babes"', 'brazzers'],
|
||
['double-dildo-blowjob', 4, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight"', 'brazzers'],
|
||
['double-dildo-blowjob', 5, 'Jenna Ivory and Layla Price in "A First Time"', 'brazzers'],
|
||
['double-dildo-blowjob', 2, 'Giselle Palmer and Romi Rain in "Punishable Behavior"', 'brazzers'],
|
||
['double-dildo-dp', 2, 'Jenna Ivory and Layla Price in "A First Time"', 'brazzers'],
|
||
['double-dildo-dp', 'silvia_dellai_ddfnetwork', 'Silvia Dellai', 'ddfnetwork'],
|
||
['double-dildo-dp', 1, 'Brooklyn Chase and Ana Foxxx', 'zebragirls'],
|
||
['double-dildo-dp', 0, 'u/LacyCrow "Sometimes you have to do it yourself"'],
|
||
['double-dildo-kiss', 0, 'Giselle Palmer and Romi Rain in "Punishable Behavior"', 'brazzers'],
|
||
['double-dildo-kiss', 1, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight"', 'brazzers'],
|
||
['double-dildo-kiss', 3, 'Kiki Daire and Brittany', 'kenmarcus'],
|
||
['double-dildo-kiss', 2, 'Adriana Chechik and Vicki Chase in "Anal Savages"', 'julesjordan'],
|
||
['dp', 2, 'Megan Rain in "DP Masters 4"', 'julesjordan'],
|
||
['dp', 'lara_frost_legalporno', 'Lara Frost in NRX070', 'analvids'],
|
||
['dp', 6, 'Kira Noir', 'hardx'],
|
||
['dp', 3, 'Hime Marie in AA047', 'analvids'],
|
||
['dp', 'kenna_james_tushy_1', 'Kenna James in "Yoga Retreat', 'tushy'],
|
||
['dp', 5, 'Lana Rhoades in "Gangbang Me 3"', 'hardx'],
|
||
['dp', 'juelz_ventura_babygotboobs_1', 'Juelz Ventura in "A Deep DP For Dessert"', 'babygotboobs'],
|
||
['dp', 'courtney_taylor_realwifestories', 'Courtney Taylor in "Divorce Me Please"', 'realwifewstories'],
|
||
['dp', 'silvia_dellai_dpfanatics', 'Silvia Dellai in "Tempting Promises"', 'dpfanatics'],
|
||
['dp', 'diamond_foxxx_milfslikeitbig', 'Diamond Foxxx in "Deep Cover...Deeper Throat"', 'milfslikeitbig'],
|
||
['dp', 'zaawaadi_roccosiffredi', 'Zaawaadi in "My Name Is Zaawaadi"', 'roccosiffredi'],
|
||
['dp', 7, 'Chloe Lamour in "DP Masters 7"', 'julesjordan'],
|
||
['dp', 'poster', 'Mia Malkova in "DP Me 8"', 'hardx'],
|
||
['dp', 4, 'Rebecca Volpetti', 'handsonhardcore'],
|
||
['dvp', 'adriana_chechik_hardx', 'Adriana Chechik', 'hardx'],
|
||
['dvp', 'poster', 'Riley Reid in "Pizza That Ass"', 'reidmylips'],
|
||
['dvp', 'jaclyn_case_digitalsin', 'Jaclyn Case in "2 Heads R Better Than 1 Volume Two"', 'digitalsin'],
|
||
['dvp', 'vina_sky_julesjordan', 'Vina Sky in "Asian Goddess Vina Sky Demands Two Cocks Inside Her At Once"', 'julesjordan'],
|
||
['dvp', 0, 'Aaliyah Hadid in "Squirting From Double Penetration With Anal"', 'bangbros'],
|
||
['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5"', 'elegantangel'],
|
||
['dv-tp', 'veronica_avluv_brazzers', 'Veronica Avluv in "The Secret Soiree: Six-Man Gang Bang"', 'brazzers'],
|
||
['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'],
|
||
['dv-tp', 0, 'Luna Rival in SZ1490'],
|
||
['electric-shock', 'tia_ling_electrosluts', 'Tia Ling', 'electrosluts'],
|
||
['enhanced-boobs', 7, 'Charley Atwell', 'icandigirls'],
|
||
['enhanced-boobs', 14, 'Rikki Six', 'dreamdolls'],
|
||
['enhanced-boobs', 2, 'Gia Milana in "Hot Anal Latina"', 'hardx'],
|
||
['enhanced-boobs', 'jenny_poussin_jennypoussinvip', 'Jenny Poussin in "His Shirt"', 'jennypoussinvip'],
|
||
['enhanced-boobs', 25, 'Zuleidy', 'private'],
|
||
['enhanced-boobs', 17, 'Felina in "With Flowers On The Floor"', 'louisdemirabert'],
|
||
['enhanced-boobs', 'hunter_bryce_penthouse', 'Hunter Bryce in "On The Bed"', 'penthouse'],
|
||
['enhanced-boobs', '18a', 'Ebony Godess', 'actiongirls'],
|
||
['enhanced-boobs', 1, 'Lela Star in "Thick"', 'julesjordan'],
|
||
['enhanced-boobs', 'courtney_taylor_brazzers', 'Courtney Taylor in "Pounding That Pussy By The Pool"', 'brazzers'],
|
||
['enhanced-boobs', 'september_reign_spizoo', 'September Rain in "September Reign Loves Jessica"', 'spizoo'],
|
||
['enhanced-boobs', 'katrina_moreno_bangbros', 'Katrina Moreno in "Stripper Cream Pie"', 'bangbros'],
|
||
['enhanced-boobs', 'sadie_santana_newsensations', 'Sadie Santana in "Backdoor Beauties"', 'newsensations'],
|
||
['enhanced-boobs', 'ricki_raxxx_pornpros', 'Ricki Raxxx', 'pornpros'],
|
||
['enhanced-boobs', 'kiera_king_puremature', 'Kiera King in "Warming Up"', 'puremature'],
|
||
['enhanced-boobs', 'diana_prince_penthouse_2', 'Diana Prince in "It Is What It Seems"', 'penthouse'],
|
||
['enhanced-boobs', 'chessie_kay_chelsey_lanette_eurogirlsongirls', 'Chelsey Lanette and Chessie Kay', 'eurogirlsongirls'],
|
||
['enhanced-boobs', 'chelsey_lanette_sexart_1', 'Chelsey Lanette in "Tell Me How You Want"', 'sexart'],
|
||
['enhanced-boobs', 'amy_anderssen_evilangel_1a', 'Amy Anderssen in "Titty Creampies 6"', 'evilangel'],
|
||
['enhanced-boobs', 'trudy_photodromm_1', 'Trudy', 'photodromm'],
|
||
['enhanced-boobs', 'kenzie_anne_playboy', 'Miss Kenzie Anne in "Supercharged"', 'playboy'],
|
||
['enhanced-boobs', 'kelly_oliveira_teenfidelity', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'],
|
||
['enhanced-boobs', 13, 'Kitana Lure', 'assholefever'],
|
||
['enhanced-boobs', 9, 'Putri Cinta', 'watch4beauty'],
|
||
['enhanced-boobs', 'alexis_zara_wildoncam', 'Alexis Zara', 'wildoncam'],
|
||
['enhanced-boobs', 'diamond_foxxx_brazzers_1', 'Diamond Foxxx in "Big Cock Inheritor"', 'brazzers'],
|
||
['enhanced-boobs', 'silvia_dellai_pornworld', 'Silvia Dellai in GP1966', 'pornworld'],
|
||
['enhanced-boobs', 3, 'Ashly Anderson', 'passionhd'],
|
||
['enhanced-boobs', 'diamond_brandi_kendra_jewels_brazzers', 'Diamond Jackson, Brandi Love, Johnny Sins, Kendra Lust and Jewels Jade in "Miss Titness America"', 'brazzers'],
|
||
['enhanced-boobs', 'jennifer_mendez_bangbros', 'Jennifer Mendez', 'bangbros'],
|
||
['enhanced-boobs', 'charlie_atwell_photodromm', 'Charley Atwell', 'photodromm'],
|
||
['enhanced-boobs', 'clanddi_jinkcego_ddfbusty_5', 'Clanddi Jinkcego & Rebecca Jessop', 'ddfbusty'],
|
||
['enhanced-boobs', '23d', 'Lulu Sex Bomb in "Tropical Touch"'],
|
||
['enhanced-boobs', 22, 'Sakura Sena'],
|
||
['enhanced-boobs', 'mareeva_trudy_photodromm_1', 'Mareeva and Trudy', 'photodromm'],
|
||
['enhanced-boobs', 'priya_rai_foxes', 'Priya Rai in "Fishnet"', 'foxes'],
|
||
['enhanced-boobs', 'alexis_breeze_danni_1', 'Alexis Breeze', 'danni'],
|
||
['enhanced-boobs', 'lara_frost_handsonhardcore', 'Lara Frost in "Handyman & Hubby Try To Satisfy Horny Little Ukrainian Nympho"', 'handsonhardcore'],
|
||
['enhanced-boobs', 'shawna_lenee_inthecrack_3', 'Shawna Lenee', 'inthecrack'],
|
||
['enhanced-boobs', 'azul_hermosa_pornstarslikeitbig', 'Azul Hermosa in "She Likes Rough Quickies"', 'pornstarslikeitbig'],
|
||
['enhanced-boobs', 21, 'Emelie Ekström'],
|
||
['enhanced-boobs', 10, 'Tia Cyrus in "Titty-Fucked Yoga Goddess"', 'latinasextapes'],
|
||
['enhanced-boobs', 24, 'Shalina Devine in "Rumbling in the Ring, Part 2"', 'pornworld'],
|
||
['enhanced-boobs', 20, 'Chloe Lamour', 'ddfbusty'],
|
||
['enhanced-boobs', 8, 'Amber Alena', 'score'],
|
||
['enhanced-boobs', 19, 'Kerrie Lee in "Bricked"', 'studio66tv'],
|
||
['enhanced-boobs', 4, 'Capri Cavanni', 'bigtitsinsports'],
|
||
['enhanced-butt', '0a', 'Aletta Ocean in "Jerk Off Instructions"', 'alettaoceanlive'],
|
||
['facefucking', 5, 'Mia Moore B', 'throated'],
|
||
['facefucking', 'paige_owens_julesjordan', 'Paige Owens in "Butt Slut In Anal Training"', 'julesjordan'],
|
||
['facefucking', 'adria_rae_throated', 'Adria Rae in "Adria Rae Sucks Cock All Day"', 'throated'],
|
||
['facefucking', 6, 'Halle Hayes in "Towering Temptress"', '5kporn'],
|
||
['facefucking', 'cathy_heaven_roccosiffredi', 'Cathy Heaven', 'roccosiffredi'],
|
||
['facefucking', 2, 'Jynx Maze', 'throated'],
|
||
['facefucking', 7, 'Anya Olsen and Audrey Snow in "Babysitter Busted Giving A BJ"', 'mommyblowsbest'],
|
||
['facefucking', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'],
|
||
['facefucking', 4, 'Brooklyn Gray in "Throats Fucks 6"', 'evilangel'],
|
||
['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?"', 'julesjordan'],
|
||
['facial', 0, 'Brooklyn Gray in "All About Ass 4"', 'evilangel'],
|
||
['facial', 'amy_anderssen_julesjordan_1', 'Amy Anderssen in "Lex The Impaler 8"', 'julesjordan'],
|
||
['facial', 3, 'Paige Owens in "Oral Restraint"', 'babes'],
|
||
['facial', 'mia_malkova_manojob_2', 'Mia Malkova in "Covered!"', 'manojob'],
|
||
['facial', 'alicia_williams_holed', 'Alicia Wiliams in "Bath and Anal"', 'holed'],
|
||
['facial', 'poster', 'Jynx Maze in "Gag Reflex 3"', 'evilangel'],
|
||
['facial', 'hope_howell_manojob', 'Hope Howell in "Super Slutty Step-Daugher"', 'manojob'],
|
||
['facial', 2, 'Ashly Anderson', 'hookuphotshot'],
|
||
['facial', 4, 'Kendra Heart', 'facialsforever'],
|
||
['fake-cum', 2, 'Mimi Allen', 'fuckedupfacials'],
|
||
['fake-cum', 3, 'Alexia Anders in "Thanksgiving Creampies"', 'cum4k'],
|
||
['fake-cum', 0, 'Jynx Maze in "Showering Slut Gets Sludged"', 'cumshotsurprise'],
|
||
['fake-cum', 'franceska_le_fortyozbounce', 'Franceska Le and Luscious Lopez', 'fortyozbounce'],
|
||
['fake-cum', 1, 'Ricki White', 'fuckedupfacials'],
|
||
['fake-cum', 4, 'Vina Sky in "Creaming Her Pipes"', 'anal4k'],
|
||
['family', 0, 'Teanna Trump in "A Family Appear: Part One"', 'brazzers'],
|
||
['feet', 'alexis_tae_loveherfeet', 'Alexis Tae in "Poolside Worship"', 'loveherfeet'],
|
||
['femdom', 0, 'Alina Li in "Asian Domination… She Holds Jules Jordan\'s Cock Hostage!"', 'julesjordan'],
|
||
['femdom', 1, 'Little Caprice in "Femdom"', 'littlecapricedreams'],
|
||
['fingering', 1, 'Marry Queen', 'babespottingtv'],
|
||
['fingering', 2, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells"', 'lesbianx'],
|
||
['fingering', 0, 'Ashly Anderson in "Rough Love"', 'hookuphotshot'],
|
||
['fisting', '1a', 'Aletta Ocean in "Solo Fisting"', '21sextury'],
|
||
['fisting', 0, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['fisting-dp', 0, 'Janice Griffith and Veronica Avluv in "The Nymphomaniac\'s Apprentice', 'theupperfloor'],
|
||
['flexible', 'lara_frost_legalporno', 'Lara Frost in NRX059', 'analvids'],
|
||
['free-use', 'jeni_angel_brazzersexxtra', 'Jeni Angel in "Gamer Girl Threesome Action"', 'brazzersexxtra'],
|
||
['free-use', 'veruca_james_brazzersexxtra', 'Veruca James in "The Perfect Maid"', 'brazzersexxtra'],
|
||
['free-use', 'gia_dibella_freeusefantasy', 'Gia Dibella in "Learning to Freeuse"', 'freeusefantasy'],
|
||
['gangbang', 5, 'Carter Cruise\'s first gangbang in "Slut Puppies 9"', 'julesjordan'],
|
||
['gangbang', 'savannah_bond_julesjordan', 'Savannah Bond', 'julesjordan'],
|
||
['gangbang', 'kristen_scott_julesjordan', 'Kristen Scott in "Interracial Gangbang!"', 'julesjordan'],
|
||
['gangbang', 'emily_willis_blacked', 'Emily Willis', 'blacked'],
|
||
['gangbang', 'monika_fox_legalporno', 'Monika Fox in GL479', 'analvids'],
|
||
['gangbang', 7, 'Alexa Flexy in GL376', 'analvids'],
|
||
['gangbang', 'silvia_dellai_legalporno', 'Silvia Dellai in GIO1825', 'analvids'],
|
||
['gangbang', 'lara_frost_legalporno_1', 'Lara Frost in NRX070', 'analvids'],
|
||
['gangbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'],
|
||
['gangbang', 0, '"4 On 1 Gangbangs"', 'doghousedigital'],
|
||
['gangbang', 4, 'Marley Brinx in "The Gangbang of Marley Brinx"', 'julesjordan'],
|
||
['gangbang', 1, 'Ginger Lynn in "Gangbang Mystique", a photoset shot by Suze Randall, 1984. Depicting a woman \'airtight\' pushed the boundaries of pornography at the time.'],
|
||
['gaping', 1, 'Vina Sky in "Vina Sky Does Anal"', 'hardx'],
|
||
['gaping', 4, 'Nicole Black in GIO1626', 'analvids'],
|
||
['gaping', 'poster', 'Zoey Monroe in "Manuel DPs Them All 5"', 'julesjordan'],
|
||
['gaping', 3, 'Jessyka Swan', '21sextury'],
|
||
['gaping', 2, 'Alex Grey in "DP Masters 5"', 'julesjordan'],
|
||
['gay', 'andy_taylor_deangelo_jackson_men', 'Andy Taylor and DeAngelo Jackson', 'men'],
|
||
['handjob', 0, 'Lichelle Marie in "Tug Me Sexy"', 'tugjobs'],
|
||
['handjob', 'mia_malkova_manojob', 'Mia Malkova in "Covered!"', 'manojob'],
|
||
['handjob', 'hope_howell_manojob', 'Hope Howell in "Super Slutty Step-Daugher"', 'manojob'],
|
||
['interracial', 1, 'Caprice and Valerie in "Sexual Attraction"', 'hegre'],
|
||
['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3"', 'julesjordan'],
|
||
['latex', 0, 'Bianca Beauchamp in "Cherry Nun"', 'latexlair'],
|
||
['latex', 1, 'Aletta Ocean in "Latex Dream"', 'alettaoceanlive'],
|
||
['latina', 'kelly_oliveira_teenfidelity_2', 'Kelly Oliveira in "Keep It Going"', 'teenfidelity'],
|
||
['latina', 2, 'Veronica Leal', 'herlimit'],
|
||
['latina', 1, 'Jynx Maze in "Big Anal Asses 2"', 'hardx'],
|
||
['latina', 0, 'Vienna Black', 'spizoo'],
|
||
['latina', 3, 'Gina Valentina', 'brazzers'],
|
||
['lesbian', 'honey_gold_kaylani_lei_brazzers', 'Kaylani Lei and Honey Gold', 'brazzers'],
|
||
['lesbian', 0, 'Jenna Sativa and Alina Lopez in "Opposites Attract"', 'girlgirl'],
|
||
['maid', 0, 'Whitney Wright in "Dredd Up Your Ass 2"', 'julesjordan'],
|
||
['maid', 1, 'Alessandra Jane', 'brazzers'],
|
||
['maid', 'priya_rai_hollyrandall', 'Priya Rai', 'hollyrandall'],
|
||
['milf', 'nikki_benz_bigwetbutts', 'Nikki Benz in "Pantyhose Playtime"', 'bigwetbutts'],
|
||
['milf', 'diamond_foxxx_brazzers_2', 'Diamond Foxxx in "Two MILFs, One Cock"', 'brazzers'],
|
||
['milf', 'silvia_saige_ddfnetwork', 'Silvia Saige', 'pornworld'],
|
||
['milf', 'kaylani_lei_puremature', 'Kaylani Lei', 'puremature'],
|
||
['milf', 2, 'Shalina Devine', 'analmom'],
|
||
['milf', 1, 'Francesca Le', 'evilangel'],
|
||
['milk', 'diamond_foxxx_mommygotboobs', 'Diamond Foxxx in "Midnight Milk"', 'mommygotboobs'],
|
||
['mff', 'zaawaadi_asia_rae_allblackx_3', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
|
||
['mff', 0, 'Madison Ivy, Adriana Chechik and Keiran Lee in "Day With A Pornstar"', 'brazzers'],
|
||
['mff', 1, 'Anikka Albrite, Kelsi Monroe and Mick Blue', 'hardx'],
|
||
['mff', 'azul_hermosa_isis_love_pornstarslikeitbig', 'Azul Hermosa, Isis Love and Zac Wild in "She Likes Rough Quickies"', 'pornstarslikeitbig'],
|
||
['mfm', 'kyra_black_21sextury', 'Kyra Black', '21sextury'],
|
||
['mfm', 'juelz_ventura_babygotboobs_3a', 'Juelz Ventura in "A Deep DP For Dessert"', 'babygotboobs'],
|
||
['mfm', 'emily_willis_blacked', 'Emily Willis', 'blacked'],
|
||
['mfm', 0, 'Vina Sky in "Jules Jordan\'s Three Ways"', 'julesjordan'],
|
||
['mfm', 'anne_amari_wefuckblackgirls', 'Anne Amari', 'wefuckblackgirls'],
|
||
['mfm', 8, 'Ariana Marie in "DP Masters 7"', 'julesjordan'],
|
||
['mfm', 1, 'Lana Rhoades in "Gangbang Me 3"', 'hardx'],
|
||
['mfm', 'franceska_jaimes_digitalplayground', 'Franceska Jaimes in "Monarch"', 'digitalplayground'],
|
||
['mfm', 'hazel_moore_legalporno', 'Hazel Moore', 'analvids'],
|
||
['mfm', 7, 'Rose Valerie', 'eurosexparties'],
|
||
['mfm', 6, 'Honey Gold in "Slut Puppies 12"', 'julesjordan'],
|
||
['natural-boobs', 1, 'Nia Nacci', 'firstclasspov'],
|
||
['natural-boobs', 4, 'Miela (Marry Queen) in "Pure"', 'femjoy'],
|
||
['natural-boobs', 7, 'Layla London', 'inthecrack'],
|
||
['natural-boobs', 'anissa_kate_vixen', 'Anissa Kate in "Power Moves"', 'vixen'],
|
||
['natural-boobs', 'nancy_a_sexart', 'Nancy A in "Double Take"', 'sexart'],
|
||
['natural-boobs', 3, 'Violet Starr in "Violet Starr 1st Lesbian Anal"', 'lesbianx'],
|
||
['natural-boobs', 0, 'Valentina Nappi in "Hypnotic Curves"', 'lesbianx'],
|
||
['natural-boobs', 'nola_exico_realitykings', 'Nola Exico in "Appetite For Big Tits And Scissoring"', 'realitykings'],
|
||
['natural-boobs', 6, 'Blake Blossom in "Naturally Stacked Cutie"', 'hardx'],
|
||
['natural-boobs', 5, 'Chloe B in "Lamour"', 'metart'],
|
||
['natural-boobs', 2, 'Kylie Page', 'allgirlmassage'],
|
||
['nun', 0, 'Lady Zee in NF053', 'analvids'],
|
||
['nun', 1, 'Penny Pax and Darcie Dolce in "Confessions Of A Sinful Nun"', 'sweetheartvideo'],
|
||
['nun', 3, 'Higurashi Rin in "Naughty Nun"', 'allgravure'],
|
||
['nun', 2, 'Lea Lexis in "Confessions Of A Sinful Nun"', 'sweetheartvideo'],
|
||
['nurse', 0, 'Sarah Vandella in "Cum"', 'brazzers'],
|
||
['nurse', 2, 'Evelina Dellai in "Horny Nurses"', 'private'],
|
||
['nurse', 3, 'Lullu Gun in "Hot Nurse Addicted to Anal"', 'private'],
|
||
['nurse', 'hunter_bryce_realityjunkies', 'Hunter Bryce', 'realityjunkies'],
|
||
['nurse', 1, 'Mia Malkova in "Always Think Happy Thoughts"', 'brazzers'],
|
||
['oil', 3, 'Vina Sky', 'lubed'],
|
||
['oil', 1, 'Kissa Sins in "Oil Overload 14"', 'julesjordan'],
|
||
['oil', 'asia_rae_massagerooms', 'Asia Rae', 'massagerooms'],
|
||
['oil', 2, 'Jade Kush', 'passionhd'],
|
||
['oil', 0, 'Jada Stevens in "Jada Stevens Anal Ass Oiled Up\'s Cock"', 'julesjordan'],
|
||
['oral-creampie', 1, 'Valentina Nappi', 'herlimit'],
|
||
['oral-creampie', 0, 'Henessy in "B(ass)t Friends"', 'assholefever'],
|
||
['orgy', 1, 'Megan Rain (DP), Morgan Lee (anal), Jessa Rhodes, Melissa Moore and Kimmy Granger in "Orgy Masters 8"', 'julesjordan'],
|
||
['orgy', 0, 'Vicky Sol and Jolee Love in GIO1550', 'analvids'],
|
||
['orgy', 'zaawaadi_malena_cherry_kiss_roccosiffredi_5', 'Zaawaadi, Cherry Kiss and Malena in "My Name Is Zaawaadi"', 'roccosiffredi'],
|
||
['orgy', 'poster', 'Zoey Mornoe (DP), Jillian Janson (sex), Frida Sante, Katerina Kay and Natasha Starr in "Orgy Masters 6"', 'julesjordan'],
|
||
['parody', 0, 'Capri Cavanni and Dani Daniels in "The Whore of Wall Street"', 'brazzers'],
|
||
['piercings', 0, 'Kaegune in "When The Sun Goes Down"', 'suicidegirls'],
|
||
['piss-drinking', 0, 'Scarlet Domingo in GL227', 'analvids'],
|
||
['pussy-eating', 5, 'Claudia Macc and Victoria Pure', 'eurogirlsongirls'],
|
||
['pussy-eating', 4, 'Anastasia Knight and Jillian Janson in "Teach Me"', 'screwbox'],
|
||
['pussy-eating', 'september_reign_penthouse', 'September Reign in "Sensual Ride"', 'penthouse'],
|
||
['pussy-eating', 'pussykat_amy_red_massagerooms', 'Pussykat and Amy Red', 'massagerooms'],
|
||
['pussy-eating', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['pussy-eating', 'alexis_zara_tonightsgirlfriend', 'Alexis Zara in "Worships Her Clients Cock"', 'tonightsgirlfriend'],
|
||
['pussy-eating', 'lilly_evans_jayme_langford_twistys', 'Jayme Langford and Lilly Evans in "The Morning After"', 'twistys'],
|
||
['pussy-eating', 'zaawaadi_asia_rae_allblackx', 'Zaawaadi and Asia Rae in "All Black Threesome"', 'allblackx'],
|
||
['pussy-eating', 1, 'Anikka Albrite and Riley Reid', 'inthecrack'],
|
||
['pussy-eating', 2, 'Anikka Albrite and Mia Malkova in "Big Anal Bombshells"', 'lesbianx'],
|
||
['pussy-eating', 0, 'Kali Roses and Emily Willis\' pussy in "Peeping On My Neighbor"', 'girlgirl'],
|
||
['pussy-eating', 8, 'Sia Lust and Lacey London in "Naughty Gamer Girls"', 'girlsgonepink'],
|
||
['pussy-eating', 7, 'Jewelz Blu and Katie Kush in "Pick Your Pleasure"', 'realitykings'],
|
||
['pussy-eating', 3, 'Kylie Page and Kalina Ryu in "Training My Masseuse"', 'allgirlmassage'],
|
||
['pussy-eating', 'azul_hermosa_realitykings_1', 'Azul Hermosa and Van Wylde in "Breakup Sex"', 'realitykings'],
|
||
['pussy-eating', 6, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['redhead', 1, 'Lacy Lennon', 'wicked'],
|
||
['redhead', 0, 'Penny Pax in "The Submission of Emma Marx: Boundaries"', 'newsensations'],
|
||
['reverse-blowjob', 'silvia_dellai_pornworld', 'Silvia Dellai in GP1966', 'pornworld'],
|
||
['schoolgirl', 2, 'Cindy Shine in "Schoolgirl Stars in Interracial DP Threesome"', 'private'],
|
||
['schoolgirl', 1, 'Eliza Ibarra', 'brazzers'],
|
||
['sex', 'jane_wilde_evilangel', 'Jane Wilde and Brock Cooper in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['squirting', 0, 'Veronica Rodriguez in "Hot Latina Squirting"', 'julesjordan'],
|
||
['squirting', 1, 'Abella Danger and Karma Rx in "Neon Dreaming"', 'brazzers'],
|
||
['swallowing', 0, 'Kira Thorn in GIO1023', 'analvids'],
|
||
['tattoos', 0, 'Tigerlilly in "Wrapped In Blue"', 'suicidegirls'],
|
||
['tattoos', 1, 'Joanna Angel', 'joannaangel'],
|
||
['teen', 0, 'Alexa Flexy', 'sensualgirl'],
|
||
['teen', 1, 'Stalfra aka Precious', 'nubiles'],
|
||
['trainbang', 1, 'Ria Sunn', 'private'],
|
||
['trainbang', 0, 'Nicole Black in GIO971', 'analvids'],
|
||
['transsexual', 'kelly_silva_mel_almeida_brazilliantranssexuals', 'Kelly Silva and Mel Almeida', 'brazilliantranssexuals'],
|
||
['transsexual', 'amanda_fialho_tsraw', 'Amanda Fialho', 'tsraw'],
|
||
['tap', 4, 'Francys Belle in GIO1103', 'analvids'],
|
||
['tap', 'lisey_sweet_legalporno', 'Lisey Sweet in GIO816', 'analvids'],
|
||
['tap', 3, 'Julia Red in GIO1007', 'analvids'],
|
||
['tap', 1, 'Natasha Teen in SZ2098', 'analvids'],
|
||
['tap', 2, 'Kira Thorn in GIO1018', 'analvids'],
|
||
['titty-fucking', 2, 'Layla London in "Touch Me"', 'bignaturals'],
|
||
['titty-fucking', 0, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower"', 'spyfam'],
|
||
['titty-fucking', 4, 'Set 5532', 'tugjobs'],
|
||
['titty-fucking', 3, 'Anna Bell Peaks in "Ringing Her Bell"', 'milfvr'],
|
||
['titty-fucking', 1, 'Chloe Lamour', 'ddfbusty'],
|
||
['toy-anal', 'kelsi_monroe_roxy_raye_evilangel', 'Kelsi Monroe and Roxy Raye', 'evilangel'],
|
||
['toy-anal', 'ember_snow_jane_wilde_lesbianx', 'Ember Snow and Jane Wilde in "Ember\'s Wilde Ride"', 'lesbianx'],
|
||
['toy-anal', 1, 'Nina North and Cassidy Klein in "Nina\'s First Lesbian Anal"', 'lesbianx'],
|
||
['toy-anal', 3, 'Kelly and Leona in "Sleeping Over"', 'lezcuties'],
|
||
['toy-anal', 2, 'Denise, Irina and Laki in "Sexy Slumber"', 'lezcuties'],
|
||
['toy-anal', 0, 'Kira Noir in 1225', 'inthecrack'],
|
||
['toy-dp', 1, 'Krissy Lynn and London River in "Lesbian DP Workout"', 'lesbianx'],
|
||
['toy-dp', 3, 'Tori Black, Ana Foxxx, Anikka Albrite, Jenna Sativa and Abigail Mac in "Tori Black\'s Lesbian Gangbang"', 'lesbianx'],
|
||
['toy-dp', 0, 'Marley Brinx, Ivy Lebelle and Lyra Law in "Marley Brinx First GGDP"', 'lesbianx'],
|
||
['toys', 1, 'Chloe Lamour in "Curives In All The Right Places"', 'wetandpuffy'],
|
||
['toys', 'shawna_lenee_sunrisekings', 'Shawna Lenee', 'sunrisekings'],
|
||
['triple-penetration', 'lucky_bee_analvids', 'Lucky Bee', 'analvids'],
|
||
['triple-penetration', 'angela_white_julesjordan', 'Angela White in "Her Biggest Gangbang Ever"', 'julesjordan'],
|
||
['triple-penetration', 'ria_sunn_legalporno', 'Ria Sunn in SZ2082', 'analvids'],
|
||
['tvp', 'lucky_bee_legalporno', 'Lucky Bee', 'analvids'],
|
||
['tvp', 'september_reign_wefuckblackgirls', 'September Reign in "Second Appearance"', 'wefuckblackgirls'],
|
||
['trainbang', 'poster', 'Kali Roses in "Passing Me Around"', 'blacked'],
|
||
['trainbang', 'gina_gerson_assholefever', 'Gina Gerson in "Oppa Gangbang Style"', 'assholefever'],
|
||
['vr', 0, 'Michelle H', 'metart'],
|
||
['vr', '1a', 'Jenna Fox and Tommy Pistol in "Virtual Reality Jenna Fox Fucks So Real"', 'bangbros'],
|
||
['white', 2, 'Kenzie Reeves', 'bang'],
|
||
['white', 0, 'Remy Lacroix', 'hardx'],
|
||
['white', 'jane_wilde_evilangel_1', 'Jane Wilde in "The Cock Hungry Chronicles"', 'evilangel'],
|
||
['white', 1, 'Sheena Shaw', 'brazzers'],
|
||
]
|
||
.map(([slug, fileIndex, comment, entitySlug], index) => ({
|
||
id: `${slug}-${fileIndex}`,
|
||
tagSlug: slug,
|
||
path: `tags/${slug}/${fileIndex}.jpeg`,
|
||
thumbnail: `tags/${slug}/thumbs/${fileIndex}.jpeg`,
|
||
lazy: `tags/${slug}/lazy/${fileIndex}.jpeg`,
|
||
mime: 'image/jpeg',
|
||
index,
|
||
comment,
|
||
entitySlug,
|
||
}));
|
||
|
||
/* eslint-disable max-len */
|
||
exports.seed = (knex) => Promise.resolve()
|
||
.then(async () => {
|
||
await upsert('media', sfw, 'id');
|
||
|
||
const tags = await knex('tags').whereIn('slug', tagMedia.map((item) => item.tagSlug));
|
||
|
||
const entities = await knex('entities')
|
||
.whereIn('slug', tagMedia.map((item) => item.entitySlug).filter(Boolean))
|
||
.orderBy('type', 'DESC');
|
||
|
||
const entitiesBySlug = entities.reduce((acc, entity) => ({
|
||
...acc,
|
||
[entity.slug]: entity,
|
||
}), {});
|
||
|
||
const tagMediaWithDimensions = await Promise.map(tagMedia, async (media) => {
|
||
const { width, height } = await sharp(path.join('public/img', media.path)).metadata(); // size not available from filepath
|
||
|
||
return {
|
||
...media,
|
||
width,
|
||
height,
|
||
};
|
||
}, {
|
||
concurrency: 20,
|
||
});
|
||
|
||
const { inserted, updated } = await upsert('media', tagMediaWithDimensions.map((media) => ({
|
||
id: media.id,
|
||
path: media.path,
|
||
thumbnail: media.thumbnail,
|
||
lazy: media.lazy,
|
||
mime: media.mime,
|
||
index: media.index,
|
||
width: media.width,
|
||
height: media.height,
|
||
comment: media.comment,
|
||
entity_id: entitiesBySlug[media.entitySlug]?.id,
|
||
})), 'path', knex);
|
||
|
||
const tagIdsBySlug = tags.reduce((acc, tag) => ({ ...acc, [tag.slug]: tag.id }), {});
|
||
const mediaIdsByPath = inserted.concat(updated).reduce((acc, item) => ({ ...acc, [item.path]: item.id }), {});
|
||
|
||
const tagMediaBySlug = tagMedia.reduce((acc, tagPhoto) => ({
|
||
...acc,
|
||
[tagPhoto.tagSlug]: (acc[tagPhoto.tagSlug] || []).concat(tagPhoto),
|
||
}), {});
|
||
|
||
const tagPosters = Object.values(tagMediaBySlug).map((tag) => tag[0]);
|
||
const tagPhotos = Object.values(tagMediaBySlug).map((tag) => tag.slice(1)).flat();
|
||
|
||
const tagPosterEntries = tagPosters.map((poster) => ({
|
||
tag_id: tagIdsBySlug[poster.tagSlug],
|
||
media_id: mediaIdsByPath[poster.path],
|
||
}));
|
||
|
||
const tagPhotoEntries = tagPhotos.map((photo) => ({
|
||
tag_id: tagIdsBySlug[photo.tagSlug],
|
||
media_id: mediaIdsByPath[photo.path],
|
||
}));
|
||
|
||
await Promise.all([
|
||
upsert('tags_posters', tagPosterEntries, 'tag_id', knex),
|
||
upsert('tags_photos', tagPhotoEntries, ['tag_id', 'media_id'], knex),
|
||
]);
|
||
|
||
// clean up (re)moved tag media
|
||
await Promise.all([
|
||
knex('tags_posters')
|
||
.whereNotIn('media_id', tagPosters.map((photo) => photo.id))
|
||
.delete(),
|
||
knex('tags_photos')
|
||
.whereNotIn('media_id', tagPhotos.map((photo) => photo.id))
|
||
.delete(),
|
||
]);
|
||
});
|