Move tag posters and photos to media database.
This commit is contained in:
@@ -17,6 +17,10 @@ const groups = [
|
||||
slug: 'ethnicity',
|
||||
name: 'Ethnicity',
|
||||
},
|
||||
{
|
||||
slug: 'finish',
|
||||
name: 'Finish',
|
||||
},
|
||||
{
|
||||
slug: 'group',
|
||||
name: 'Group sex',
|
||||
@@ -65,7 +69,7 @@ function getTags(groupsMap) {
|
||||
name: 'airtight',
|
||||
slug: 'airtight',
|
||||
alias_for: null,
|
||||
description: 'A cock in every penetrable hole (of a woman); one in the mouth, one in the vagina, and one in the asshole.',
|
||||
description: 'Stuffing one cock in her ass, one in her pussy, and one in her mouth, filling all of her penetrable holes and sealing her airtight like a figurative balloon. In other words, simultaneously getting [double penetrated](/tag/double-penetration), and giving a [blowjob](/tag/blowjob) or getting [facefucked](/tag/facefuck). Being airtight implies being [gangbanged](/tag/gangbang).',
|
||||
priority: 9,
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
@@ -74,24 +78,21 @@ function getTags(groupsMap) {
|
||||
slug: 'amateur',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'american',
|
||||
slug: 'american',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'anal creampie',
|
||||
slug: 'anal-creampie',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
description: 'Ejaculating into the asshole.',
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'anal',
|
||||
slug: 'anal',
|
||||
description: 'Penetrating the asshole with a (real) dick.',
|
||||
description: 'Taking a cock in the asshole.',
|
||||
priority: 9,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
{
|
||||
name: 'ass fingering',
|
||||
@@ -102,6 +103,7 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'anal fisting',
|
||||
slug: 'anal-fisting',
|
||||
description: 'Shoving an entire hand into the asshole.',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -112,11 +114,13 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'anal toys',
|
||||
slug: 'anal-toys',
|
||||
description: 'Stuffing a toy, such as a dildo or buttplug, into the ass',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'asian',
|
||||
slug: 'asian',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
@@ -129,7 +133,8 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'ass to mouth',
|
||||
slug: 'ass-to-mouth',
|
||||
priority: 8,
|
||||
priority: 6,
|
||||
description: 'Sucking off a cock right after anal, giving your own or someone else`s asshole a second hand taste.',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -157,6 +162,7 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'BDSM',
|
||||
slug: 'bdsm',
|
||||
priority: 8,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -203,11 +209,14 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'blowjob',
|
||||
slug: 'blowjob',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'blowbang',
|
||||
slug: 'blowbang',
|
||||
priority: 9,
|
||||
description: 'Pleasuring a gang of three or more cocks by sucking and jerking off as many cocks as they can, often getting [facefucked](/tag/facefuck), groped and rubbed out, and followed by a [bukkake](/tag/bukkake). If they are getting fucked, it is a [gangbang](/tag/gangbang).',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
@@ -225,7 +234,10 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'bukkake',
|
||||
slug: 'bukkake',
|
||||
priority: 8,
|
||||
description: 'Getting ejaculated on the face by a group of three or more men, often following a [blowbang](/tag/blowbang) or [gangbang](/tag/gangbang).',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'cheerleader',
|
||||
@@ -256,7 +268,10 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'creampie',
|
||||
slug: 'creampie',
|
||||
priority: 8,
|
||||
description: 'Ejaculalating into her pussy, often shown visibly dripping out afterwards.',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'cum licking',
|
||||
@@ -284,13 +299,25 @@ function getTags(groupsMap) {
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'double anal penetration',
|
||||
name: 'double anal',
|
||||
slug: 'double-anal',
|
||||
description: 'Two cocks in the ass at the same time. If there\'s a third cock in her pussy, it is [double anal TP](/tag/da-tp).',
|
||||
priority: 8,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
{
|
||||
name: 'triple anal',
|
||||
slug: 'triple-anal',
|
||||
description: 'Getting fucked in the ass by not one, two but *three* cocks at the same time.',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
{
|
||||
name: 'deepthroat',
|
||||
slug: 'deepthroat',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -298,6 +325,8 @@ function getTags(groupsMap) {
|
||||
slug: 'double-penetration',
|
||||
priority: 9,
|
||||
alias_for: null,
|
||||
description: 'Fucking two cocks at once, with one in her ass, and one in her pussy. If she has another cock in her mouth, she is [airtight](/tag/airtight).',
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
{
|
||||
name: 'dungeon',
|
||||
@@ -305,9 +334,12 @@ function getTags(groupsMap) {
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'double vaginal penetration',
|
||||
name: 'double vaginal',
|
||||
slug: 'double-vaginal',
|
||||
description: 'Fucking her pussy with two cocks at the same time. If there\'s a third cock in her asshole, it is [double vaginal TP](/tag/dv-tp).',
|
||||
priority: 8,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.penetration,
|
||||
},
|
||||
{
|
||||
name: 'double blowjob',
|
||||
@@ -328,6 +360,7 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'ebony',
|
||||
slug: 'ebony',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
@@ -341,15 +374,10 @@ function getTags(groupsMap) {
|
||||
slug: 'enhanced-boobs',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'European',
|
||||
slug: 'european',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'facefuck',
|
||||
slug: 'facefuck',
|
||||
priority: 9,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.position,
|
||||
},
|
||||
@@ -363,6 +391,7 @@ function getTags(groupsMap) {
|
||||
name: 'facial',
|
||||
slug: 'facial',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'feet',
|
||||
@@ -385,8 +414,10 @@ function getTags(groupsMap) {
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'FMF threesome',
|
||||
slug: 'fmf',
|
||||
name: 'MFF threesome',
|
||||
slug: 'mff',
|
||||
priority: 9,
|
||||
description: 'A threesome with two women and one guy, in which the women have sex with eachother.',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
@@ -398,10 +429,19 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'gangbang',
|
||||
slug: 'gangbang',
|
||||
description: 'A group of three or more guys fucking a woman, at least two at the same time, often but not necessarily involving a [blowbang](/tag/blowbang), [double penetration](/tag/airtight) and [airtight](/tag/airtight). If she only gets fucked by one guy at a time, it might be considered a [trainbang](/tag/trainbang) instead. In a reverse gangbang, multiple women fuck one man.',
|
||||
alias_for: null,
|
||||
priority: 9,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
{
|
||||
name: 'trainbang',
|
||||
slug: 'trainbang',
|
||||
description: 'A group of three or more guys fucking a woman as in a [gangbang](/tag/gangbang), but one after the other, and never at the same time.',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
{
|
||||
name: 'gapes',
|
||||
slug: 'gapes',
|
||||
@@ -435,12 +475,6 @@ function getTags(groupsMap) {
|
||||
alias_for: null,
|
||||
group_id: groupsMap.clothing,
|
||||
},
|
||||
{
|
||||
name: 'hungarian',
|
||||
slug: 'hungarian',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'humiliation',
|
||||
slug: 'humiliation',
|
||||
@@ -456,6 +490,7 @@ function getTags(groupsMap) {
|
||||
slug: 'interracial',
|
||||
priority: 9,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'kissing',
|
||||
@@ -470,7 +505,9 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'Latina',
|
||||
slug: 'latina',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'leather',
|
||||
@@ -480,6 +517,7 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'lesbian',
|
||||
slug: 'lesbian',
|
||||
priority: 9,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -513,6 +551,8 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'MFM threesome',
|
||||
slug: 'mfm',
|
||||
priority: 9,
|
||||
description: 'Two men fucking one woman, but not eachother. Typically involves a \'spitroast\', where one guy gets a blowjob and the other fucks her pussy.',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
@@ -542,11 +582,15 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'oral creampie',
|
||||
slug: 'oral-creampie',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'orgy',
|
||||
slug: 'orgy',
|
||||
priority: 9,
|
||||
description: 'A group of (at least four) people having sex with eachother. If only one person is getting fucked, it is probably a [gangbang](/tag/gangbang).',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.group,
|
||||
},
|
||||
@@ -610,14 +654,9 @@ function getTags(groupsMap) {
|
||||
{
|
||||
name: 'rough',
|
||||
slug: 'rough',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'russian',
|
||||
slug: 'russian',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
{
|
||||
name: 'saliva',
|
||||
slug: 'saliva',
|
||||
@@ -729,6 +768,7 @@ function getTags(groupsMap) {
|
||||
name: 'swallowing',
|
||||
slug: 'swallowing',
|
||||
alias_for: null,
|
||||
group_id: groupsMap.finish,
|
||||
},
|
||||
{
|
||||
name: 'tattoo',
|
||||
@@ -764,9 +804,27 @@ function getTags(groupsMap) {
|
||||
priority: 10,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'double anal TP',
|
||||
slug: 'da-tp',
|
||||
priority: 7,
|
||||
description: 'Triple penetration with two cocks in the ass, and one in the pussy. Also see [double vaginal TP](/tag/dv-tp).',
|
||||
group_id: groupsMap.penetration,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'double vaginal TP',
|
||||
slug: 'dv-tp',
|
||||
priority: 7,
|
||||
description: 'Triple penetration with two cocks in the pussy, and one in the ass. Also see [double anal TP](/tag/da-tp).',
|
||||
group_id: groupsMap.penetration,
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'triple penetration',
|
||||
slug: 'triple-penetration',
|
||||
priority: 7,
|
||||
description: 'Three cocks fucking her from behind at the same time. This can be either [double anal TP](/tag/da-tp), or [double vaginal TP](/tag/dv-tp).',
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
@@ -795,8 +853,9 @@ function getTags(groupsMap) {
|
||||
alias_for: null,
|
||||
},
|
||||
{
|
||||
name: 'white',
|
||||
slug: 'white',
|
||||
name: 'caucasian',
|
||||
slug: 'caucasian',
|
||||
priority: 7,
|
||||
alias_for: null,
|
||||
group_id: groupsMap.ethnicity,
|
||||
},
|
||||
@@ -878,11 +937,11 @@ function getTagAliases(tagsMap) {
|
||||
},
|
||||
{
|
||||
name: 'fmf',
|
||||
alias_for: tagsMap.fmf,
|
||||
alias_for: tagsMap.mff,
|
||||
},
|
||||
{
|
||||
name: 'ffm',
|
||||
alias_for: tagsMap.fmf,
|
||||
alias_for: tagsMap.mff,
|
||||
},
|
||||
{
|
||||
name: 'bgb',
|
||||
@@ -1112,6 +1171,10 @@ function getTagAliases(tagsMap) {
|
||||
name: 'double anal penetration (dap)',
|
||||
alias_for: tagsMap['double-anal'],
|
||||
},
|
||||
{
|
||||
name: 'tap',
|
||||
alias_for: tagsMap['triple-anal'],
|
||||
},
|
||||
{
|
||||
name: 'dpp',
|
||||
alias_for: tagsMap['double-vaginal'],
|
||||
@@ -1436,6 +1499,10 @@ function getTagAliases(tagsMap) {
|
||||
name: 'whipping',
|
||||
alias_for: tagsMap['corporal-punishment'],
|
||||
},
|
||||
{
|
||||
name: 'white',
|
||||
alias_for: tagsMap.caucasian,
|
||||
},
|
||||
{
|
||||
name: 'work',
|
||||
alias_for: tagsMap.office,
|
||||
220
seeds/04_media.js
Normal file
220
seeds/04_media.js
Normal file
@@ -0,0 +1,220 @@
|
||||
const upsert = require('../src/utils/upsert');
|
||||
|
||||
function getMedia(tagsMap) {
|
||||
return [
|
||||
{
|
||||
path: 'tags/airtight/poster.jpeg',
|
||||
target_id: tagsMap.airtight,
|
||||
role: 'poster',
|
||||
comment: 'Jynx Maze in "Pump My Ass Full of Cum 3" for Jules Jordan',
|
||||
},
|
||||
{
|
||||
path: 'tags/airtight/2.jpeg',
|
||||
target_id: tagsMap.airtight,
|
||||
comment: 'Dakota Skye in "Dakota Goes Nuts" for ArchAngel',
|
||||
},
|
||||
{
|
||||
path: 'tags/airtight/1.jpeg',
|
||||
target_id: tagsMap.airtight,
|
||||
comment: 'Chloe Amour in "DP Masters 4" for Jules Jordan',
|
||||
},
|
||||
{
|
||||
path: 'tags/airtight/0.jpeg',
|
||||
domain: 'tags',
|
||||
target_id: tagsMap.airtight,
|
||||
comment: 'Sheena Shaw in "Ass Worship 14" for Jules Jordan',
|
||||
},
|
||||
{
|
||||
path: 'tags/anal/poster.jpeg',
|
||||
target_id: tagsMap.anal,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/double-penetration/poster.jpeg',
|
||||
target_id: tagsMap['double-penetration'],
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/double-anal/poster.jpeg',
|
||||
target_id: tagsMap['double-anal'],
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/double-vaginal/poster.jpeg',
|
||||
target_id: tagsMap['double-vaginal'],
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/da-tp/poster.jpeg',
|
||||
target_id: tagsMap['da-tp'],
|
||||
role: 'poster',
|
||||
comment: 'Ninel Mojado aka Mira Cuckold in GIO063 for LegalPorno',
|
||||
},
|
||||
{
|
||||
path: 'tags/da-tp/1.jpeg',
|
||||
target_id: tagsMap['da-tp'],
|
||||
role: 'photo',
|
||||
comment: 'Francys Belle in SZ1702 for LegalPorno',
|
||||
},
|
||||
{
|
||||
path: 'tags/da-tp/2.jpeg',
|
||||
target_id: tagsMap['da-tp'],
|
||||
role: 'photo',
|
||||
comment: 'Angel Smalls in GIO408 for LegalPorno',
|
||||
},
|
||||
{
|
||||
path: 'tags/dv-tp/poster.jpeg',
|
||||
target_id: tagsMap['dv-tp'],
|
||||
role: 'poster',
|
||||
comment: 'Juelz Ventura in "Gangbanged 5" for Elegant Angel',
|
||||
},
|
||||
{
|
||||
path: 'tags/triple-anal/poster.jpeg',
|
||||
target_id: tagsMap['triple-anal'],
|
||||
role: 'poster',
|
||||
comment: 'Kristy Black in SZ1986 for LegalPorno',
|
||||
},
|
||||
{
|
||||
path: 'tags/triple-anal/1.jpeg',
|
||||
target_id: tagsMap['triple-anal'],
|
||||
role: 'photo',
|
||||
comment: 'Natasha Teen in SZ2098 for LegalPorno',
|
||||
},
|
||||
{
|
||||
path: 'tags/triple-anal/2.jpeg',
|
||||
target_id: tagsMap['triple-anal'],
|
||||
role: 'photo',
|
||||
comment: 'Kira Thorn in GIO1018 for LegalPorno"',
|
||||
},
|
||||
{
|
||||
path: 'tags/blowbang/poster.jpeg',
|
||||
target_id: tagsMap.blowbang,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/gangbang/poster.jpeg',
|
||||
target_id: tagsMap.gangbang,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/gangbang/1.jpeg',
|
||||
target_id: tagsMap.gangbang,
|
||||
role: 'photo',
|
||||
comment: '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.',
|
||||
},
|
||||
{
|
||||
path: 'tags/mff/poster.jpeg',
|
||||
target_id: tagsMap.mff,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/mfm/poster.jpeg',
|
||||
target_id: tagsMap.mfm,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/orgy/poster.jpeg',
|
||||
target_id: tagsMap.orgy,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/asian/poster.jpeg',
|
||||
target_id: tagsMap.asian,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/caucasian/poster.jpeg',
|
||||
target_id: tagsMap.caucasian,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/ebony/poster.jpeg',
|
||||
target_id: tagsMap.ebony,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/latina/poster.jpeg',
|
||||
target_id: tagsMap.latina,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/interracial/poster.jpeg',
|
||||
target_id: tagsMap.interracial,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/facial/poster.jpeg',
|
||||
target_id: tagsMap.facial,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/bukkake/poster.jpeg',
|
||||
target_id: tagsMap.bukkake,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/swallowing/poster.jpeg',
|
||||
target_id: tagsMap.swallowing,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/creampie/poster.jpeg',
|
||||
target_id: tagsMap.creampie,
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/anal-creampie/poster.jpeg',
|
||||
target_id: tagsMap['anal-creampie'],
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
{
|
||||
path: 'tags/oral-creampie/poster.jpeg',
|
||||
target_id: tagsMap['oral-creampie'],
|
||||
role: 'poster',
|
||||
comment: '',
|
||||
},
|
||||
]
|
||||
.map((file, index) => ({
|
||||
...file,
|
||||
thumbnail: file.thumbnail || file.path.replace('.jpeg', '_thumb.jpeg'),
|
||||
mime: 'image/jpeg',
|
||||
index,
|
||||
domain: file.domain || 'tags',
|
||||
role: file.role || 'photo',
|
||||
}));
|
||||
}
|
||||
|
||||
/* eslint-disable max-len */
|
||||
exports.seed = knex => Promise.resolve()
|
||||
.then(async () => {
|
||||
const [duplicates, tags] = await Promise.all([
|
||||
knex('media').where('domain', 'tags'),
|
||||
knex('tags').where('alias_for', null),
|
||||
]);
|
||||
|
||||
const duplicatesByPath = duplicates.reduce((acc, file) => ({ ...acc, [file.path]: file }), {});
|
||||
const tagsMap = tags.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
|
||||
|
||||
const media = getMedia(tagsMap);
|
||||
|
||||
return upsert('media', media, duplicatesByPath, 'path', knex);
|
||||
});
|
||||
Reference in New Issue
Block a user