Compare commits

3 Commits
Author SHA1 Message Date
DebaucheryLibrarian 1143f0865d Added optional tag alias slug for redirect purposes. 2026-07-07 00:49:21 +02:00
DebaucheryLibrarian da7e30ff59 1.254.5 2026-07-07 00:45:25 +02:00
DebaucheryLibrarian 242b7d9271 Added rename to tag seed. 2026-07-07 00:45:20 +02:00
3 changed files with 51 additions and 25 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "traxxx", "name": "traxxx",
"version": "1.254.4", "version": "1.254.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "traxxx", "name": "traxxx",
"version": "1.254.4", "version": "1.254.5",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.458.0", "@aws-sdk/client-s3": "^3.458.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "traxxx", "name": "traxxx",
"version": "1.254.4", "version": "1.254.5",
"description": "All the latest porn releases in one place", "description": "All the latest porn releases in one place",
"main": "src/app.js", "main": "src/app.js",
"scripts": { "scripts": {
+48 -22
View File
@@ -114,6 +114,7 @@ const tags = [
{ {
name: 'anal', name: 'anal',
slug: 'anal', slug: 'anal',
rename: 'ass-fucking',
description: 'Getting your asshole fucked. Generally considered naughtier, you may or may not find it a pleasurable alternative to vaginal sex.', description: 'Getting your asshole fucked. Generally considered naughtier, you may or may not find it a pleasurable alternative to vaginal sex.',
group: 'penetration', group: 'penetration',
}, },
@@ -554,8 +555,9 @@ const tags = [
slug: 'electric-shock', slug: 'electric-shock',
}, },
{ {
name: 'enhanced boobs', name: 'fake tits',
slug: 'enhanced-boobs', slug: 'fake-tits',
rename: 'enhanced-boobs',
}, },
{ {
name: 'enhanced butt', name: 'enhanced butt',
@@ -868,8 +870,9 @@ const tags = [
group: 'position', group: 'position',
}, },
{ {
name: 'natural boobs', name: 'natural tits',
slug: 'natural-boobs', slug: 'natural-tits',
rename: 'natural-boobs',
group: 'body', group: 'body',
}, },
{ {
@@ -1651,15 +1654,18 @@ const aliases = [
name: 'big butts', name: 'big butts',
for: 'big-butt', for: 'big-butt',
}, },
{
name: 'natural boobs',
for: 'natural-tits',
slug: 'natural-boobs',
},
{ {
name: 'big natural tits', name: 'big natural tits',
for: 'big-boobs', for: 'big-boobs',
implies: ['natural-boobs'],
}, },
{ {
name: 'big natural boobs', name: 'big natural boobs',
for: 'big-boobs', for: 'big-boobs',
implies: ['natural-boobs'],
}, },
{ {
name: 'big tits', name: 'big tits',
@@ -1739,12 +1745,18 @@ const aliases = [
}, },
{ {
name: 'fake boobs', name: 'fake boobs',
for: 'enhanced-boobs', for: 'fake-tits',
secondary: true,
},
{
name: 'enhanced boobs',
for: 'fake-tits',
slug: 'enhanced-boobs',
secondary: true, secondary: true,
}, },
{ {
name: 'implants', name: 'implants',
for: 'enhanced-boobs', for: 'fake-tits',
}, },
{ {
name: 'boob job', name: 'boob job',
@@ -1752,7 +1764,7 @@ const aliases = [
}, },
{ {
name: 'boobjob', name: 'boobjob',
for: 'enhanced-boobs', for: 'fake-tits',
}, },
{ {
name: 'brown hair', name: 'brown hair',
@@ -2017,11 +2029,11 @@ const aliases = [
}, },
{ {
name: 'enhanced', name: 'enhanced',
for: 'enhanced-boobs', for: 'fake-tits',
}, },
{ {
name: 'enhanced tits', name: 'enhanced tits',
for: 'enhanced-boobs', for: 'fake-tits',
}, },
{ {
name: 'fake butt', name: 'fake butt',
@@ -2064,11 +2076,6 @@ const aliases = [
name: 'facial - multiple', name: 'facial - multiple',
for: 'facial', for: 'facial',
}, },
{
name: 'fake tits',
for: 'enhanced-boobs',
secondary: true,
},
{ {
name: 'feet sex', name: 'feet sex',
for: 'foot-sex', for: 'foot-sex',
@@ -2218,11 +2225,7 @@ const aliases = [
}, },
{ {
name: 'natural', name: 'natural',
for: 'natural-boobs', for: 'natural-tits',
},
{
name: 'natural tits',
for: 'natural-boobs',
}, },
{ {
name: 'natural butt', name: 'natural butt',
@@ -3109,7 +3112,7 @@ const aliases = [
const priorities = [ // higher index is higher priority const priorities = [ // higher index is higher priority
['blonde', 'brunette', 'black-hair', 'redhead'], ['blonde', 'brunette', 'black-hair', 'redhead'],
['asian', 'black', 'latina', 'white', 'interracial'], ['asian', 'black', 'latina', 'white', 'interracial'],
['enhanced-boobs', 'natural-boobs'], ['fake-tits', 'natural-tits'],
['bts'], ['bts'],
['blowjob', 'deepthroat', 'oil'], ['blowjob', 'deepthroat', 'oil'],
['toys', 'toy-anal', 'toy-dp', 'piss-drinking'], ['toys', 'toy-anal', 'toy-dp', 'piss-drinking'],
@@ -3135,6 +3138,28 @@ const priorities = [ // higher index is higher priority
exports.seed = (knex) => Promise.resolve() exports.seed = (knex) => Promise.resolve()
.then(async () => upsert('tags_groups', groups, 'slug', knex)) .then(async () => upsert('tags_groups', groups, 'slug', knex))
.then(async () => { .then(async () => {
await Promise.all(tags.map((async (tag) => {
if (tag.rename) {
await knex('tags')
.where('name', tag.name)
.whereNotNull('alias_for')
.delete();
await knex('tags')
.where('slug', tag.rename)
.update({
name: tag.name,
slug: tag.slug,
});
}
if (tag.delete) {
await knex('tags')
.where('slug', tag.rename)
.delete();
}
})));
const groupEntries = await knex('tags_groups').select('*'); const groupEntries = await knex('tags_groups').select('*');
const groupsMap = groupEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {}); const groupsMap = groupEntries.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});
@@ -3182,6 +3207,7 @@ exports.seed = (knex) => Promise.resolve()
return { return {
name: alias.name, name: alias.name,
slug: alias.slug, // only used if redirect is required
alias_for: tagsMap[alias.for], alias_for: tagsMap[alias.for],
implied_tag_ids: alias.implies?.map((slug) => tagsMap[slug]), implied_tag_ids: alias.implies?.map((slug) => tagsMap[slug]),
secondary: !!alias.secondary, secondary: !!alias.secondary,