Only flag photos with missing text when AI is enabled
This commit is contained in:
parent
a2a0c30e87
commit
9169391514
@ -590,20 +590,18 @@ const outdatedWhereValues = [
|
||||
MAKE_FUJIFILM,
|
||||
];
|
||||
|
||||
const needsAiTextWhereClauses = (
|
||||
AI_TEXT_GENERATION_ENABLED &&
|
||||
AI_TEXT_AUTO_GENERATED_FIELDS.length
|
||||
)
|
||||
? AI_TEXT_AUTO_GENERATED_FIELDS
|
||||
.map(field => {
|
||||
switch (field) {
|
||||
case 'title': return `(title <> '') IS NOT TRUE`;
|
||||
case 'caption': return `(caption <> '') IS NOT TRUE`;
|
||||
case 'tags': return `(tags IS NULL OR array_length(tags, 1) = 0)`;
|
||||
case 'semantic': return `(semantic_description <> '') IS NOT TRUE`;
|
||||
}
|
||||
})
|
||||
: [];
|
||||
const needsAiTextWhereClauses =
|
||||
AI_TEXT_GENERATION_ENABLED
|
||||
? AI_TEXT_AUTO_GENERATED_FIELDS
|
||||
.map(field => {
|
||||
switch (field) {
|
||||
case 'title': return `(title <> '') IS NOT TRUE`;
|
||||
case 'caption': return `(caption <> '') IS NOT TRUE`;
|
||||
case 'tags': return `(tags IS NULL OR array_length(tags, 1) = 0)`;
|
||||
case 'semantic': return `(semantic_description <> '') IS NOT TRUE`;
|
||||
}
|
||||
})
|
||||
: [];
|
||||
|
||||
const needsSyncWhereStatement =
|
||||
`WHERE ${outdatedWhereClauses.concat(needsAiTextWhereClauses).join(' OR ')}`;
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
import { MAKE_FUJIFILM } from '@/platforms/fujifilm';
|
||||
import { Photo, PhotoDb } from '.';
|
||||
import { AI_TEXT_AUTO_GENERATED_FIELDS } from '@/app/config';
|
||||
import {
|
||||
AI_TEXT_AUTO_GENERATED_FIELDS,
|
||||
AI_TEXT_GENERATION_ENABLED,
|
||||
} from '@/app/config';
|
||||
import { AiAutoGeneratedField } from './ai';
|
||||
|
||||
export interface PhotoSyncStatus {
|
||||
@ -26,18 +29,20 @@ const getMissingAiTextFields = ({
|
||||
tags,
|
||||
semanticDescription,
|
||||
}: PhotoDb | Photo): AiAutoGeneratedField[] =>
|
||||
AI_TEXT_AUTO_GENERATED_FIELDS.reduce((fields, field) => {
|
||||
switch (field) {
|
||||
case 'title':
|
||||
return !title ? [...fields, 'title'] : fields;
|
||||
case 'caption':
|
||||
return !caption ? [...fields, 'caption'] : fields;
|
||||
case 'tags':
|
||||
return (tags ?? []).length === 0 ? [...fields, 'tags'] : fields;
|
||||
case 'semantic':
|
||||
return !semanticDescription ? [...fields, 'semantic'] : fields;
|
||||
}
|
||||
}, [] as AiAutoGeneratedField[]);
|
||||
AI_TEXT_GENERATION_ENABLED
|
||||
? AI_TEXT_AUTO_GENERATED_FIELDS.reduce((fields, field) => {
|
||||
switch (field) {
|
||||
case 'title':
|
||||
return !title ? [...fields, 'title'] : fields;
|
||||
case 'caption':
|
||||
return !caption ? [...fields, 'caption'] : fields;
|
||||
case 'tags':
|
||||
return (tags ?? []).length === 0 ? [...fields, 'tags'] : fields;
|
||||
case 'semantic':
|
||||
return !semanticDescription ? [...fields, 'semantic'] : fields;
|
||||
}
|
||||
}, [] as AiAutoGeneratedField[])
|
||||
: [];
|
||||
|
||||
export const generatePhotoSyncStatus = (photo: PhotoDb): PhotoSyncStatus => ({
|
||||
isOutdated: isPhotoOutdated(photo),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user