forked from DebaucheryLibrarian/traxxx
401 lines
18 KiB
JavaScript
401 lines
18 KiB
JavaScript
const upsert = require('../src/utils/upsert');
|
|
|
|
const tagPosters = [
|
|
['airtight', 1, 'Jynx Maze in "Pump My Ass Full of Cum 3" for Jules Jordan'],
|
|
['anal', 3, 'Dakota Skye for Brazzers'],
|
|
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary" for Tushy'],
|
|
['ass-eating', 0, 'Kendra Sunderland and Ana Foxxx in "Kendra\'s Obsession, Part 3" for Blacked'],
|
|
['asian', 0, 'Alina Li in "Slut Puppies 8" for Jules Jordan'],
|
|
['ass-to-mouth', 'poster', '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'],
|
|
['blowjob', 0, 'Adriana Chechik in "The Dinner Party" for Real Wife Stories (Brazzers)'],
|
|
['brunette', 0, 'Nicole Black in GIO971 for LegalPorno'],
|
|
['bukkake', 'poster'],
|
|
['caucasian', 0, 'Remy Lacroix for HardX'],
|
|
['creampie', 'poster'],
|
|
['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', 0, 'Kira Noir and Kali Roses for Brazzers'],
|
|
['double-penetration', 2, 'Adriana Chechik in "DP Masters 6" 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', 1, 'Carrie for Young Throats'],
|
|
['facial', 'poster'],
|
|
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
|
|
['gaping', 1, 'Vina Sky in "Vina Sky Does Anal" for HardX'],
|
|
['interracial', 'poster'],
|
|
['latina', 'poster', 'Alexis Love for Penthouse'],
|
|
['lesbian', 0, 'Reena Sky and Sarah Banks for Brazzers'],
|
|
['mff', 0, 'Madison Ivy and Adriana Chechik in "Day With A Pornstar" for Brazzers'],
|
|
['mfm', 5, 'Vina Sky in "Slut Puppies 15" for Jules Jordan'],
|
|
['oral-creampie', 1, 'Keisha Grey in Brazzers House'],
|
|
['orgy', 'poster'],
|
|
['redhead', 0, 'Penny Pax in "The Submission of Emma Marx: Evolved" for New Sensations'],
|
|
['schoolgirl', 1, 'Eliza Ibarra for Brazzers'],
|
|
['swallowing', 'poster'],
|
|
['tattoo', 'poster', 'Kali Roses in "Goes All In For Anal" for Hussie Pass'],
|
|
['trainbang', 'poster', 'Kali Roses in "Passing Me Around" for Blacked'],
|
|
['triple-anal', 'poster', 'Kristy Black in SZ1986 for LegalPorno'],
|
|
]
|
|
.map(([slug, filename, comment], index) => ({
|
|
tagSlug: slug,
|
|
path: `tags/${slug}/${filename}.jpeg`,
|
|
thumbnail: `tags/${slug}/${filename}_thumb.jpeg`,
|
|
mime: 'image/jpeg',
|
|
index,
|
|
comment,
|
|
}));
|
|
|
|
const tagPhotos = [
|
|
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel'],
|
|
['airtight', 3, 'Anita Bellini in "Triple Dick Gangbang" for Hands On Hardcore (DDF Network)'],
|
|
['asian', 'poster', 'Vina Sky in "Slut Puppies 15" for Jules Jordan'],
|
|
// ['asian', 1, 'Alina Li in "Oil Overload 11" for Jules Jordan'],
|
|
['anal', 2, 'Gabbie Carter for Tushy Raw'],
|
|
['anal', 'poster', 'Jynx Maze in "Anal Buffet 6" for Evil Angel'],
|
|
['anal', 1, 'Veronica Leal and Tina Kay in "Agents On Anal Mission" for Asshole Fever'],
|
|
['anal', 0],
|
|
['behind-the-scenes', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers'],
|
|
['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-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'],
|
|
['facefucking', 2, 'Jynx Maze for Throated'],
|
|
['latina', 0, 'Abby Lee Brazil for Bang Bros'],
|
|
['gangbang', 0, '"4 On 1 Gangbangs" for Doghouse Digital'],
|
|
['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.'],
|
|
['gangbang', 2, 'Riley Reid\'s double anal in "The Gangbang of Riley Reid" for Jules Jordan'],
|
|
['gaping', 'poster', 'Paulina in "Anal Buffet 4" for Evil Angel'],
|
|
['gaping', 0, 'McKenzee Miles in "Anal Buffet 4" for Evil Angel'],
|
|
// ['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'],
|
|
['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'],
|
|
['oral-creampie', 'poster', 'Khloe Kapri'],
|
|
]
|
|
.map(([slug, fileIndex, comment], index) => ({
|
|
tagSlug: slug,
|
|
path: `tags/${slug}/${fileIndex}.jpeg`,
|
|
thumbnail: `tags/${slug}/${fileIndex}_thumb.jpeg`,
|
|
mime: 'image/jpeg',
|
|
index,
|
|
comment,
|
|
}));
|
|
|
|
const sfw = Object.entries({
|
|
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'],
|
|
],
|
|
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'],
|
|
['NrzNScsGgp8', 'Guy Basabose'],
|
|
['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: [
|
|
['XPSXhLx143g', 'Wouter Meijering'],
|
|
['VpxavZd4S-I', 'Mr Lemon'],
|
|
['9vHOhKoNlNw', 'Edrece Stansberry'],
|
|
['uScYRjZ2ol8', 'donald modeste'],
|
|
['fCE-pTmFrPI', 'Valeriu Bondarenco'],
|
|
['1ZTccDpF71k', 'Austin Paquette'],
|
|
['Au-LzDMd_Cw', 'Stephanie McCabe'],
|
|
['9cfHdC2Asak', 'cindy fernandez'],
|
|
['4-rmvQRL2nY', 'Annie Spratt'],
|
|
['8Yvwy4Kbd1g', 'Alex Kondratiev'],
|
|
['4PtChDuxsDI', 'Dronile Hiraldo'],
|
|
['Mi1SNlsyWAk', 'Louis Hansel @shotsoflouis'],
|
|
['nn0whk6nzv4', 'Yulia Chinato'],
|
|
['8JIIoSFtEbo', 'Massimo Virgilio'],
|
|
['44eKcVXzFoc', 'Alonso Romero'],
|
|
['JpbtAb-f3JA', 'Dollar Gill'],
|
|
['Hvrm3efPYIA', 'Delaney Van'],
|
|
['4E0dknSrQVU', 'Matteo Maretto'],
|
|
['krNP2ESq-54', 'Joshua Bedford'],
|
|
['DPNrBT1WCMs', 'Egor Lyfar'],
|
|
['Yy-dHQP-Ax0', 'Markus Spiske'],
|
|
['BKSntHf8oiU', 'Melissa Walker Horn'],
|
|
['asaGSZEyltQ', 'Noora AlHammadi'],
|
|
['U3hCd1S7FQ4', 'Louis Hansel @shotsoflouis'],
|
|
['VOpJTnP6S9g', 'Liana Mikah'],
|
|
['9TWavGempJc', 'Ashleigh Robertson'],
|
|
['I2tgHl69Dco', 'Louis Hansel @shotsoflouis'],
|
|
['fyQr1T3GE34', 'Petr Sevcovic'],
|
|
['pGe5mc4Eip8', 'Daniel Park'],
|
|
['gZsgKrNc8es', 'Dan Gold'],
|
|
],
|
|
landscapes: [
|
|
['FuaNmJPLAHg', 'MINSUN KIM'],
|
|
['8flZ753v87Q', 'Ken Schlabach'],
|
|
['6qdO_nFhYoI', 'Clay Banks'],
|
|
['357TZAnR11o', 'Anton Lammert'],
|
|
['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'],
|
|
],
|
|
wildlife: [
|
|
['Tot7FLHWotI', 'elCarito'],
|
|
['-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'],
|
|
],
|
|
technology: [
|
|
['QpTCSHzhWuo', 'Joshua Hoehne'],
|
|
['0lMpQaXfOCg', 'Barrett Ward'],
|
|
['C3V88BOoRoM', 'Bench Accounting'],
|
|
['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'],
|
|
['lxH4ZeXXKMI', 'Hanson Lu'],
|
|
['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) => ({
|
|
path: `sfw/${category}/${photo}.jpeg`,
|
|
thumbnail: `sfw/${category}/thumbs/${photo}.jpeg`,
|
|
mime: 'image/jpeg',
|
|
sfw_media_id: null,
|
|
group: category,
|
|
index,
|
|
copyright,
|
|
comment: `Courtesy of ${copyright}`,
|
|
})))
|
|
.flat();
|
|
|
|
/* eslint-disable max-len */
|
|
exports.seed = knex => Promise.resolve()
|
|
.then(async () => {
|
|
const { inserted } = await upsert('media', sfw, 'path');
|
|
const sfwMediaIds = inserted.map(mediaEntry => ({ 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(({
|
|
path, thumbnail, mime, index, comment,
|
|
}) => ({
|
|
path, thumbnail, 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),
|
|
]);
|
|
});
|