265 lines
12 KiB
JavaScript
265 lines
12 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', 2, 'Sheena Shaw for Bang Bros'],
|
|
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary" for Tushy'],
|
|
['asian', 'poster', 'Vina Sky in "Young and Glamorous 10" 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'],
|
|
['blowbang', 'poster'],
|
|
['blowjob', 0, 'Adriana Chechik in "The Dinner Party" for Real Wife Stories (Brazzers)'],
|
|
['bukkake', 'poster'],
|
|
['caucasian', 1, 'Sheena Shaw for Brazzers'],
|
|
['creampie', 'poster'],
|
|
['da-tp', 0, 'Natasha Teen in LegalPorno SZ2164'],
|
|
['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun" for Throated'],
|
|
['double-anal', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX'],
|
|
['double-penetration', 'poster', 'Mia Malkova in "DP Me Vol. 8" for HardX'],
|
|
['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, 'Sarah Banks for Brazzers'],
|
|
['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'],
|
|
['mff', 0, 'Madison Ivy and Adriana Chechik in "Day With A Pornstar" for Brazzers'],
|
|
['mfm', 1, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'],
|
|
['oral-creampie', 1, 'Keisha Grey in Brazzers House'],
|
|
['orgy', 'poster'],
|
|
['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)'],
|
|
['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],
|
|
['caucasian', 'poster'],
|
|
['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', 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', 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'],
|
|
['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', 'poster', 'Vina Sky for Jules Jordan'],
|
|
['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'],
|
|
],
|
|
})
|
|
.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),
|
|
]);
|
|
});
|