traxxx/seeds/04_media.js

827 lines
34 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// const nanoid = require('nanoid/non-secure');
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 tagPosters = [
['69', 0, 'Abby Lee Brazil and Ramon Nomar for Wicked'],
['airtight', 6, 'Remy Lacroix in "Ass Worship 14" for Jules Jordan'],
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3" for Jules Jordan'],
['anal-creampie', 1, 'Aleska Diamond in "Aleska Wants More" for Asshole Fever'],
['ass-eating', 1, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga" for LesbianX'],
['asian', 0, 'Vina Sky for Erotica X'],
['atm', 2, 'Jureka Del Mar in "Stretched Out" for Her Limit'],
['atogm', 0, 'Alysa Gap and Logan in "Anal Buffet 4" for Evil Angel'],
['bdsm', 0, 'Dani Daniels in "The Traning of Dani Daniels, Day 2" for The Training of O at Kink'],
['bts', 0, 'Janice Griffith in "Day With A Pornstar: Janice" for Brazzers'],
['blindfold', 0, 'Kylie Page in "Natural Blindfolded Beauties" for Hustler'],
['blonde', 1, 'Marsha May in "Once You Go Black 7" for Jules Jordan'],
['blowbang', 0, 'Lacy Lennon in "Lacy Lennon\'s First Blowbang" for HardX'],
['blowjob', 0, 'Adriana Chechik in "The Dinner Party" for Real Wife Stories (Brazzers)'],
['brunette', 0, 'Darcie Dolce for Playboy'],
['bondage', 0, 'Veronica Leal for Her Limit'],
['bukkake', 0, 'Jaye Summers in "Facialized 5" for HardX'],
['caucasian', 2, 'Kenzie Reeves for Bang'],
['creampie', 'poster', 'ALina Lopez in "Making Yourself Unforgettable" for Blacked'],
['cum-in-mouth', 1, 'Sarah Vandella in "Blow Bang Vandella" for HardX'],
['cum-on-butt', 0, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'],
['cum-on-boobs', 1, 'Kylie Page in "Melt In Your Mouth" for Twistys Hard'],
['da-tp', 5, 'Venera Maxima in LegalPorno GIO1287'],
['deepthroat', 2, 'Sarah Vandella for Throated'],
['dap', 7, 'Adriana Chechik in "DP Masters 6" for Jules Jordan'],
['double-blowjob', 1, 'Veronica Rodriguez and Penny Pax in "Fucking Older Guys 5" for Penthouse'],
['double-dildo', 0, 'Kali Roses in "Double Dildo Party" for KaliRoses.com'],
['double-dildo-anal', 0, 'Vina Sky and Kenzie Reeves in "Vina Sky\'s 1st Lesbian Anal" for HardX'],
['double-dildo-blowjob', 0, 'Adriana Chechik and Vicki Chase in "Anal Savages 1" for Jules Jordan'],
['dp', 3, 'Hime Marie in LegalPorno AA047'],
['dvp', 'poster', 'Riley Reid in "Pizza That Ass" for Reid My Lips'],
['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5" for Elegant Angel'],
['ebony', 2, 'Nia Nacci for Sweetheart Video'],
['facefucking', 5, 'Mia Moore B for Throated'],
['facial', 0, 'Brooklyn Gray in "All About Ass 4" for Evil Angel'],
['fake-boobs', 2, 'Gia Milana in "Hot Anal Latina" for HardX'],
['family', 0, 'Teanna Trump in "A Family Appear: Part One" for Brazzers'],
['femdom', 0, 'Alina Li in "Asian Domination… She Holds Jules Jordan\'s Cock Hostage!" for Jules Jordan'],
['gangbang', 5, 'Carter Cruise\'s first gangbang in "Slut Puppies 9" for Jules Jordan'],
['gaping', 1, 'Vina Sky in "Vina Sky Does Anal" for HardX'],
['indian', 0, 'Resha in "Casting Resha" for Watch 4 Beauty'],
['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3" for Jules Jordan'],
['latina', 3, 'Gina Valentina and Veronica Rodriguez in "Squirting Latinas" for LesbianX'],
['lesbian', 0, 'Jenna Sativa and Alina Lopez in "Opposites Attract" for Girl Girl'],
['maid', 0, 'Whitney Wright in "Dredd Up Your Ass 2" for Jules Jordan'],
['milf', 1, 'Francesca Le for Evil Angel'],
['mff', 1, 'Anikka Albrite, Kelsi Monroe and Mick Blue for HardX'],
['mfm', 0, 'Vina Sky in "Jules Jordan\'s Three Ways" for Jules Jordan'],
['natural-boobs', 3, 'Violet Starr in "Violet Starr 1st Lesbian Anal" for LesbianX'],
['nurse', 0, 'Sarah Vandella in "Cum For Nurse Sarah" for Brazzers'],
['oil', 2, 'Jade Kush for Passion HD'],
['oral-creampie', 1, 'Valentina Nappi for Her Limit'],
['orgy', 1, 'Megan Rain (DP), Morgan Lee (anal), Jessa Rhodes, Melissa Moore and Kimmy Granger in "Orgy Masters 8" for Jules Jordan'],
['parody', 0, 'Capri Cavanni and Dani Daniels in "The Whore of Wall Street" for Brazzers'],
['piercings', 0, 'Kaegune in "When The Sun Goes Down" for Suicide Girls'],
['piss-drinking', 0, 'Scarlet Domingo in LegalPorno GL227'],
['pussy-eating', 2, 'Anikka Albrite and Mia Malkova in "Big Anal Bombshells" for LesbianX'],
['redhead', 1, 'Lacy Lennon for Wicked'],
['squirting', 0, 'Veronica Rodriguez in "Hot Latina Squirting" for Jules Jordan'],
['schoolgirl', 1, 'Eliza Ibarra for Brazzers'],
['swallowing', 'poster'],
['tattoos', 1, 'Joanna Angel for Joanna Angel'],
['teen', 0, 'Alexa Flexy for Sensual Girl'],
['titty-fucking', 0, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam'],
['toy-anal', 1, 'Nina North and Cassidy Klein in "Nina\'s First Lesbian Anal" for LesbianX'],
['toy-dp', 1, 'Krissy Lynn and London River in "Lesbian DP Workout" for LesbianX'],
['trainbang', 'poster', 'Kali Roses in "Passing Me Around" for Blacked'],
['tap', 'poster', 'Kristy Black in SZ1986 for LegalPorno'],
]
.map(([slug, fileIndex, comment], 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,
}));
const tagPhotos = [
['69', 3, 'Anne Amari and Alina Lopez in "Hot Lesbian Seduction" for LesbianX'],
['69', 1, 'Melody Petite for 21Sextury'],
['69', 2, 'Abigail Mac and Kissa Sins in "Lesbian Anal Workout" for HardX'],
['airtight', 5, 'Chloe Amour in "DP Masters 4" for Jules Jordan'],
['airtight', 1, 'Jynx Maze in "Pump My Ass Full of Cum 3" for Jules Jordan'],
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel'],
['airtight', 3, 'Anita Bellini in "Triple Dick Gangbang" for Hands On Hardcore (DDF Network)'],
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary" for Tushy'],
['atm', 3, 'Natasha Teen in "Work That Ass!" for Her Limit'],
['atm', 0, 'Roxy Lips in "Under Her Coat" for 21 Naturals'],
['atm', 6, 'Jane Wilde in "Teen Anal" for Evil Angel'],
// ['asian', 1, 'Alina Li in "Oil Overload 11" for Jules Jordan'],
// ['anal', 'poster', 'Jynx Maze in "Anal Buffet 6" for Evil Angel'],
['anal', 4, 'Lana Roy in "Anal In The Club" for 21Naturals'],
['anal', 3, 'Dakota Skye for Brazzers'],
// ['anal', 1, 'Veronica Leal and Tina Kay in "Agents On Anal Mission" for Asshole Fever'],
// ['anal', 0, 'Veronica Leal'],
['toy-anal', 0, 'Kira Noir in 1225 for InTheCrack'],
['ass-eating', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches" for Asshole Fever'],
['bts', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers'],
['blonde', 3, 'Kylie Page in "A Juicy Afternoon Delight" for New Sensations'],
['blonde', 2, 'Isabelle Deltore for Her Limit'],
['blowbang', 'poster', 'Marsha May in "Feeding Frenzy 12" for Jules Jordan'],
['blowjob', 1, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam'],
// ['bukkake', 'poster', 'Mia Malkova in "Facialized 2" for HardX'],
['caucasian', 0, 'Remy Lacroix for HardX'],
['caucasian', 1, 'Sheena Shaw for Brazzers'],
['cum-in-mouth', 0, 'Vina Sky and Avi Love for HardX'],
['cum-on-boobs', 0, 'Alessandra Jane for Private'],
['da-tp', 6, 'Adriana Chechik in "Gangbang Me" for HardX'],
['da-tp', 0, 'Natasha Teen in LegalPorno SZ2164'],
['da-tp', 1, 'Francys Belle in SZ1702 for LegalPorno'],
['dap', 6, 'Sheena Shaw in "Ass Worship 14" for Jules Jordan'],
['dap', 9, 'Vicky Sol in GIO1547 for LegalPorno'],
['dap', 1, 'Ria Sunn in SZ1801 for LegalPorno'],
['dap', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX'],
['dap', 5, 'Riley Reid in "The Gangbang of Riley Reid" for Jules Jordan'],
// ['dap', 8, 'Lady Gang in SZ2478 LegalPorno'],
['dap', 'poster', 'Haley Reed in "Young Hot Ass" for Evil Angel'],
['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971 for LegalPorno'],
['deepthroat', 1, 'Jynx Maze in "Slutty and Sluttier 13" for Evil Angel'],
['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun" for Throated'],
['double-blowjob', 0, 'Kira Noir and Kali Roses for Brazzers'],
['double-dildo-anal', 2, 'Adria Rae and Megan Rain in "Best Friends Anal" for Holed'],
['double-dildo-anal', 1, 'Sammie Rhodes and Ainsley Addision in "Tickle Me Pink" for We Live Together (Reality Kings)'],
['double-dildo-blowjob', 1, 'Aidra Fox and Reena Sky in "Reena\'s Got A Staring Problem" for Brazzers'],
['double-dildo-dp', 0, 'u/LacyCrow "Sometimes you have to do it yourself"'],
['dp', 2, 'Megan Rain in "DP Masters 4" for Jules Jordan'],
['dp', 4, 'Rebecca Volpetti for Hands On Hardcore'],
['dp', 'poster', 'Mia Malkova in "DP Me 8" for HardX'],
['dvp', 0, 'Aaliyah Hadid in "Squirting From Double Penetration With Anal" for Bang Bros'],
['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'],
['dv-tp', 0, 'Luna Rival in LegalPorno SZ1490'],
['ebony', 1, 'Ana Foxxx in "DP Me 4" for HardX'],
['facial', 2, 'Ashly Anderson for Hookup Hotshot'],
['facial', 'poster', 'Jynx Maze'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12" for Evil Angel'],
['facefucking', 2, 'Jynx Maze for Throated'],
['facefucking', 4, 'Brooklyn Gray in "Throats Fucks 6" for Evil Angel'],
['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?" for Jules Jordan'],
['fake-boobs', 10, 'Tia Cyrus in "Titty-Fucked Yoga Goddess" for Latina Sex Tapes'],
['fake-boobs', 11, 'Jessa Rhodes and Cali Carter in "Busty Anal Workout" for LesbianX'],
['fake-boobs', 9, 'Putri Cinta for StasyQ'],
['fake-boobs', 3, 'Ashly Anderson for Passion HD'],
['fake-boobs', 1, 'Lela Star in "Thick" for Jules Jordan'],
['fake-boobs', 8, 'Amber Alena for Score'],
// ['fake-boobs', 6, 'Cathy Heaven in "Heavenly Ass" for Big Wett Butts'],
['fake-boobs', 4, 'Capri Cavanni for Big Tits in Sports'],
['fake-boobs', 7, 'Madison Ivy for Passion HD'],
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
['gangbang', 0, '"4 On 1 Gangbangs" for Doghouse Digital'],
['gangbang', 6, 'Silvia Soprano in GIO1580 for LegalPorno'],
['gangbang', 4, 'Marley Brinx in "The Gangbang of Marley Brinx" for Jules Jordan'],
['gangbang', 1, 'Ginger Lynn in "Gangbang Mystique", a photoset shot by Suze Randall for Puritan No. 10, 1984. This photo pushed the boundaries of pornography at the time, as depicting a woman \'fully occupied\' was unheard of.'],
['gaping', 'poster', 'Zoey Monroe in "Manuel DPs Them All 5" for Jules Jordan'],
['gaping', 3, 'Jessyka Swan for 21Sextury'],
['gaping', 2, 'Alex Grey in "DP Masters 5" for Jules Jordan'],
['latina', 2, 'Veronica Leal for Her Limit'],
['latina', 1, 'Jynx Maze in "Big Anal Asses 2" for HardX'],
['latina', 0, 'Vienna Black for Spizoo'],
['lesbian', 1, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells" for LesbianX'],
['maid', 1, 'Alessandra Jane for Brazzers'],
// ['milf', 0, 'Olivia Austin in "Dredd 3" for Jules Jordan'],
['mff', 0, 'Madison Ivy, Adriana Chechik and Keiran Lee in "Day With A Pornstar" for Brazzers'],
['mfm', 6, 'Honey Gold in "Slut Puppies 12" for Jules Jordan'],
['natural-boobs', 1, 'Nia Nacci for First Class POV'],
['natural-boobs', 0, 'Valentina Nappi in "Hypnotic Curves" for LesbianX'],
['natural-boobs', 2, 'Kylie Page for All Girl Massage'],
['oil', 1, 'Kissa Sins in "Oil Overload 14" for JulesJordan'],
['oil', 3, 'Vina Sky for Lubed'],
['oil', 0, 'Jada Stevens in "Jada Stevens Anal Ass Oiled Up For James Deen\'s Cock" for Jules Jordan'],
['oral-creampie', 0, 'Henessy in "B(ass)t Friends" for Asshole Fever'],
['orgy', 0, 'Vicky Sol and Jolee Love in LegalPorno GIO1550'],
['orgy', 'poster', 'Zoey Mornoe (DP), Jillian Janson (sex), Frida Sante, Katerina Kay and Natasha Starr in "Orgy Masters 6" for Jules Jordan'],
['pussy-eating', 3, 'Kylie Page and Kalina Ryu in "Training My Masseuse" for All Girl Massage'],
['pussy-eating', 0, 'Kali Roses licking Emily Willis\' pussy in "Peeping On My Neighbor" for Girl Girl'],
['pussy-eating', 1, 'Anikka Albrite and Riley Reid for In The Crack'],
['redhead', 0, 'Penny Pax in "The Submission of Emma Marx: Boundaries" for New Sensations'],
['tattoos', 0, 'Tigerlilly in "Wrapped In Blue" for Suicide Girls'],
['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno'],
['tap', 1, 'Natasha Teen in SZ2098 for LegalPorno'],
['tap', 2, 'Kira Thorn in GIO1018 for LegalPorno'],
['toy-dp', 0, 'Marley Brinx, Ivy Lebelle and Lyra Law in "Marley Brinx First GGDP" for LesbianX'],
]
.map(([slug, fileIndex, comment], 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,
}));
/* eslint-disable max-len */
exports.seed = knex => Promise.resolve()
.then(async () => {
await upsert('media', sfw, 'id');
const tagMedia = tagPosters.concat(tagPhotos);
const tags = await knex('tags').whereIn('slug', tagMedia.map(item => item.tagSlug));
const { inserted, updated } = await upsert('media', tagMedia.map(({
id, path, thumbnail, lazy, mime, index, comment,
}) => ({
id, path, thumbnail, lazy, mime, index, comment,
})), '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 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(),
]);
});