diff --git a/src/backend/model/fileprocessing/PhotoProcessing.ts b/src/backend/model/fileprocessing/PhotoProcessing.ts index 75fe80cd..0c26e7de 100644 --- a/src/backend/model/fileprocessing/PhotoProcessing.ts +++ b/src/backend/model/fileprocessing/PhotoProcessing.ts @@ -17,6 +17,7 @@ import {PersonWithSampleRegion} from '../../../common/entities/PersonDTO'; export class PhotoProcessing { private static initDone = false; private static taskQue: ITaskExecuter = null; + private static readonly CONVERTED_EXTENSION = '.webp'; public static init(): void { if (this.initDone === true) { @@ -122,7 +123,7 @@ export class PhotoProcessing { return path.join( ProjectPath.TranscodedFolder, ProjectPath.getRelativePathToImages(path.dirname(mediaPath)), - file + '_' + size + 'q' + Config.Server.Media.Thumbnail.quality + '.webp' + file + '_' + size + 'q' + Config.Server.Media.Thumbnail.quality + PhotoProcessing.CONVERTED_EXTENSION ); } @@ -147,7 +148,7 @@ export class PhotoProcessing { .digest('hex') + '_' + size + - '.webp' + PhotoProcessing.CONVERTED_EXTENSION ); } @@ -162,6 +163,10 @@ export class PhotoProcessing { ) ); + if (path.extname(convertedPath) !== PhotoProcessing.CONVERTED_EXTENSION) { + return false; + } + const sizeStr = convertedPath.substring( convertedPath.lastIndexOf('_') + 1, convertedPath.lastIndexOf('q') diff --git a/src/backend/model/jobs/jobs/FileJob.ts b/src/backend/model/jobs/jobs/FileJob.ts index 7e380839..9a41bb49 100644 --- a/src/backend/model/jobs/jobs/FileJob.ts +++ b/src/backend/model/jobs/jobs/FileJob.ts @@ -149,8 +149,8 @@ export abstract class FileJob { + if (!config.sizes || !Array.isArray(config.sizes) || config.sizes.length === 0) { + throw new Error( + 'unknown thumbnails sizes: ' + + config.sizes + + '. It should be an array from:' + Config.Client.Media.Thumbnail.thumbnailSizes + ); + } for (const item of config.sizes) { if (Config.Client.Media.Thumbnail.thumbnailSizes.indexOf(item) === -1) { throw new Error( 'unknown thumbnails size: ' + - item + - '. Add it to the possible thumbnail sizes.' + item + + '. Add it to the possible thumbnail sizes.' ); } } @@ -60,6 +67,7 @@ export class ThumbnailGenerationJob extends FileJob<{ return true; } } + return false; } protected async processFile(mPath: string): Promise {