traxxx/seeds/04_media.js

801 lines
31 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', 1, 'Melody Petite for 21Sextury'],
['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'],
['anal-toys', 0, 'Kira Noir in 1225 for InTheCrack'],
['ass-eating', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches" for Asshole Fever'],
['asian', 0, 'Jade Kush 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'],
['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', 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'],
['cum-on-butt', 0, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'],
['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-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', 2, 'Veronica Leal for Her Limit'],
['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', 1, 'Nia Nacci for First Class POV'],
['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', 1, 'Anikka Albrite and Riley Reid for In The Crack'],
['redhead', 1, 'Lacy Lennon for Holly Randall'],
['squirting', 0, 'Veronica Rodriguez in "Hot Latina Squirting" for Jules Jordan'],
['schoolgirl', 1, 'Eliza Ibarra for Brazzers'],
['swallowing', 'poster'],
['teen', 0, 'Alexa Flexy for Sensual Girl'],
['tattoos', 1, 'Joanna Angel for Joanna Angel'],
['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', 0, 'Abby Lee Brazil and Ramon Nomar for Wicked'],
['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'],
['bts', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers'],
['blonde', 2, 'Isabelle Deltore for Her Limit'],
['blowbang', 'poster', 'Marsha May in "Feeding Frenzy 12" for Jules Jordan'],
// ['bukkake', 'poster', 'Mia Malkova in "Facialized 2" for HardX'],
['caucasian', 1, 'Sheena Shaw for Brazzers'],
['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-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', 9, 'Putri Cinta for StasyQ'],
['fake-boobs', 8, 'Amber Alena for Score'],
['fake-boobs', 1, 'Lela Star in "Thick" for Jules Jordan'],
// ['fake-boobs', 6, 'Cathy Heaven in "Heavenly Ass" for Big Wett Butts'],
['fake-boobs', 7, 'Madison Ivy for Passion HD'],
['fake-boobs', 4, 'Capri Cavanni for Big Tits in Sports'],
['fake-boobs', 3, 'Ashly Anderson for Passion HD'],
['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', 3, 'Jessyka Swan for 21Sextury'],
['gaping', 2, 'Alex Grey in "DP Masters 5" for Jules Jordan'],
['latina', 1, 'Jynx Maze in "Big Anal Asses 2" for HardX'],
['latina', 0, 'Vienna Black for Spizoo'],
// ['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', 0, 'Valentina Nappi in "Hypnotic Curves" for LesbianX'],
['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', 0, 'Kali Roses licking Emily Willis\' pussy in "Peeping On My Neighbor" for Girl Girl'],
['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'],
['cum-in-mouth', 0, 'Vina Sky and Avi Love for HardX'],
]
.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(),
]);
});