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, copyright], index) => ({ id: photo, path: `sfw/${category}/${photo}.jpeg`, thumbnail: `sfw/${category}/thumbs/${photo}.jpeg`, lazy: `sfw/${category}/lazy/${photo}.jpeg`, mime: 'image/jpeg', sfw_media_id: null, group: category, index, copyright, comment: `Courtesy of ${copyright}`, }))) .flat(); const tagPosters = [ ['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', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches" for Asshole Fever'], ['asian', 0, 'Alina Li in "Slut Puppies 8" for Jules Jordan'], ['ass-to-mouth', 0, 'Helena Sweet in "Teen Tryout" for Asshole Fever'], ['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'], ['behind-the-scenes', 0, 'Janice Griffith in "Day With A Pornstar: Janice" for Brazzers'], ['blonde', 0, 'Anikka Albrite and Lena Nicole or Cherie DeVille in the BTS of "New Zealand Holiday" for In The Crack'], ['blowbang', 'poster', 'Marsha May in "Feeding Frenzy 12" for Jules Jordan'], ['blowjob', 0, 'Adriana Chechik in "The Dinner Party" for Real Wife Stories (Brazzers)'], ['brunette', 0, 'Nicole Black in GIO971 for LegalPorno'], ['bukkake', 0, 'Jaye Summers in "Facialized 5" for HardX'], ['caucasian', 0, 'Remy Lacroix for HardX'], ['creampie', 'poster', 'ALina Lopez in "Making Yourself Unforgettable" for Blacked'], ['cum-in-mouth', 1, 'Sarah Vandella in "Blow Bang Vandella" for HardX'], ['da-tp', 0, 'Natasha Teen in LegalPorno SZ2164'], ['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun" for Throated'], ['double-anal', 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-blowjob', 0, 'Adriana Chechik and Vicki Chase in "Anal Savages 1" for Jules Jordan'], ['double-penetration', 2, 'Megan Rain in "DP Masters 4" for Jules Jordan'], ['double-vaginal', 'poster', 'Riley Reid in "Pizza That Ass" for Reid My Lips'], ['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5" for Elegant Angel'], ['ebony', 1, 'Ana Foxxx in "DP Me 4" for HardX'], ['facefucking', 2, 'Jynx Maze for Throated'], ['facial', 0, 'Brooklyn Gray in "All About Ass 4" for Evil Angel'], ['fake-boobs', 1, 'Lela Star in "Thick" for Jules Jordan'], ['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'], ['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3" for Jules Jordan'], ['latina', 'poster', 'Alexis Love for Penthouse'], ['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', 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', 5, 'Vina Sky in "Slut Puppies 15" for Jules Jordan'], ['natural-boobs', 0, 'Autumn Falls in "Manuel Ferrara\'s Ripe 7" for Jules Jordan'], ['nurse', 0, 'Sarah Vandella in "Cum For Nurse Sarah" for Brazzers'], ['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', 1, 'Megan Rain (DP), Morgan Lee (anal), Jessa Rhodes, Melissa Moore and Kimmy Granger in "Orgy Masters 8" for Jules Jordan'], ['piercings', 0, 'Kaegune in "When The Sun Goes Down" for Suicide Girls'], ['pussy-eating', 0, 'Kali Roses licking Emily Willis\' pussy in "Peeping On My Neighbor" for Girl Girl'], ['redhead', 1, 'Lacy Lennon in "Girl Crush" for When Girls Play'], ['schoolgirl', 1, 'Eliza Ibarra for Brazzers'], ['swallowing', 'poster'], ['teen', 0, 'Eva Elfie in "Fresh New Talent" for Club Seventeen'], ['tattoos', 0, 'Tigerlilly in "Wrapped In Blue" for Suicide Girls'], ['trainbang', 'poster', 'Kali Roses in "Passing Me Around" for Blacked'], ['triple-anal', 'poster', 'Kristy Black in SZ1986 for LegalPorno'], ] .map(([slug, filename, comment], index) => ({ id: nanoid(), tagSlug: slug, path: `tags/${slug}/${filename}.jpeg`, thumbnail: `tags/${slug}/thumbs/${filename}.jpeg`, lazy: `tags/${slug}/lazy/${filename}.jpeg`, mime: 'image/jpeg', index, comment, })); const tagPhotos = [ ['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'], ['asian', 'poster', 'Vina Sky in "Slut Puppies 15" for Jules Jordan'], // ['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'], ['behind-the-scenes', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers'], ['bukkake', 'poster', 'Mia Malkova in "Facialized 2" for HardX'], ['caucasian', 1, 'Sheena Shaw for Brazzers'], ['da-tp', 1, 'Francys Belle in SZ1702 for LegalPorno'], ['da-tp', 2, 'Angel Smalls in GIO408 for LegalPorno'], ['da-tp', 3, 'Evelina Darling in GIO294'], ['da-tp', 4, 'Ninel Mojado aka Mira Cuckold in GIO063 for LegalPorno'], ['double-anal', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX'], ['double-anal', 6, 'Sheena Shaw in "Ass Worship 14" for Jules Jordan'], ['double-anal', 5, 'Riley Reid in "The Gangbang of Riley Reid" for Jules Jordan'], ['double-anal', 'poster', 'Haley Reed in "Young Hot Ass" for Evil Angel'], ['double-anal', 0, 'Nicole Black doing double anal during a gangbang in GIO971 for LegalPorno'], ['double-anal', 1, 'Ria Sunn in SZ1801 for LegalPorno'], ['double-blowjob', 0, 'Kira Noir and Kali Roses for Brazzers'], ['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"'], ['double-penetration', 'poster', 'Mia Malkova in "DP Me 8" for HardX'], ['double-penetration', 0, 'Zoey Monroe in "Slut Puppies 7" for Jules Jordan'], ['double-penetration', 1, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'], ['double-vaginal', 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'], ['facial', 1, 'Ella Knox in "Mr Saltys Adult Emporium Adventure 2" for Aziani'], ['facial', 'poster', 'Jynx Maze'], ['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?" for Jules Jordan'], ['facefucking', 1, 'Carrie for Young Throats'], // ['fake-boobs', 0, 'Marsha May in "Once You Go Black 7" for Jules Jordan'], ['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'], ['gangbang', 0, '"4 On 1 Gangbangs" for Doghouse Digital'], ['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', 2, 'Alex Grey in "DP Masters 5" for Jules Jordan'], ['latina', 0, 'Abby Lee Brazil for Bang Bros'], // ['mfm', 0, 'Vina Sky in "Jules Jordan\'s Three Ways" for Jules Jordan'], ['mfm', 1, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'], ['oil', 1, 'Emily Willis in "Emily Willis Has A Squirting Anal Orgasm" for Jules Jordan'], ['orgy', 'poster', 'Zoey Mornoe (DP), Jillian Janson (sex), Frida Sante, Katerina Kay and Natasha Starr in "Orgy Masters 6" for Jules Jordan'], ['redhead', 0, 'Penny Pax in "The Submission of Emma Marx: Boundaries" for New Sensations'], ['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno'], ['triple-anal', 1, 'Natasha Teen in SZ2098 for LegalPorno'], ['triple-anal', 2, 'Kira Thorn in GIO1018 for LegalPorno'], ['cum-in-mouth', 'poster', 'Khloe Kapri'], ] .map(([slug, fileIndex, comment], index) => ({ id: nanoid(), 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 () => { const { inserted } = await upsert('media', sfw, 'id'); const sfwMediaIds = inserted.map(mediaEntry => ({ id: nanoid(), media_id: mediaEntry.id, })); await upsert('media_sfw', sfwMediaIds, 'media_id'); }) .then(async () => { 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], })); return Promise.all([ upsert('tags_posters', tagPosterEntries, 'tag_id', knex), upsert('tags_photos', tagPhotoEntries, ['tag_id', 'media_id'], knex), ]); });