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

View File

@@ -1,16 +1,17 @@
import process from 'node:process';
import config from 'config';
import { knexQuery as knex, knexOwner, knexManticore } from './knex.js';
import { utilsApi } from './manticore.js';
import { HttpError } from './errors.js';
import { fetchActorsById, curateActor, sortActorsByGender } from './actors.js';
import { curateMedia } from './media.js';
import { fetchTagsById } from './tags.js';
import { fetchEntitiesById } from './entities.js';
import { curateStash } from './stashes.js';
import { censor } from './censor.js';
import escape from '../utils/escape-manticore.js';
import promiseProps from '../utils/promise-props.js';
import { curateActor, fetchActorsById, sortActorsByGender } from './actors.js';
import { censor } from './censor.js';
import { fetchEntitiesById } from './entities.js';
import { HttpError } from './errors.js';
import { knexQuery as knex, knexManticore, knexOwner } from './knex.js';
import { querySql } from './manticore.js';
import { curateMedia } from './media.js';
import { curateStash } from './stashes.js';
import { fetchTagsById } from './tags.js';
function curateMovie(rawMovie, assets, context = {}) {
if (!rawMovie) {
@@ -36,13 +37,15 @@ function curateMovie(rawMovie, assets, context = {}) {
isIndependent: assets.channel.independent,
hasLogo: assets.channel.has_logo,
},
network: assets.channel.network_id ? {
id: assets.channel.network_id,
slug: assets.channel.network_slug,
name: censor(assets.channel.network_name, context.restriction),
type: assets.channel.network_type,
hasLogo: assets.channel.has_logo,
} : null,
network: assets.channel.network_id
? {
id: assets.channel.network_id,
slug: assets.channel.network_slug,
name: censor(assets.channel.network_name, context.restriction),
type: assets.channel.network_type,
hasLogo: assets.channel.has_logo,
}
: null,
actors: sortActorsByGender(assets.actors.map((actor) => curateActor(actor, { sceneDate: rawMovie.effective_date }))),
directors: assets.directors.map((director) => ({
id: director.id,
@@ -130,20 +133,22 @@ export async function fetchMoviesById(movieIds, reqUser, context = {}) {
.leftJoin('media as sfw_media', 'sfw_media.id', 'media.sfw_media_id')
.orderBy('media.index')
.groupBy('media.id', 'movies_covers.movie_id', 'sfw_media.id'),
photos: context.restriction ? [] : knex.transaction(async (trx) => {
if (reqUser) {
await trx.select(knex.raw('set_config(\'user.id\', :userId, true)', { userId: reqUser.id }));
}
photos: context.restriction
? []
: knex.transaction(async (trx) => {
if (reqUser) {
await trx.select(knex.raw('set_config(\'user.id\', :userId, true)', { userId: reqUser.id }));
}
return trx('movies_scenes')
.select('media.*', 'movies_scenes.movie_id', knex.raw('row_to_json(sfw_media) as sfw_media'))
.whereIn('movies_scenes.movie_id', movieIds)
.whereNotNull('media.id')
.leftJoin('releases_photos', 'releases_photos.release_id', 'movies_scenes.scene_id')
.leftJoin('media', 'media.id', 'releases_photos.media_id')
.leftJoin('media as sfw_media', 'sfw_media.id', 'media.sfw_media_id')
.groupBy('media.id', 'movies_scenes.movie_id', 'sfw_media.id');
}),
return trx('movies_scenes')
.select('media.*', 'movies_scenes.movie_id', knex.raw('row_to_json(sfw_media) as sfw_media'))
.whereIn('movies_scenes.movie_id', movieIds)
.whereNotNull('media.id')
.leftJoin('releases_photos', 'releases_photos.release_id', 'movies_scenes.scene_id')
.leftJoin('media', 'media.id', 'releases_photos.media_id')
.leftJoin('media as sfw_media', 'sfw_media.id', 'media.sfw_media_id')
.groupBy('media.id', 'movies_scenes.movie_id', 'sfw_media.id');
}),
caps: knex.transaction(async (trx) => {
if (reqUser) {
await trx.select(knex.raw('set_config(\'user.id\', :userId, true)', { userId: reqUser.id }));
@@ -163,9 +168,9 @@ export async function fetchMoviesById(movieIds, reqUser, context = {}) {
.leftJoin('media', 'media.id', 'movies_trailers.media_id'),
stashes: reqUser
? knexOwner('stashes_movies')
.leftJoin('stashes', 'stashes.id', 'stashes_movies.stash_id')
.where('stashes.user_id', reqUser.id)
.whereIn('stashes_movies.movie_id', movieIds)
.leftJoin('stashes', 'stashes.id', 'stashes_movies.stash_id')
.where('stashes.user_id', reqUser.id)
.whereIn('stashes_movies.movie_id', movieIds)
: [],
});
@@ -267,7 +272,8 @@ async function queryManticoreSql(filters, options) {
builder
.innerJoin('movies', 'movies.id', 'movies_stashed.movie_id')
.where('stash_id', filters.stashId);
} else {
}
else {
builder.select(knex.raw(`
*,
year(movies.effective_date) as effective_year,
@@ -311,32 +317,38 @@ async function queryManticoreSql(filters, options) {
builder
.where('effective_date', '<=', Math.round(Date.now() / 1000))
.orderBy('movies.effective_date', 'desc'); // can't seem to use alias if it matches column-name? behavior not fully understand, but this works
} else if (filters.scope === 'upcoming') {
}
else if (filters.scope === 'upcoming') {
builder
.where('effective_date', '>', Math.round(Date.now() / 1000))
.orderBy('movies.effective_date', 'asc');
} else if (filters.scope === 'new') {
}
else if (filters.scope === 'new') {
builder.orderBy([
{ column: 'movies.created_at', order: 'desc' },
{ column: 'movies.effective_date', order: 'asc' },
]);
} else if (filters.scope === 'likes') {
}
else if (filters.scope === 'likes') {
builder.orderBy([
{ column: 'movies.stashed', order: 'desc' },
{ column: 'movies.effective_date', order: 'desc' },
]);
} else if (filters.scope === 'results') {
}
else if (filters.scope === 'results') {
builder.orderBy([
{ column: '_score', order: 'desc' },
{ column: 'movies.stashed', order: 'desc' },
{ column: 'movies.effective_date', order: 'desc' },
]);
} else if (filters.scope === 'stashed' && filters.stashId) {
}
else if (filters.scope === 'stashed' && filters.stashId) {
builder.orderBy([
{ column: 'stashed_at', order: 'desc' },
{ column: 'movies.effective_date', order: 'desc' },
]);
} else {
}
else {
builder.orderBy('movies.effective_date', 'desc');
}
})
@@ -361,27 +373,31 @@ async function queryManticoreSql(filters, options) {
console.log(curatedSqlQuery);
}
const results = await utilsApi.sql(curatedSqlQuery);
const results = await querySql(curatedSqlQuery);
// console.log(results[0]);
const years = results
.find((result) => (result.columns[0].years || result.columns[0]['movies.years']) && result.columns[1]['count(*)'])
?.data.map((row) => ({ key: row.years || row['movies.years'], doc_count: row['count(*)'] }))
?.data
.map((row) => ({ key: row.years || row['movies.years'], doc_count: row['count(*)'] }))
|| [];
const actorIds = results
.find((result) => (result.columns[0].actor_ids || result.columns[0]['movies.actor_ids']) && result.columns[1]['count(*)'])
?.data.map((row) => ({ key: row.actor_ids || row['movies.actor_ids'], doc_count: row['count(*)'] }))
?.data
.map((row) => ({ key: row.actor_ids || row['movies.actor_ids'], doc_count: row['count(*)'] }))
|| [];
const tagIds = results
.find((result) => (result.columns[0].tag_ids || result.columns[0]['movies.tag_ids']) && result.columns[1]['count(*)'])
?.data.map((row) => ({ key: row.tag_ids || row['movies.tag_ids'], doc_count: row['count(*)'] }))
?.data
.map((row) => ({ key: row.tag_ids || row['movies.tag_ids'], doc_count: row['count(*)'] }))
|| [];
const channelIds = results
.find((result) => (result.columns[0].channel_id || result.columns[0]['movies.channel_id']) && result.columns[1]['count(*)'])
?.data.map((row) => ({ key: row.channel_id || row['movies.channel_id'], doc_count: row['count(*)'] }))
?.data
.map((row) => ({ key: row.channel_id || row['movies.channel_id'], doc_count: row['count(*)'] }))
|| [];
const total = Number(results.at(-1).data.find((entry) => entry.Variable_name === 'total_found')?.Value) || 0;