Upgraded dependencies, bumped to Node 24.

This commit is contained in:
2026-07-12 05:27:14 +02:00
parent 2d4786a4fd
commit d745b10d24
181 changed files with 18720 additions and 23134 deletions
+61 -48
View File
@@ -1,29 +1,30 @@
import process from 'node:process';
import config from 'config';
import convert from 'convert';
import { differenceInYears } from 'date-fns';
import { unit } from 'mathjs';
import { MerkleJson } from 'merkle-json';
import moment from 'moment';
import { nanoid } from 'nanoid';
import omit from 'object.omit';
import convert from 'convert';
import unprint from 'unprint';
import initLogger from './logger.js';
import { knexOwner as knex, knexManticore } from './knex.js';
import redis from './redis.js';
import { utilsApi } from './manticore.js';
import { HttpError } from './errors.js';
import { fetchCountriesByAlpha2 } from './countries.js';
import { curateEntity } from './entities.js';
import { curateMedia } from './media.js';
import { curateStash } from './stashes.js';
import { interpolateProfiles, platformsByHostname } from '../common/actors.mjs';
import { resolvePlace } from '../common/geo.mjs';
import escape from '../utils/escape-manticore.js';
import slugify from '../utils/slugify.js';
import { curateRevision } from './revisions.js';
import { interpolateProfiles, platformsByHostname } from '../common/actors.mjs'; // eslint-disable-line import/namespace
import { resolvePlace } from '../common/geo.mjs'; // eslint-disable-line import/namespace
import { syncScenes, syncActors, syncStashes } from './sync.js';
import verifyAbility from '../utils/verify-ability.js';
import { fetchCountriesByAlpha2 } from './countries.js';
import { curateEntity } from './entities.js';
import { HttpError } from './errors.js';
import { knexOwner as knex, knexManticore } from './knex.js';
import initLogger from './logger.js';
import { querySql } from './manticore.js';
import { curateMedia } from './media.js';
import redis from './redis.js';
import { curateRevision } from './revisions.js';
import { curateStash } from './stashes.js';
import { syncActors, syncScenes, syncStashes } from './sync.js';
const logger = initLogger();
const mj = new MerkleJson();
@@ -79,10 +80,10 @@ export function curateActor(actor, context = {}) {
})) || [], // used for profile pages
alias: actor.alias
? {
id: actor.alias.id,
slug: actor.alias.slug,
name: actor.alias.name,
}
id: actor.alias.id,
slug: actor.alias.slug,
name: actor.alias.name,
}
: null,
gender: actor.gender,
age: actor.age,
@@ -213,20 +214,22 @@ export function sortActorsByGender(actors, context = {}) {
const titleSlug = slugify(context.title);
const titleActors = titleSlug ? genderActors.sort((actorA, actorB) => {
const actorASlug = actorA.slug.split('-')[0];
const actorBSlug = actorB.slug.split('-')[0];
const titleActors = titleSlug
? genderActors.sort((actorA, actorB) => {
const actorASlug = actorA.slug.split('-')[0];
const actorBSlug = actorB.slug.split('-')[0];
if (titleSlug.includes(actorASlug) && !titleSlug.includes(actorBSlug)) {
return -1;
}
if (titleSlug.includes(actorASlug) && !titleSlug.includes(actorBSlug)) {
return -1;
}
if (titleSlug.includes(actorBSlug) && !titleSlug.includes(actorASlug)) {
return 1;
}
if (titleSlug.includes(actorBSlug) && !titleSlug.includes(actorASlug)) {
return 1;
}
return 0;
}) : alphaActors;
return 0;
})
: alphaActors;
return titleActors;
}
@@ -303,14 +306,14 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
.whereIn('actor_id', actorIds),
reqUser
? knex('stashes_actors')
.leftJoin('stashes', 'stashes.id', 'stashes_actors.stash_id')
.where('stashes.user_id', reqUser.id)
.whereIn('stashes_actors.actor_id', actorIds)
.leftJoin('stashes', 'stashes.id', 'stashes_actors.stash_id')
.where('stashes.user_id', reqUser.id)
.whereIn('stashes_actors.actor_id', actorIds)
: [],
reqUser
? knex('alerts_users_actors')
.where('user_id', reqUser.id)
.whereIn('actor_id', actorIds)
.where('user_id', reqUser.id)
.whereIn('actor_id', actorIds)
: [],
].slice(0, options.shallow ? 1 : -1));
@@ -395,20 +398,20 @@ async function queryManticoreSql(filters, options, _reqUser) {
builder
.innerJoin('actors', 'actors.id', 'actors_stashed.actor_id')
.where('stash_id', filters.stashId);
} else {
}
else {
builder.select(knex.raw('*, weight() as _score'));
}
if (filters.query) {
if (filters.query.charAt(0) === '#') {
builder.where('id', Number(escape(filters.query.slice(1))));
} else {
}
else {
builder.whereRaw(`match('@(name,aliases) :query:${filters.query.charAt(0) === '=' ? '' : '*'}', actors)`, { query: escape(filters.query) });
}
}
console.log('FILTERS', filters);
if (!filters.includeAliased) {
builder.where('alias_for', 0);
}
@@ -426,7 +429,8 @@ async function queryManticoreSql(filters, options, _reqUser) {
if (filters.gender === 'other') {
builder.whereNull('gender');
} else if (filters.gender) {
}
else if (filters.gender) {
builder.where('gender', filters.gender);
}
@@ -483,33 +487,39 @@ async function queryManticoreSql(filters, options, _reqUser) {
{ column: 'actors.slug', order: options.order[1] },
{ column: 'actors.entity_id', order: 'asc' },
]);
} else if (options.order?.[0] === 'likes') {
}
else if (options.order?.[0] === 'likes') {
builder.orderBy([
{ column: 'actors.stashed', order: options.order[1] },
{ column: 'actors.slug', order: 'asc' },
]);
} else if (options.order?.[0] === 'scenes') {
}
else if (options.order?.[0] === 'scenes') {
builder.orderBy([
{ column: 'actors.scenes', order: options.order[1] },
{ column: 'actors.slug', order: 'asc' },
]);
} else if (options.order?.[0] === 'results') {
}
else if (options.order?.[0] === 'results') {
builder.orderBy([
{ column: '_score', order: options.order[1] },
{ column: 'actors.stashed', order: 'desc' },
{ column: 'actors.slug', order: 'asc' },
]);
} else if (options.order?.[0] === 'stashed' && filters.stashId) {
}
else if (options.order?.[0] === 'stashed' && filters.stashId) {
builder.orderBy([
{ column: 'stashed_at', order: options.order[1] },
{ column: 'actors.slug', order: 'asc' },
]);
} else if (options.order) {
}
else if (options.order) {
builder.orderBy([
{ column: `actors.${options.order[0]}`, order: options.order[1] },
{ column: 'actors.slug', order: 'asc' },
]);
} else {
}
else {
builder.orderBy('actors.slug', 'asc');
builder.orderBy([
{ column: 'actors.slug', order: 'asc' },
@@ -535,11 +545,13 @@ async function queryManticoreSql(filters, options, _reqUser) {
console.log(curatedSqlQuery);
}
const results = await utilsApi.sql(curatedSqlQuery);
const results = await querySql(curatedSqlQuery);
const countries = results
.find((result) => (result.columns[0].country || result.columns[0]['actors.country']) && result.columns[1]['count(*)'])
?.data.map((row) => ({ key: row.country || row['actors.country'], doc_count: row['count(*)'] })).filter((country) => !!country.key)
?.data
.map((row) => ({ key: row.country || row['actors.country'], doc_count: row['count(*)'] }))
.filter((country) => !!country.key)
|| [];
const total = Number(results.at(-1).data.find((entry) => entry.Variable_name === 'total_found').Value);
@@ -742,7 +754,8 @@ export async function mergeActors(targetActorId, sourceActorIds, reqUser) {
*/
await trx.commit();
} catch (error) {
}
catch (error) {
await trx.rollback();
throw error;