Removed superfluous actor_id from biometrics query, should prevent dupes being processed unnecessarily.

This commit is contained in:
DebaucheryLibrarian
2026-07-06 00:20:32 +02:00
parent e0a89f0b15
commit f538d8b62a

View File

@@ -95,7 +95,7 @@ async function getBiometrics(avatarEntry) {
function getAvatarSource(actorIds, includePhotos) { function getAvatarSource(actorIds, includePhotos) {
if (includePhotos) { if (includePhotos) {
return knex('actors_avatars') return knex('actors_avatars')
.select('actor_id', 'media_id') .select('media_id')
.modify((builder) => { .modify((builder) => {
if (actorIds) { if (actorIds) {
builder.whereIn('actor_id', actorIds); builder.whereIn('actor_id', actorIds);
@@ -104,7 +104,7 @@ function getAvatarSource(actorIds, includePhotos) {
} }
return knex('actors') return knex('actors')
.select('id as actor_id', 'avatar_media_id as media_id') .select('avatar_media_id as media_id')
.whereNotNull('avatar_media_id') .whereNotNull('avatar_media_id')
.modify((builder) => { .modify((builder) => {
if (actorIds) { if (actorIds) {
@@ -123,18 +123,17 @@ async function setBiometrics(actorIds, shouldUpdate = false, includePhotos = fal
const avatarSource = getAvatarSource(actorIds, includePhotos); const avatarSource = getAvatarSource(actorIds, includePhotos);
const avatarEntries = await knex const avatarEntries = await knex('media')
.select( .select(
'avatar_source.actor_id',
'media.id as media_id', 'media.id as media_id',
'media.path', 'media.path',
'media.is_s3', 'media.is_s3',
knex.raw('coalesce(json_agg(media_biometrics.biometrics) filter (where media_biometrics.id is not null), \'[]\') as biometrics'), knex.raw('coalesce(json_agg(media_biometrics.biometrics) filter (where media_biometrics.id is not null), \'[]\') as biometrics'),
) )
.from(avatarSource.as('avatar_source'))
.leftJoin('media', 'media.id', 'avatar_source.media_id') .leftJoin('media', 'media.id', 'avatar_source.media_id')
.leftJoin('media_biometrics', 'media_biometrics.media_id', 'media.id') .leftJoin('media_biometrics', 'media_biometrics.media_id', 'media.id')
.groupBy('avatar_source.actor_id', 'media.id', 'media.path', 'media.is_s3'); .whereIn('media.id', avatarSource.as('avatar_source'))
.groupBy('media.id', 'media.path', 'media.is_s3');
await avatarEntries.reduce(async (chain, avatarEntry, avatarIndex) => { await avatarEntries.reduce(async (chain, avatarEntry, avatarIndex) => {
await chain; await chain;