Added logos to tag photos.

This commit is contained in:
DebaucheryLibrarian 2021-03-07 04:05:25 +01:00
parent 7522404abb
commit 3389dddd08
14 changed files with 516 additions and 367 deletions

View File

@ -32,6 +32,8 @@
class="item image"
>
<Logo :photo="item" />
<span
v-if="comments && item.title"
class="item-comment"
@ -44,6 +46,8 @@
</template>
<script>
import Logo from './logo.vue';
function albumItems() {
return this.items
.filter(Boolean)
@ -54,6 +58,9 @@ function albumItems() {
}
export default {
components: {
Logo,
},
props: {
items: {
type: Array,
@ -156,8 +163,14 @@ export default {
margin: 0 0 .5rem 0;
overflow: hidden;
&:hover .item-comment {
transform: translateY(0);
&:hover {
.item-comment {
transform: translateY(0);
}
.album-logo {
opacity: 0;
}
}
}

View File

@ -0,0 +1,58 @@
<template>
<router-link
v-if="photo.entity"
:to="`/${photo.entity.type}/${photo.entity.slug}`"
>
<img
v-if="favicon && photo.entity.type !== 'network' && !photo.entity.independent && photo.entity.parent"
:src="`/img/logos/${photo.entity.parent.slug}/favicon.png`"
class="album-logo"
>
<img
v-else-if="favicon"
:src="`/img/logos/${photo.entity.slug}/favicon.png`"
class="album-logo"
>
<img
v-else-if="photo.entity.type !== 'network' && !photo.entity.independent && photo.entity.parent"
:src="`/img/logos/${photo.entity.parent.slug}/${photo.entity.slug}.png`"
class="album-logo"
>
<img
v-else
:src="`/img/logos/${photo.entity.slug}/network.png`"
class="album-logo"
>
</router-link>
</template>
<script>
module.exports = {
props: {
photo: {
type: Object,
default: null,
},
favicon: {
type: Boolean,
default: false,
},
},
};
</script>
<style lang="scss" scoped>
.album-logo {
max-height: .75rem;
max-width: 5rem;
position: absolute;
right: 0;
bottom: 0;
padding: .5rem;
transition: transform .25s ease, opacity .25s ease;
filter: drop-shadow(0 0 2px var(--shadow-weak));
}
</style>

View File

@ -17,6 +17,8 @@
@load="$emit('load', $event)"
>
<Logo :photo="poster" />
<span
v-if="poster.comment"
class="photo-comment"
@ -40,6 +42,8 @@
@load="$emit('load', $event)"
>
<Logo :photo="photo" />
<span
v-if="photo.comment"
class="photo-comment"
@ -49,6 +53,8 @@
</template>
<script>
import Logo from '../album/logo.vue';
function poster() {
if (this.$store.state.ui.sfw) {
return this.tag.poster.sfw;
@ -66,6 +72,9 @@ function photos() {
}
export default {
components: {
Logo,
},
props: {
tag: {
type: Object,
@ -120,8 +129,14 @@ export default {
margin: 0 1rem 0 0;
}
&:hover .photo-comment {
transform: translateY(0);
&:hover {
.photo-comment {
transform: translateY(0);
}
.album-logo {
opacity: 0;
}
}
}

View File

@ -63,7 +63,6 @@
</template>
<script>
/* eslint-disable no-v-html */
import { Converter } from 'showdown';
import escapeHtml from '../../../src/utils/escape-html';

View File

@ -45,6 +45,11 @@
loading="lazy"
class="poster"
>
<Logo
:photo="tag.poster"
favicon
/>
</router-link>
<router-link
@ -61,11 +66,16 @@
</template>
<script>
import Logo from '../album/logo.vue';
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
components: {
Logo,
},
props: {
tag: {
type: Object,
@ -93,11 +103,11 @@ export default {
&:hover {
.poster {
box-shadow: 0 0 3px var(--darken);
box-shadow: 0 0 2px var(--darken);
}
.title {
background: var(--primary);
color: var(--primary);
}
}
}
@ -111,14 +121,17 @@ export default {
box-shadow: 0 0 3px var(--darken-weak);
}
.poster-link {
position: relative;
}
.title {
display: block;
box-sizing: border-box;
padding: .5rem 1rem;
padding: .5rem;
overflow: hidden;
white-space: nowrap;
color: var(--text-light);
background: var(--profile);
color: var(--shadow-strong);
text-decoration: none;
font-size: .9rem;
font-weight: bold;

View File

@ -40,6 +40,20 @@ function initTagsActions(store, _router) {
lazy
path
comment
entity {
id
name
slug
type
independent
parent {
id
name
slug
type
independent
}
}
sfw: sfwMedia {
id
thumbnail
@ -56,6 +70,20 @@ function initTagsActions(store, _router) {
lazy
path
comment
entity {
id
name
slug
type
independent
parent {
id
name
slug
type
independent
}
}
sfw: sfwMedia {
id
thumbnail
@ -132,6 +160,20 @@ function initTagsActions(store, _router) {
thumbnail
comment
lazy
entity {
id
name
slug
type
independent
parent {
id
name
slug
type
independent
}
}
sfw: sfwMedia {
thumbnail
comment

View File

@ -18,6 +18,59 @@ exports.up = knex => Promise.resolve()
table.integer('priority', 2)
.defaultTo(0);
}))
.then(() => knex.schema.createTable('entities_types', (table) => {
table.text('type')
.primary();
}))
.then(() => { // eslint-disable-line arrow-body-style
// allow vim fold
return knex('entities_types').insert([
{ type: 'network' },
{ type: 'channel' },
{ type: 'studio' },
{ type: 'info' },
]);
})
.then(() => knex.schema.createTable('entities', (table) => {
table.increments('id', 12);
table.integer('parent_id', 12)
.references('id')
.inTable('entities')
.index();
table.text('name');
table.text('slug', 32);
table.text('type')
.notNullable()
.references('type')
.inTable('entities_types')
.defaultTo('channel');
table.unique(['slug', 'type']);
table.specificType('alias', 'text[]');
table.text('url');
table.text('description');
table.json('parameters');
table.integer('priority', 3)
.defaultTo(0);
table.boolean('independent')
.defaultTo(false);
table.boolean('visible')
.defaultTo(true);
table.boolean('has_logo')
.defaultTo(true);
table.datetime('created_at')
.defaultTo(knex.fn.now());
}))
.then(() => knex.schema.createTable('media', (table) => {
table.text('id', 21)
.primary();
@ -41,11 +94,15 @@ exports.up = knex => Promise.resolve()
table.float('entropy');
table.float('sharpness');
table.text('source', 2100);
table.text('source_page', 2100);
table.text('scraper', 32);
table.text('credit', 100);
table.text('source', 2100);
table.text('source_page', 2100);
table.integer('entity_id')
.references('id')
.inTable('entities');
table.text('comment');
table.text('group');
@ -143,59 +200,6 @@ exports.up = knex => Promise.resolve()
table.unique(['tag_id', 'media_id']);
}))
.then(() => knex.schema.createTable('entities_types', (table) => {
table.text('type')
.primary();
}))
.then(() => { // eslint-disable-line arrow-body-style
// allow vim fold
return knex('entities_types').insert([
{ type: 'network' },
{ type: 'channel' },
{ type: 'studio' },
{ type: 'info' },
]);
})
.then(() => knex.schema.createTable('entities', (table) => {
table.increments('id', 12);
table.integer('parent_id', 12)
.references('id')
.inTable('entities')
.index();
table.text('name');
table.text('slug', 32);
table.text('type')
.notNullable()
.references('type')
.inTable('entities_types')
.defaultTo('channel');
table.unique(['slug', 'type']);
table.specificType('alias', 'text[]');
table.text('url');
table.text('description');
table.json('parameters');
table.integer('priority', 3)
.defaultTo(0);
table.boolean('independent')
.defaultTo(false);
table.boolean('visible')
.defaultTo(true);
table.boolean('has_logo')
.defaultTo(true);
table.datetime('created_at')
.defaultTo(knex.fn.now());
}))
.then(() => knex.schema.createTable('entities_tags', (table) => {
table.integer('tag_id', 12)
.notNullable()

BIN
public/img/tags/swallowing/0.jpeg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -587,89 +587,89 @@ const sfw = Object.entries({
const tagPosters = [
['69', 1, 'Melody Petite for 21Sextury'],
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel'],
['anal', 5, 'Abella Danger for HardX'],
['anal-fingering', 0, 'Marry Queen in "Queen of Assholes" for Asshole Fever'],
['anal-creampie', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
['anal-fisting', 1, 'Jane Wilde fisting Alexis Tae in "Jane Wilde is AGAPE" for Evil Angel'],
['ass-eating', 2, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties" for Lez Cuties'],
['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', '3b', 'Brenna Sparks for Bang! Confessions'],
['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', 1, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam'],
['brunette', 0, 'Darcie Dolce for Playboy'],
['bondage', 0, 'Veronica Leal for Her Limit'],
['bukkake', 0, 'Jaye Summers in "Facialized 5" for HardX'],
['white', 2, 'Kenzie Reeves for Bang'],
['creampie', 1, 'Eveline Dellai for Nubiles'],
['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'],
['cum-on-pussy', 0, 'Talinka A for Sex Art'],
['da-tp', 7, 'Polly Petrova in LegalPorno YE069'],
['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', 3, 'Kelly and Leona in "Sleeping Over" for Lez Cuties'],
['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" for Jules Jordan'],
['double-dildo-dp', 2, 'Jenna Ivory and Layla Price in "A First Time For Everything" for Brazzers'],
['double-dildo-kiss', 0, 'Giselle Palmer and Romi Rain in "Punishable Behavior" for Brazzers'],
['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'],
['black', 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', 7, 'Charley Atwell for iCandiGirls'],
['fake-butt', '0a', 'Aletta Ocean in "Jerk Off Instructions" for Aletta Ocean Live'],
['fake-cum', 2, 'Mimi Allen for Fucked Up Facials'],
['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'],
['fingering', 1, 'Marry Queen for Babespotting.tv'],
['fisting-dp', 0, 'Janice Griffith and Veronica Avluv in "The Nymphomaniac\'s Apprentice for The Upper Floor'],
['fisting', '1a', 'Aletta Ocean in "Solo Fisting" for 21Sextury'],
['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', 1, 'Caprice and Valerie in "Sexual Attraction" for Hegre'],
['latex', 0, 'Bianca Beauchamp in "Cherry Nun" for Latex Lair'],
['latina', 3, 'Gina Valentina for Brazzers'],
['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'],
['nun', 0, 'Lady Zee in LegalPorno NF053'],
['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', 5, 'Claudia Macc and Victoria Pure for Euro Girls On Girls'],
['redhead', 1, 'Lacy Lennon for Wicked'],
['squirting', 0, 'Veronica Rodriguez in "Hot Latina Squirting" for Jules Jordan'],
['schoolgirl', 2, 'Cindy Shine in "Schoolgirl Stars in Interracial DP Threesome" for Private'],
['swallowing', 'poster'],
['tattoos', 0, 'Tigerlilly in "Wrapped In Blue" for Suicide Girls'],
['teen', 0, 'Alexa Flexy for Sensual Girl'],
['titty-fucking', 2, 'Layla London in "Touch Me" for Big Naturals'],
['toys', 1, 'Chloe Lamour in "Curives In All The Right Places" for Wet and Puffy'],
['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', 4, 'Francys Belle in GIO1103 for LegalPorno'],
['vr', 0, 'Michelle H for MetArt'],
['airtight', 2, 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel', 'archangel'],
['anal', 5, 'Abella Danger for HardX', 'hardx'],
['anal-fingering', 0, 'Marry Queen in "Queen of Assholes" for Asshole Fever', 'assholefever'],
['anal-creampie', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX', 'darkx'],
['anal-fisting', 1, 'Jane Wilde fisting Alexis Tae in "Jane Wilde is AGAPE" for Evil Angel', 'evilangel'],
['ass-eating', 2, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties" for Lez Cuties', 'lezcuties'],
['asian', 0, 'Vina Sky for Erotica X', 'eroticax', 'eroticax'],
['atm', 2, 'Jureka Del Mar in "Stretched Out" for Her Limit', 'herlimit'],
['atogm', 0, 'Alysa Gap and Logan in "Anal Buffet 4" for Evil Angel', 'evilangel'],
['bdsm', 0, 'Dani Daniels in "The Traning of Dani Daniels, Day 2" for The Training of O at Kink', 'thetrainingofo'],
['bts', '3b', 'Brenna Sparks for Bang! Confessions', 'bangconfessions'],
['blindfold', 0, 'Kylie Page in "Natural Blindfolded Beauties" for Hustler', 'hustler'],
['blonde', 1, 'Marsha May in "Once You Go Black 7" for Jules Jordan', 'julesjordan'],
['blowbang', 0, 'Lacy Lennon in "Lacy Lennon\'s First Blowbang" for HardX', 'hardx'],
['blowjob', 1, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam', 'spyfam'],
['brunette', 0, 'Darcie Dolce for Playboy', 'playboy'],
['bondage', 0, 'Veronica Leal for Her Limit', 'herlimit'],
['bukkake', 0, 'Jaye Summers in "Facialized 5" for HardX', 'hardx'],
['white', 2, 'Kenzie Reeves for Bang', 'bang'],
['creampie', 1, 'Eveline Dellai for Nubiles', 'nubiles'],
['cum-in-mouth', 1, 'Sarah Vandella in "Blow Bang Vandella" for HardX', 'hardx'],
['cum-on-butt', 0, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel', 'evilangel'],
['cum-on-boobs', 1, 'Kylie Page in "Melt In Your Mouth" for Twistys Hard', 'twistyshard'],
['cum-on-pussy', 0, 'Talinka A for Sex Art', 'sexart'],
['da-tp', 7, 'Polly Petrova in YE069 for LegalPorno', 'legalporno'],
['deepthroat', 2, 'Sarah Vandella for Throated', 'throated'],
['dap', 7, 'Adriana Chechik in "DP Masters 6" for Jules Jordan', 'julesjordan'],
['double-blowjob', 1, 'Veronica Rodriguez and Penny Pax in "Fucking Older Guys 5" for Penthouse', 'penthouse'],
['double-dildo', 3, 'Kelly and Leona in "Sleeping Over" for Lez Cuties', 'lezcuties'],
['double-dildo-anal', 0, 'Vina Sky and Kenzie Reeves in "Vina Sky\'s 1st Lesbian Anal" for HardX', 'hardx'],
['double-dildo-blowjob', 0, 'Adriana Chechik and Vicki Chase in "Anal Savages" for Jules Jordan', 'julesjordan'],
['double-dildo-dp', 2, 'Jenna Ivory and Layla Price in "A First Time For Everything" for Brazzers', 'brazzers'],
['double-dildo-kiss', 0, 'Giselle Palmer and Romi Rain in "Punishable Behavior" for Brazzers', 'brazzers'],
['dp', 3, 'Hime Marie in AA047 for LegalPorno', 'legalporno'],
['dvp', 'poster', 'Riley Reid in "Pizza That Ass" for Reid My Lips', 'reidmylips'],
['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5" for Elegant Angel', 'elegantangel'],
['black', 2, 'Nia Nacci for Sweetheart Video', 'sweetheartvideo'],
['facefucking', 5, 'Mia Moore B for Throated', 'throated'],
['facial', 0, 'Brooklyn Gray in "All About Ass 4" for Evil Angel', 'evilangel'],
['fake-boobs', 7, 'Charley Atwell for iCandiGirls', 'icandigirls'],
['fake-butt', '0a', 'Aletta Ocean in "Jerk Off Instructions" for Aletta Ocean Live', 'alettaoceanlive'],
['fake-cum', 2, 'Mimi Allen for Fucked Up Facials', 'fuckedupfacials'],
['family', 0, 'Teanna Trump in "A Family Appear: Part One" for Brazzers', 'brazzers'],
['femdom', 0, 'Alina Li in "Asian Domination… She Holds Jules Jordan\'s Cock Hostage!" for Jules Jordan', 'julesjordan'],
['fingering', 1, 'Marry Queen for Babespotting.tv', 'babespottingtv'],
['fisting-dp', 0, 'Janice Griffith and Veronica Avluv in "The Nymphomaniac\'s Apprentice for The Upper Floor', 'theupperfloor'],
['fisting', '1a', 'Aletta Ocean in "Solo Fisting" for 21Sextury', '21sextury'],
['gangbang', 5, 'Carter Cruise\'s first gangbang in "Slut Puppies 9" for Jules Jordan', 'julesjordan'],
['gaping', 1, 'Vina Sky in "Vina Sky Does Anal" for HardX', 'hardx'],
['indian', 0, 'Resha in "Casting Resha" for Watch 4 Beauty', 'watch4beauty'],
['interracial', 1, 'Caprice and Valerie in "Sexual Attraction" for Hegre', 'hegre'],
['latex', 0, 'Bianca Beauchamp in "Cherry Nun" for Latex Lair', 'latexlair'],
['latina', 3, 'Gina Valentina for Brazzers', 'brazzers'],
['lesbian', 0, 'Jenna Sativa and Alina Lopez in "Opposites Attract" for Girl Girl', 'girlgirl'],
['maid', 0, 'Whitney Wright in "Dredd Up Your Ass 2" for Jules Jordan', 'julesjordan'],
['milf', 1, 'Francesca Le for Evil Angel', 'evilangel'],
['mff', 1, 'Anikka Albrite, Kelsi Monroe and Mick Blue for HardX', 'hardx'],
['mfm', 0, 'Vina Sky in "Jules Jordan\'s Three Ways" for Jules Jordan', 'julesjordan'],
['natural-boobs', 1, 'Nia Nacci for First Class POV', 'firstclasspov'],
['nurse', 0, 'Sarah Vandella in "Cum For Nurse Sarah" for Brazzers', 'brazzers'],
['nun', 0, 'Lady Zee in NF053 for LegalPorno', 'legalporno'],
['oil', 2, 'Jade Kush for Passion HD', 'passionhd'],
['oral-creampie', 1, 'Valentina Nappi for Her Limit', 'herlimit'],
['orgy', 1, 'Megan Rain (DP), Morgan Lee (anal), Jessa Rhodes, Melissa Moore and Kimmy Granger in "Orgy Masters 8" for Jules Jordan', 'julesjordan'],
['parody', 0, 'Capri Cavanni and Dani Daniels in "The Whore of Wall Street" for Brazzers', 'brazzers'],
['piercings', 0, 'Kaegune in "When The Sun Goes Down" for Suicide Girls', 'suicidegirls'],
['piss-drinking', 0, 'Scarlet Domingo in GL227 for LegalPorno', 'legalporno'],
['pussy-eating', 5, 'Claudia Macc and Victoria Pure for Euro Girls On Girls', 'girlsongirls'],
['redhead', 1, 'Lacy Lennon for Wicked', 'wicked'],
['squirting', 0, 'Veronica Rodriguez in "Hot Latina Squirting" for Jules Jordan', 'julesjordan'],
['schoolgirl', 2, 'Cindy Shine in "Schoolgirl Stars in Interracial DP Threesome" for Private', 'private'],
['swallowing', 0, 'Kira Thorn in GIO1023 for LegalPorno', 'legalporno'],
['tattoos', 0, 'Tigerlilly in "Wrapped In Blue" for Suicide Girls', 'suicidegirls'],
['teen', 0, 'Alexa Flexy for Sensual Girl', 'sensualgirl'],
['titty-fucking', 2, 'Layla London in "Touch Me" for Big Naturals', 'bignaturals'],
['toys', 1, 'Chloe Lamour in "Curives In All The Right Places" for Wet and Puffy', 'wetandpuffy'],
['toy-anal', 1, 'Nina North and Cassidy Klein in "Nina\'s First Lesbian Anal" for LesbianX', 'lesbianx'],
['toy-dp', 1, 'Krissy Lynn and London River in "Lesbian DP Workout" for LesbianX', 'lesbianx'],
['trainbang', 'poster', 'Kali Roses in "Passing Me Around" for Blacked', 'blacked'],
['tap', 4, 'Francys Belle in GIO1103 for LegalPorno', 'legalporno'],
['vr', 0, 'Michelle H for MetArt', 'metart'],
]
.map(([slug, fileIndex, comment], index) => ({
.map(([slug, fileIndex, comment, entitySlug], index) => ({
id: `${slug}-${fileIndex}`,
tagSlug: slug,
path: `tags/${slug}/${fileIndex}.jpeg`,
@ -678,246 +678,237 @@ const tagPosters = [
mime: 'image/jpeg',
index,
comment,
entitySlug,
}));
const tagPhotos = [
['69', 3, 'Anne Amari and Alina Lopez in "Hot Lesbian Seduction" for LesbianX'],
['69', 0, 'Abby Lee Brazil and Ramon Nomar for Wicked'],
['69', 4, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['69', 2, 'Abigail Mac and Kissa Sins in "Lesbian Anal Workout" for HardX'],
['airtight', 7, 'Lana Rhoades in "Gangbang Me 3" for HardX'],
['airtight', 6, 'Remy Lacroix in "Ass Worship 14" for Jules Jordan'],
['airtight', 11, 'Malena Nazionale in "Rocco\'s Perverted Secretaries 2: Italian Edition" for Rocco Siffredi'],
['airtight', 1, 'Jynx Maze in "Pump My Ass Full of Cum 3" for Jules Jordan'],
['airtight', 10, 'Asa Akira in "Asa Akira To The Limit" for Jules Jordan'],
['69', 3, 'Anne Amari and Alina Lopez in "Hot Lesbian Seduction" for LesbianX', 'lesbianx'],
['69', 0, 'Abby Lee Brazil and Ramon Nomar for Wicked', 'wicked'],
['69', 4, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['69', 2, 'Abigail Mac and Kissa Sins in "Lesbian Anal Workout" for HardX', 'hardx'],
['airtight', 7, 'Lana Rhoades in "Gangbang Me 3" for HardX', 'hardx'],
['airtight', 6, 'Remy Lacroix in "Ass Worship 14" for Jules Jordan', 'julesjordan'],
['airtight', 11, 'Malena Nazionale in "Rocco\'s Perverted Secretaries 2: Italian Edition" for Rocco Siffredi', 'roccosiffredi'],
['airtight', 1, 'Jynx Maze in "Pump My Ass Full of Cum 3" for Jules Jordan', 'julesjordan'],
['airtight', 10, 'Asa Akira in "Asa Akira To The Limit" for Jules Jordan', 'julesjordan'],
['airtight', 8, 'Veronica Leal in LegalPorno SZ2520'],
['airtight', 3, 'Anita Bellini in "Triple Dick Gangbang" for Hands On Hardcore (DDF Network)'],
['airtight', 5, 'Chloe Amour in "DP Masters 4" for Jules Jordan'],
['airtight', 3, 'Anita Bellini in "Triple Dick Gangbang" for Hands On Hardcore (DDF Network)', 'handsonhardcore'],
['airtight', 5, 'Chloe Amour in "DP Masters 4" for Jules Jordan', 'julesjordan'],
['airtight', 9, 'Cindy Shine in LegalPorno GP1658'],
['atm', 3, 'Natasha Teen in "Work That Ass!" for Her Limit'],
['atm', 7, 'Mandy Muse in "Mandy\'s Anal Amusement" for Big Wett Butts'],
['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', 7, 'Anastasia Brokelyn for Bang Bros'],
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3" for Jules Jordan'],
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
['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'],
['anal-creampie', 2, 'Lana Rhoades in "Lana\'s Anal Workout" for HardX'],
['anal-creampie', 3, 'Rose Valerie for Euro Sex Parties'],
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary" for Tushy'],
['anal-creampie', 1, 'Aleska Diamond in "Aleska Wants More" for Asshole Fever'],
['ass-eating', 5, 'Remy LaCroix and Abigail Mac for All Girl Massage'],
['ass-eating', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!" for DarkX'],
['ass-eating', 3, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['ass-eating', 1, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga" for LesbianX'],
['ass-eating', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches" for Asshole Fever'],
['anal-fingering', 3, 'Rose Valerie for DDF Network'],
['anal-fingering', 1, 'Cherry Kiss, Veronica Leal and Sybil in "Capture This" for Lez Cuties'],
['anal-fingering', 2, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga" for LesbianX'],
['bts', 0, 'Janice Griffith in "Day With A Pornstar: Janice" for Brazzers'],
['bts', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers'],
['bts', 2, 'Christy Mack for Digital Playground'],
['atm', 3, 'Natasha Teen in "Work That Ass!" for Her Limit', 'herlimit'],
['atm', 7, 'Mandy Muse in "Mandy\'s Anal Amusement" for Big Wett Butts', 'bigwettbutts'],
['atm', 0, 'Roxy Lips in "Under Her Coat" for 21 Naturals', '21naturals'],
['atm', 6, 'Jane Wilde in "Teen Anal" for Evil Angel', 'evilangel'],
['anal', 7, 'Anastasia Brokelyn for Bang Bros', 'bangbros'],
['anal', 0, 'Adriana Chechik in "Manuel Creampies Their Asses 3" for Jules Jordan', 'julesjordan'],
['anal', 6, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX', 'darkx'],
['anal', 4, 'Lana Roy in "Anal In The Club" for 21Naturals', '21naturals'],
['anal', 3, 'Dakota Skye for Brazzers', 'brazzers'],
['anal-creampie', 2, 'Lana Rhoades in "Lana\'s Anal Workout" for HardX', 'hardx'],
['anal-creampie', 3, 'Rose Valerie for Euro Sex Parties', 'eurosexparties'],
['anal-creampie', 0, 'Gina Valentina and Jane Wilde in "A Very Special Anniversary" for Tushy', 'tushy'],
['anal-creampie', 1, 'Aleska Diamond in "Aleska Wants More" for Asshole Fever', 'assholefever'],
['ass-eating', 5, 'Remy LaCroix and Abigail Mac for All Girl Massage', 'allgirlmassage'],
['ass-eating', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!" for DarkX', 'darkx'],
['ass-eating', 3, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['ass-eating', 1, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga" for LesbianX', 'lesbianx'],
['ass-eating', 0, 'Angelica Heart and Leanna Sweet in "ATM Bitches" for Asshole Fever', 'assholefever'],
['anal-fingering', 3, 'Rose Valerie for DDF Network', 'pornworld'],
['anal-fingering', 1, 'Cherry Kiss, Veronica Leal and Sybil in "Capture This" for Lez Cuties', 'lezcuties'],
['anal-fingering', 2, 'Aidra Fox and Cassidy Klein in "Lesbian Anal Yoga" for LesbianX', 'lesbianx'],
['bts', 0, 'Janice Griffith in "Day With A Pornstar: Janice" for Brazzers', 'brazzers'],
['bts', 1, 'Madison Ivy in "Day With A Pornstar" for Brazzers', 'brazzers'],
['bts', 2, 'Christy Mack for Digital Playground', 'digitalplayground'],
['blonde', 4, 'Marry Queen for Babespotting.tv'],
['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'],
['blowbang', 1, 'Nicole Black in GIO1680 for LegalPorno'],
['blowjob', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX'],
['blonde', 3, 'Kylie Page in "A Juicy Afternoon Delight" for New Sensations', 'newsensations'],
['blonde', 2, 'Isabelle Deltore for Her Limit', 'herlimit'],
['blowbang', 'poster', 'Marsha May in "Feeding Frenzy 12" for Jules Jordan', 'julesjordan'],
['blowbang', 1, 'Nicole Black in GIO1680 for LegalPorno', 'legalporno'],
['blowjob', 4, 'Chloe Cherry in "Chloe\'s Big Anal" for DarkX', 'darkx'],
['blowjob', 0, 'Adriana Chechik in "The Dinner Party" for Real Wife Stories (Brazzers)'],
['blowjob', 3, 'Rose Valie for Hands On Hardcore'],
['blowjob', 2, 'Luna Kitsuen in "Gag Reflex" for Evil Angel'],
// ['bukkake', 'poster', 'Mia Malkova in "Facialized 2" for HardX'],
['white', 0, 'Remy Lacroix for HardX'],
['white', 1, 'Sheena Shaw for Brazzers'],
['creampie', 3, 'Silvia Soprina in "Satisfaction" for 5K Teens'],
['creampie', 2, 'Natasha Lapiedra in "New and Ready" for 5K Porn'],
['creampie', 'poster', 'Alina Lopez in "Making Yourself Unforgettable" for Blacked'],
['cum-drunk', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot'],
['cum-in-mouth', 3, 'Kira Noir for HardX'],
['cum-in-mouth', 5, 'Emma Hix in "A Big Dick For Emma Hix" for DarkX'],
['cum-in-mouth', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!" for DarkX'],
['cum-in-mouth', 2, 'Jaye Summers in "Double The Cum" for HardX'],
['cum-in-mouth', 0, 'Vina Sky and Avi Love for HardX'],
['cum-on-boobs', 0, 'Alessandra Jane for Private'],
['cum-on-boobs', 2, 'Blake Blossom in "Naturally Stacked Cutie" for HardX'],
['blowjob', 3, 'Rose Valie for Hands On Hardcore', 'handsonhardcore'],
['blowjob', 2, 'Luna Kitsuen in "Gag Reflex" for Evil Angel', 'evilangel'],
['white', 0, 'Remy Lacroix for HardX', 'hardx'],
['white', 1, 'Sheena Shaw for Brazzers', 'brazzers'],
['creampie', 3, 'Silvia Soprina in "Satisfaction" for 5K Teens', '5kteens'],
['creampie', 2, 'Natasha Lapiedra in "New and Ready" for 5K Porn', '5kporn'],
['creampie', 'poster', 'Alina Lopez in "Making Yourself Unforgettable" for Blacked', 'blacked'],
['cum-drunk', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot', 'hookuphotshot'],
['cum-in-mouth', 3, 'Kira Noir for HardX', 'hardx'],
['cum-in-mouth', 5, 'Emma Hix in "A Big Dick For Emma Hix" for DarkX', 'darkx'],
['cum-in-mouth', 4, 'Vanna Bardot and Isiah Maxwell in "Vanna Craves Isiah\'s Cock!" for DarkX', 'darkx'],
['cum-in-mouth', 2, 'Jaye Summers in "Double The Cum" for HardX', 'hardx'],
['cum-in-mouth', 0, 'Vina Sky and Avi Love for HardX', 'hardx'],
['cum-on-boobs', 0, 'Alessandra Jane for Private', 'private'],
['cum-on-boobs', 2, 'Blake Blossom in "Naturally Stacked Cutie" for HardX', 'hardx'],
['da-tp', 5, 'Venera Maxima in LegalPorno GIO1287'],
['da-tp', 6, 'Adriana Chechik in "Gangbang Me" for HardX'],
['da-tp', 6, 'Adriana Chechik in "Gangbang Me" for HardX', 'hardx'],
['da-tp', 0, 'Natasha Teen in LegalPorno SZ2164'],
['da-tp', 1, 'Francys Belle in SZ1702 for LegalPorno'],
['dap', 10, 'Kira Noir for HardX'],
['dap', 9, 'Vicky Sol in GIO1547 for LegalPorno'],
['dap', 6, 'Sheena Shaw in "Ass Worship 14" for Jules Jordan'],
['dap', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX'],
['dap', 11, 'Haley Reed in "Young Hot Ass" for Evil Angel'],
['dap', 1, 'Ria Sunn in SZ1801 for LegalPorno'],
['dap', 5, 'Riley Reid in "The Gangbang of Riley Reid" for Jules Jordan'],
// ['dap', 8, 'Lady Gang in SZ2478 LegalPorno'],
['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971 for LegalPorno'],
['deepthroat', 3, 'Kira Noir in "Ebony Throat Vs Monster Cock" for Throated'],
['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', 1, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3" for Digital Playground'],
['double-dildo', 9, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long" for DDF Network'],
['double-dildo', 2, 'Jasmine Webb and Aria Alexander in "Homeless Horny" for Digital Playground'],
['double-dildo', 7, 'Gina Gerson and Anastasia Brokelyn in "One Double Sided Dildo, Two Cuties" for DDF Network'],
['da-tp', 1, 'Francys Belle in SZ1702 for LegalPorno', 'legalporno'],
['dap', 10, 'Kira Noir for HardX', 'hardx'],
['dap', 9, 'Vicky Sol in GIO1547 for LegalPorno', 'legalporno'],
['dap', 6, 'Sheena Shaw in "Ass Worship 14" for Jules Jordan', 'julesjordan'],
['dap', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX', 'hardx'],
['dap', 11, 'Haley Reed in "Young Hot Ass" for Evil Angel', 'evilangel'],
['dap', 1, 'Ria Sunn in SZ1801 for LegalPorno', 'legalporno'],
['dap', 5, 'Riley Reid in "The Gangbang of Riley Reid" for Jules Jordan', 'julesjordan'],
['dap', 0, 'Nicole Black doing double anal during a gangbang in GIO971 for LegalPorno', 'legalporno'],
['deepthroat', 3, 'Kira Noir in "Ebony Throat Vs Monster Cock" for Throated', 'throated'],
['deepthroat', 1, 'Jynx Maze in "Slutty and Sluttier 13" for Evil Angel', 'evilangel'],
['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun" for Throated', 'throated'],
['double-blowjob', 0, 'Kira Noir and Kali Roses for Brazzers', 'brazzers'],
['double-dildo', 1, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3" for Digital Playground', 'digitalplayground'],
['double-dildo', 9, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long" for DDF Network', 'pornworld'],
['double-dildo', 2, 'Jasmine Webb and Aria Alexander in "Homeless Horny" for Digital Playground', 'digitalplayground'],
['double-dildo', 7, 'Gina Gerson and Anastasia Brokelyn in "One Double Sided Dildo, Two Cuties" for DDF Network', 'pornworld'],
['double-dildo', 0, 'Kali Roses in "Double Dildo Party" for KaliRoses.com'],
['double-dildo', 4, 'Claudia Macc and Victoria Pure for Euro Girls On Girls'],
['double-dildo', 8, 'Harmony Wonder, Katie Kush and Jewelz Blu in "Pick Your Pleasure" for Reality Kings'],
['double-dildo', 6, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['double-dildo', 5, 'Kimber Woods and Mandy Muse in "Big Oiled Asses" for Naughty America'],
['double-dildo', 4, 'Claudia Macc and Victoria Pure for Euro Girls On Girls', 'eurogirlsongirls'],
['double-dildo', 8, 'Harmony Wonder, Katie Kush and Jewelz Blu in "Pick Your Pleasure" for Reality Kings', 'realitykings'],
['double-dildo', 6, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['double-dildo', 5, 'Kimber Woods and Mandy Muse in "Big Oiled Asses" for Naughty America', 'naughtyamerica'],
['double-dildo-anal', 1, 'Sammie Rhodes and Ainsley Addision in "Tickle Me Pink" for We Live Together (Reality Kings)'],
['double-dildo-anal', 6, 'Anikka Albrite, Jenna Sativa and Tori Black in "Tori Black\'s Lesbian Gangbang" for LesbianX'],
['double-dildo-anal', 2, 'Adria Rae and Megan Rain in "Best Friends Anal" for Holed'],
['double-dildo-anal', 9, 'Veronica Leal, Cherry Kiss and Sybil in "Capture This" for Lez Cuties'],
['double-dildo-anal', 7, 'Alysa and Wildeassholeslut in "Anal Buffet 5" for Evil Angel'],
['double-dildo-anal', 8, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties" for Lez Cuties'],
['double-dildo-anal', 3, 'Amber Rayne, Phoenix Marie and Roxy Raye in "Deep Anal Abyss 4" for Evil Angel'],
['double-dildo-anal', 5, 'Jenna Sativa and Tara Morgan in "Little Black Book" for Digital Playground'],
['double-dildo-anal', 4, 'Ashley Fires, Sammie Rhodes and Kiara Diane in "Real Romance" for Reality Kings'],
['double-dildo-blowjob', 6, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3" for Digital Playground'],
['double-dildo-blowjob', 8, 'Morgan Lee and Reena Sky in "Power Play" for Brazzers'],
['double-dildo-blowjob', 11, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long" for DDF Network'],
['double-dildo-blowjob', 1, 'Aidra Fox and Reena Sky in "Reena\'s Got A Staring Problem" for Brazzers'],
['double-dildo-blowjob', 7, 'Jasmine Webb and Aria Alexander in "Homeless Horny" for Digital Playground'],
['double-dildo-blowjob', 9, 'Kimber Woods and Mandy Muse in "Big Oiled Asses" for Naughty America'],
['double-dildo-blowjob', 10, 'Kiki Daire and Brittany for Ken Marcus'],
['double-dildo-blowjob', 3, 'Angela White and Madison Ivy in "Sunbathing Babes" for Brazzers'],
['double-dildo-blowjob', 4, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight" for Brazzers'],
['double-dildo-blowjob', 5, 'Jenna Ivory and Layla Price in "A First Time For Everything" for Brazzers'],
['double-dildo-blowjob', 2, 'Giselle Palmer and Romi Rain in "Punishable Behavior" for Brazzers'],
['double-dildo-kiss', 1, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight" for Brazzers'],
['double-dildo-kiss', 3, 'Kiki Daire and Brittany for Ken Marcus'],
['double-dildo-kiss', 2, 'Adriana Chechik and Vicki Chase in "Anal Savages" for Jules Jordan'],
['double-dildo-anal', 6, 'Anikka Albrite, Jenna Sativa and Tori Black in "Tori Black\'s Lesbian Gangbang" for LesbianX', 'lesbianx'],
['double-dildo-anal', 2, 'Adria Rae and Megan Rain in "Best Friends Anal" for Holed', 'holed'],
['double-dildo-anal', 9, 'Veronica Leal, Cherry Kiss and Sybil in "Capture This" for Lez Cuties', 'lezcuties'],
['double-dildo-anal', 7, 'Alysa and Wildeassholeslut in "Anal Buffet 5" for Evil Angel', 'evilangel'],
['double-dildo-anal', 8, 'Tina Kay, Lexi Layo and Tiffany Tatum in "Ballerina Beauties" for Lez Cuties', 'lezcuties'],
['double-dildo-anal', 3, 'Amber Rayne, Phoenix Marie and Roxy Raye in "Deep Anal Abyss 4" for Evil Angel', 'evilangel'],
['double-dildo-anal', 5, 'Jenna Sativa and Tara Morgan in "Little Black Book" for Digital Playground', 'digitalplayground'],
['double-dildo-anal', 4, 'Ashley Fires, Sammie Rhodes and Kiara Diane in "Real Romance" for Reality Kings', 'realitykings'],
['double-dildo-blowjob', 6, 'Indigo Vanity and Kendall Woods in "My White Stepdad: Part 3" for Digital Playground', 'digitalplayground'],
['double-dildo-blowjob', 8, 'Morgan Lee and Reena Sky in "Power Play" for Brazzers', 'brazzers'],
['double-dildo-blowjob', 11, 'Anissa Kate and Zafira in "Lesbians Play With Double Dong All Day Long" for DDF Network', 'pornworld'],
['double-dildo-blowjob', 1, 'Aidra Fox and Reena Sky in "Reena\'s Got A Staring Problem" for Brazzers', 'brazzers'],
['double-dildo-blowjob', 7, 'Jasmine Webb and Aria Alexander in "Homeless Horny" for Digital Playground', 'digitalplayground'],
['double-dildo-blowjob', 9, 'Kimber Woods and Mandy Muse in "Big Oiled Asses" for Naughty America', 'naughtyamerica'],
['double-dildo-blowjob', 10, 'Kiki Daire and Brittany for Ken Marcus', 'kenmarcus'],
['double-dildo-blowjob', 3, 'Angela White and Madison Ivy in "Sunbathing Babes" for Brazzers', 'brazzers'],
['double-dildo-blowjob', 4, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight" for Brazzers', 'brazzers'],
['double-dildo-blowjob', 5, 'Jenna Ivory and Layla Price in "A First Time For Everything" for Brazzers', 'brazzers'],
['double-dildo-blowjob', 2, 'Giselle Palmer and Romi Rain in "Punishable Behavior" for Brazzers', 'brazzers'],
['double-dildo-kiss', 1, 'Bonnie Rotten and Gina Valentina in "Scared Un-Straight" for Brazzers', 'brazzers'],
['double-dildo-kiss', 3, 'Kiki Daire and Brittany for Ken Marcus', 'kenmarcus'],
['double-dildo-kiss', 2, 'Adriana Chechik and Vicki Chase in "Anal Savages" for Jules Jordan', 'julesjordan'],
['double-dildo-dp', 0, 'u/LacyCrow "Sometimes you have to do it yourself"'],
['double-dildo-dp', 1, 'Brooklyn Chase and Ana Foxxx for Zebra Girls'],
['dp', 7, 'Chloe Lamour in "DP Masters 7" for Jules Jordan'],
['dp', 5, 'Lana Rhoades in "Gangbang Me 3" for HardX'],
['dp', 6, 'Kira Noir for HardX'],
['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'],
['double-dildo-dp', 1, 'Brooklyn Chase and Ana Foxxx for Zebra Girls', 'zebragirls'],
['dp', 7, 'Chloe Lamour in "DP Masters 7" for Jules Jordan', 'julesjordan'],
['dp', 5, 'Lana Rhoades in "Gangbang Me 3" for HardX', 'hardx'],
['dp', 6, 'Kira Noir for HardX', 'hardx'],
['dp', 2, 'Megan Rain in "DP Masters 4" for Jules Jordan', 'julesjordan'],
['dp', 4, 'Rebecca Volpetti for Hands On Hardcore', 'handsonhardcore'],
['dp', 'poster', 'Mia Malkova in "DP Me 8" for HardX', 'hardx'],
['dvp', 0, 'Aaliyah Hadid in "Squirting From Double Penetration With Anal" for Bang Bros', 'bangbros'],
['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'],
['dv-tp', 0, 'Luna Rival in LegalPorno SZ1490'],
['black', 1, 'Ana Foxxx in "DP Me 4" for HardX'],
['facial', 3, 'Paige Owens in "Oral Restraint" for Babes'],
['black', 1, 'Ana Foxxx in "DP Me 4" for HardX', 'hardx'],
['facial', 3, 'Paige Owens in "Oral Restraint" for Babes', 'babes'],
['facial', 'poster', 'Jynx Maze'],
['facial', 2, 'Ashly Anderson for Hookup Hotshot'],
['facial', 4, 'Kendra Heart for Facials Forever'],
['facefucking', 6, 'Halle Hayes in "Towering Temptress" for 5K Porn'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12" for Evil Angel'],
['facefucking', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot'],
['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', 14, 'Rikki Six for Dream Dolls'],
['fake-boobs', 2, 'Gia Milana in "Hot Anal Latina" for HardX'],
['fake-boobs', 25, 'Zuleidy for Private'],
['fake-boobs', 17, 'Felina in "With Flowers On The Floor" for LouisDeMirabert'],
['fake-boobs', 1, 'Lela Star in "Thick" for Jules Jordan'],
['fake-boobs', 18, 'Ebony Godess for Action Girls'],
['fake-boobs', 9, 'Putri Cinta for Watch 4 Beauty'],
['fake-boobs', 3, 'Ashly Anderson for Passion HD'],
['facial', 2, 'Ashly Anderson for Hookup Hotshot', 'hookuphotshot'],
['facial', 4, 'Kendra Heart for Facials Forever', 'facialsforever'],
['facefucking', 6, 'Halle Hayes in "Towering Temptress" for 5K Porn', '5kporn'],
['facefucking', 1, 'Paige Owens in "Dark Meat 12" for Evil Angel', 'evilangel'],
['facefucking', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot', 'hookuphotshot'],
['facefucking', 2, 'Jynx Maze for Throated', 'throated'],
['facefucking', 4, 'Brooklyn Gray in "Throats Fucks 6" for Evil Angel', 'evilangel'],
['facefucking', 3, 'Adriana Chechik in "Performing Magic Butt Tricks With Jules Jordan. What Will Disappear In Her Ass?" for Jules Jordan', 'julesjordan'],
['fake-boobs', 14, 'Rikki Six for Dream Dolls', 'dreamdolls'],
['fake-boobs', 2, 'Gia Milana in "Hot Anal Latina" for HardX', 'hardx'],
['fake-boobs', 25, 'Zuleidy for Private', 'private'],
['fake-boobs', 17, 'Felina in "With Flowers On The Floor" for LouisDeMirabert', 'louisdemirabert'],
['fake-boobs', 1, 'Lela Star in "Thick" for Jules Jordan', 'julesjordan'],
['fake-boobs', 18, 'Ebony Godess for Action Girls', 'actiongirls'],
['fake-boobs', 9, 'Putri Cinta for Watch 4 Beauty', 'watch4beauty'],
['fake-boobs', 3, 'Ashly Anderson for Passion HD', 'passionhd'],
['fake-boobs', 22, 'Sakura Sena'],
['fake-boobs', 16, 'Marsha May in "Once You Go Black 7" for Jules Jordan'],
['fake-boobs', 16, 'Marsha May in "Once You Go Black 7" for Jules Jordan', 'julesjordan'],
['fake-boobs', 23, 'Lulu Sex Bomb in "Tropical Touch"'],
['fake-boobs', 21, 'Emelie Ekström'],
['fake-boobs', 10, 'Tia Cyrus in "Titty-Fucked Yoga Goddess" for Latina Sex Tapes'],
['fake-boobs', 24, 'Shalina Devine in "Rumbling in the Ring, Part 2" for DDF Network'],
['fake-boobs', 20, 'Chloe Lamour for DDF Busty'],
['fake-boobs', 11, 'Jessa Rhodes and Cali Carter in "Busty Anal Workout" for LesbianX'],
['fake-boobs', 13, 'Kitana Lure for Asshole Fever'],
['fake-boobs', 8, 'Amber Alena for Score'],
['fake-boobs', 19, 'Kerrie Lee in "Bricked" for Studio 66 TV'],
['fake-boobs', 4, 'Capri Cavanni for Big Tits in Sports'],
// ['fake-boobs', 15, 'Amber Jade and Karma Rx in "Amber In The Hills: Part 1" for Brazzers'],
// ['fake-boobs', 6, 'Cathy Heaven in "Heavenly Ass" for Big Wett Butts'],
// ['fake-boobs', 12, 'Nikki Monroe and Kortney Kane for Big Tits In Uniform'],
['fake-cum', 3, 'Alexia Anders in "Thanksgiving Creampies" for Cum 4K'],
['fake-boobs', 10, 'Tia Cyrus in "Titty-Fucked Yoga Goddess" for Latina Sex Tapes', 'latinasextapes'],
['fake-boobs', 24, 'Shalina Devine in "Rumbling in the Ring, Part 2" for DDF Network', 'pornworld'],
['fake-boobs', 20, 'Chloe Lamour for DDF Busty', 'ddfbusty'],
['fake-boobs', 11, 'Jessa Rhodes and Cali Carter in "Busty Anal Workout" for LesbianX', 'lesbianx'],
['fake-boobs', 13, 'Kitana Lure for Asshole Fever', 'assholefever'],
['fake-boobs', 8, 'Amber Alena for Score', 'score'],
['fake-boobs', 19, 'Kerrie Lee in "Bricked" for Studio 66 TV', 'studio66tv'],
['fake-boobs', 4, 'Capri Cavanni for Big Tits in Sports', 'bigtitsinsports'],
['fake-cum', 3, 'Alexia Anders in "Thanksgiving Creampies" for Cum 4K', 'cum4k'],
['fake-cum', 0, 'Jynx Maze for Cumshot Surprise (Porn Pros)'],
['fake-cum', 1, 'Ricki White for Fucked Up Facials'],
['fake-cum', 4, 'Vina Sky in "Creaming Her Pipes" for Anal 4K'],
['femdom', 1, 'Little Caprice in "Femdom" for Little Caprice Dreams'],
['fingering', 2, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells" for LesbianX'],
['fingering', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot'],
['fisting', 0, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'],
['fake-cum', 1, 'Ricki White for Fucked Up Facials', 'fuckedupfacials'],
['fake-cum', 4, 'Vina Sky in "Creaming Her Pipes" for Anal 4K', 'anal4k'],
['femdom', 1, 'Little Caprice in "Femdom" for Little Caprice Dreams', 'littlecapricedreams'],
['fingering', 2, 'Kylie Page and Hadley Viscara in "Busty Blonde Bombshells" for LesbianX', 'lesbianx'],
['fingering', 0, 'Ashly Anderson in "Rough Love" for Hookup Hotshot', 'hookuphotshot'],
['fisting', 0, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan', 'julesjordan'],
['gangbang', 7, 'Alexa Flexy in LegalPorno GL376'],
['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', 0, '"4 On 1 Gangbangs" for Doghouse Digital', 'doghousedigital'],
['gangbang', 6, 'Silvia Soprano in GIO1580 for LegalPorno', 'legalporno'],
['gangbang', 4, 'Marley Brinx in "The Gangbang of Marley Brinx" for Jules Jordan', 'julesjordan'],
['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', 4, 'Nicole Black in LegalPorno GIO1626'],
['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'],
['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3" for Jules Jordan'],
['latex', 1, 'Aletta Ocean in "Latex Dream" for Aletta Ocean Live'],
['latina', 2, 'Veronica Leal for Her Limit'],
['latina', 1, 'Jynx Maze in "Big Anal Asses 2" for HardX'],
['latina', 0, 'Vienna Black for Spizoo'],
['maid', 1, 'Alessandra Jane for Brazzers'],
['milf', 2, 'Shalina Devine for Anal Mom'],
// ['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', 8, 'Ariana Marie in "DP Masters 7" for Jules Jordan'],
['mfm', 1, 'Lana Rhoades in "Gangbang Me 3" for HardX'],
['mfm', 7, 'Rose Valerie for Euro Sex Parties'],
['mfm', 6, 'Honey Gold in "Slut Puppies 12" for Jules Jordan'],
['natural-boobs', 4, 'Miela (Marry Queen) in "Pure" for FemJoy'],
['natural-boobs', 7, 'Layla London for In The Crack'],
['natural-boobs', 3, 'Violet Starr in "Violet Starr 1st Lesbian Anal" for LesbianX'],
['natural-boobs', 0, 'Valentina Nappi in "Hypnotic Curves" for LesbianX'],
['natural-boobs', 6, 'Blake Blossom in "Naturally Stacked Cutie" for HardX'],
['natural-boobs', 5, 'Chloe B in "Lamour" for MetArt'],
['natural-boobs', 2, 'Kylie Page for All Girl Massage'],
['nun', 1, 'Penny Pax and Darcie Dolce in "Confessions Of A Sinful Nun" for Sweetheart Video'],
['nun', 3, 'Higurashi Rin in "Naughty Nun" for All Gravure'],
['nun', 2, 'Lea Lexis in "Confessions Of A Sinful Nun" for Sweetheart Video'],
['nurse', 2, 'Evelina Dellai in "Horny Nurses" for Private'],
['nurse', 3, 'Lullu Gun in "Hot Nurse Addicted to Anal" for Private'],
['nurse', 1, 'Mia Malkova in "Always Think Happy Thoughts" for Brazzers'],
['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'],
['gaping', 'poster', 'Zoey Monroe in "Manuel DPs Them All 5" for Jules Jordan', 'julesjordan'],
['gaping', 3, 'Jessyka Swan for 21Sextury', '21sextury'],
['gaping', 2, 'Alex Grey in "DP Masters 5" for Jules Jordan', 'julesjordan'],
['interracial', 0, 'Jaye Summers and Prince Yahshua in "Platinum Pussy 3" for Jules Jordan', 'julesjordan'],
['latex', 1, 'Aletta Ocean in "Latex Dream" for Aletta Ocean Live', 'alettaoceanlive'],
['latina', 2, 'Veronica Leal for Her Limit', 'herlimit'],
['latina', 1, 'Jynx Maze in "Big Anal Asses 2" for HardX', 'hardx'],
['latina', 0, 'Vienna Black for Spizoo', 'spizoo'],
['maid', 1, 'Alessandra Jane for Brazzers', 'brazzers'],
['milf', 2, 'Shalina Devine for Anal Mom', 'analmom'],
['mff', 0, 'Madison Ivy, Adriana Chechik and Keiran Lee in "Day With A Pornstar" for Brazzers', 'brazzers'],
['mfm', 8, 'Ariana Marie in "DP Masters 7" for Jules Jordan', 'julesjordan'],
['mfm', 1, 'Lana Rhoades in "Gangbang Me 3" for HardX', 'hardx'],
['mfm', 7, 'Rose Valerie for Euro Sex Parties', 'eurosexparties'],
['mfm', 6, 'Honey Gold in "Slut Puppies 12" for Jules Jordan', 'julesjordan'],
['natural-boobs', 4, 'Miela (Marry Queen) in "Pure" for FemJoy', 'femjoy'],
['natural-boobs', 7, 'Layla London for In The Crack', 'inthecrack'],
['natural-boobs', 3, 'Violet Starr in "Violet Starr 1st Lesbian Anal" for LesbianX', 'lesbianx'],
['natural-boobs', 0, 'Valentina Nappi in "Hypnotic Curves" for LesbianX', 'lesbianx'],
['natural-boobs', 6, 'Blake Blossom in "Naturally Stacked Cutie" for HardX', 'hardx'],
['natural-boobs', 5, 'Chloe B in "Lamour" for MetArt', 'metart'],
['natural-boobs', 2, 'Kylie Page for All Girl Massage', 'allgirlmassage'],
['nun', 1, 'Penny Pax and Darcie Dolce in "Confessions Of A Sinful Nun" for Sweetheart Video', 'sweetheartvideo'],
['nun', 3, 'Higurashi Rin in "Naughty Nun" for All Gravure', 'allgravure'],
['nun', 2, 'Lea Lexis in "Confessions Of A Sinful Nun" for Sweetheart Video', 'sweetheartvideo'],
['nurse', 2, 'Evelina Dellai in "Horny Nurses" for Private', 'private'],
['nurse', 3, 'Lullu Gun in "Hot Nurse Addicted to Anal" for Private', 'private'],
['nurse', 1, 'Mia Malkova in "Always Think Happy Thoughts" for Brazzers', 'brazzers'],
['oil', 1, 'Kissa Sins in "Oil Overload 14" for JulesJordan', 'julesjordan'],
['oil', 3, 'Vina Sky for Lubed', 'lubed'],
['oil', 0, 'Jada Stevens in "Jada Stevens Anal Ass Oiled Up For James Deen\'s Cock" for Jules Jordan', 'julesjordan'],
['oral-creampie', 0, 'Henessy in "B(ass)t Friends" for Asshole Fever', 'assholefever'],
['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', 4, 'Anastasia Knight and Jillian Janson in "Teach Me" for Screwbox'],
['pussy-eating', 7, 'Jewelz Blu and Katie Kush in "Pick Your Pleasure" for Reality Kings'],
['pussy-eating', 8, 'Sia Lust and Lacey London in "Naughty Gamer Girls" for Girls Gone Pink'],
['pussy-eating', 0, 'Kali Roses and Emily Willis\' pussy in "Peeping On My Neighbor" for Girl Girl'],
['pussy-eating', 2, 'Anikka Albrite and Mia Malkova in "Big Anal Bombshells" for LesbianX'],
['pussy-eating', 3, 'Kylie Page and Kalina Ryu in "Training My Masseuse" for All Girl Massage'],
['pussy-eating', 6, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['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'],
['schoolgirl', 1, 'Eliza Ibarra for Brazzers'],
['squirting', 1, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers'],
['tattoos', 1, 'Joanna Angel for Joanna Angel'],
['teen', 1, 'Stalfra aka Precious for Nubiles'],
['trainbang', 1, 'Ria Sunn for Private'],
['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno'],
['tap', 3, 'Julia Red in GIO1007 for LegalPorno'],
['tap', 1, 'Natasha Teen in SZ2098 for LegalPorno'],
['tap', 2, 'Kira Thorn in GIO1018 for LegalPorno'],
['titty-fucking', 0, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam'],
['titty-fucking', 3, 'Anna Bell Peaks in "Ringing Her Bell" for MilfVR'],
['titty-fucking', 1, 'Chloe Lamour for DDF Busty'],
['toy-anal', 3, 'Kelly and Leona in "Sleeping Over" for Lez Cuties'],
['toy-anal', 2, 'Denise, Irina and Laki in "Sexy Slumber" for Lez Cuties'],
['toy-anal', 0, 'Kira Noir in 1225 for InTheCrack'],
['toy-dp', 3, 'Tori Black, Ana Foxxx, Anikka Albrite, Jenna Sativa and Abigail Mac in "Tori Black\'s Lesbian Gangbang" for LesbianX'],
['toy-dp', 0, 'Marley Brinx, Ivy Lebelle and Lyra Law in "Marley Brinx First GGDP" for LesbianX'],
['vr', '1a', 'Jenna Fox and Tommy Pistol in "Virtual Reality Jenna Fox Fucks So Real" for Bang Bros'],
['orgy', 'poster', 'Zoey Mornoe (DP), Jillian Janson (sex), Frida Sante, Katerina Kay and Natasha Starr in "Orgy Masters 6" for Jules Jordan', 'julesjordan'],
['pussy-eating', 4, 'Anastasia Knight and Jillian Janson in "Teach Me" for Screwbox', 'screwbox'],
['pussy-eating', 7, 'Jewelz Blu and Katie Kush in "Pick Your Pleasure" for Reality Kings', 'realitykings'],
['pussy-eating', 8, 'Sia Lust and Lacey London in "Naughty Gamer Girls" for Girls Gone Pink', 'girlsgonepink'],
['pussy-eating', 0, 'Kali Roses and Emily Willis\' pussy in "Peeping On My Neighbor" for Girl Girl', 'girlgirl'],
['pussy-eating', 2, 'Anikka Albrite and Mia Malkova in "Big Anal Bombshells" for LesbianX', 'lesbianx'],
['pussy-eating', 3, 'Kylie Page and Kalina Ryu in "Training My Masseuse" for All Girl Massage', 'allgirlmassage'],
['pussy-eating', 6, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['pussy-eating', 1, 'Anikka Albrite and Riley Reid for In The Crack', 'inthecrack'],
['redhead', 0, 'Penny Pax in "The Submission of Emma Marx: Boundaries" for New Sensations', 'newsensations'],
['schoolgirl', 1, 'Eliza Ibarra for Brazzers', 'brazzers'],
['squirting', 1, 'Abella Danger and Karma Rx in "Neon Dreaming" for Brazzers', 'brazzers'],
['tattoos', 1, 'Joanna Angel for Joanna Angel', 'joannaangel'],
['teen', 1, 'Stalfra aka Precious for Nubiles', 'nubiles'],
['trainbang', 1, 'Ria Sunn for Private', 'private'],
['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno', 'legalporno'],
['tap', 3, 'Julia Red in GIO1007 for LegalPorno', 'legalporno'],
['tap', 1, 'Natasha Teen in SZ2098 for LegalPorno', 'legalporno'],
['tap', 2, 'Kira Thorn in GIO1018 for LegalPorno', 'legalporno'],
['titty-fucking', 0, 'Kylie Page in "Stepsis Gives Soapy Handjob In Shower" for Spy Fam', 'spyfam'],
['titty-fucking', 3, 'Anna Bell Peaks in "Ringing Her Bell" for MilfVR', 'milfvr'],
['titty-fucking', 1, 'Chloe Lamour for DDF Busty', 'ddfbusty'],
['toy-anal', 3, 'Kelly and Leona in "Sleeping Over" for Lez Cuties', 'lezcuties'],
['toy-anal', 2, 'Denise, Irina and Laki in "Sexy Slumber" for Lez Cuties', 'lezcuties'],
['toy-anal', 0, 'Kira Noir in 1225 for InTheCrack', 'inthecrack'],
['toy-dp', 3, 'Tori Black, Ana Foxxx, Anikka Albrite, Jenna Sativa and Abigail Mac in "Tori Black\'s Lesbian Gangbang" for LesbianX', 'lesbianx'],
['toy-dp', 0, 'Marley Brinx, Ivy Lebelle and Lyra Law in "Marley Brinx First GGDP" for LesbianX', 'lesbianx'],
['vr', '1a', 'Jenna Fox and Tommy Pistol in "Virtual Reality Jenna Fox Fucks So Real" for Bang Bros', 'bangbros'],
]
.map(([slug, fileIndex, comment], index) => ({
.map(([slug, fileIndex, comment, entitySlug], index) => ({
id: `${slug}-${fileIndex}`,
tagSlug: slug,
path: `tags/${slug}/${fileIndex}.jpeg`,
@ -926,6 +917,7 @@ const tagPhotos = [
mime: 'image/jpeg',
index,
comment,
entitySlug,
}));
/* eslint-disable max-len */
@ -935,11 +927,24 @@ exports.seed = knex => Promise.resolve()
const tagMedia = tagPosters.concat(tagPhotos);
const tags = await knex('tags').whereIn('slug', tagMedia.map(item => item.tagSlug));
const entities = await knex('entities')
.whereIn('slug', tagMedia.map(item => item.entitySlug).filter(Boolean))
.orderBy('type', 'DESC');
const { inserted, updated } = await upsert('media', tagMedia.map(({
id, path, thumbnail, lazy, mime, index, comment,
}) => ({
id, path, thumbnail, lazy, mime, index, comment,
const entitiesBySlug = entities.reduce((acc, entity) => ({
...acc,
[entity.slug]: entity,
}), {});
const { inserted, updated } = await upsert('media', tagMedia.map(media => ({
id: media.id,
path: media.path,
thumbnail: media.thumbnail,
lazy: media.lazy,
mime: media.mime,
index: media.index,
comment: media.comment,
entity_id: entitiesBySlug[media.entitySlug]?.id,
})), 'path', knex);
const tagIdsBySlug = tags.reduce((acc, tag) => ({ ...acc, [tag.slug]: tag.id }), {});