mirror of
https://github.com/immich-app/immich.git
synced 2025-01-01 16:41:59 +00:00
chore(server): remove unused filename (#2517)
This commit is contained in:
parent
74353193f8
commit
eefe5266a8
9 changed files with 17 additions and 45 deletions
|
@ -41,7 +41,7 @@ export class AssetCore {
|
||||||
faces: [],
|
faces: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
await this.jobRepository.queue({ name: JobName.ASSET_UPLOADED, data: { asset, fileName: file.originalName } });
|
await this.jobRepository.queue({ name: JobName.ASSET_UPLOADED, data: { asset } });
|
||||||
|
|
||||||
return asset;
|
return asset;
|
||||||
}
|
}
|
||||||
|
|
|
@ -328,18 +328,8 @@ describe('AssetService', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(jobMock.queue.mock.calls).toEqual([
|
expect(jobMock.queue.mock.calls).toEqual([
|
||||||
[
|
[{ name: JobName.ASSET_UPLOADED, data: { asset: assetEntityStub.livePhotoMotionAsset } }],
|
||||||
{
|
[{ name: JobName.ASSET_UPLOADED, data: { asset: assetEntityStub.livePhotoStillAsset } }],
|
||||||
name: JobName.ASSET_UPLOADED,
|
|
||||||
data: { asset: assetEntityStub.livePhotoMotionAsset, fileName: 'asset_1.mp4' },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
name: JobName.ASSET_UPLOADED,
|
|
||||||
data: { asset: assetEntityStub.livePhotoStillAsset, fileName: 'asset_1.jpeg' },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,7 +3,6 @@ import {
|
||||||
FacialRecognitionService,
|
FacialRecognitionService,
|
||||||
IAssetFaceJob,
|
IAssetFaceJob,
|
||||||
IAssetJob,
|
IAssetJob,
|
||||||
IAssetUploadedJob,
|
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IBulkEntityJob,
|
IBulkEntityJob,
|
||||||
IDeleteFilesJob,
|
IDeleteFilesJob,
|
||||||
|
@ -34,7 +33,7 @@ export class BackgroundTaskProcessor {
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@Process(JobName.ASSET_UPLOADED)
|
@Process(JobName.ASSET_UPLOADED)
|
||||||
async onAssetUpload(job: Job<IAssetUploadedJob>) {
|
async onAssetUpload(job: Job<IAssetJob>) {
|
||||||
await this.assetService.handleAssetUpload(job.data);
|
await this.assetService.handleAssetUpload(job.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import {
|
import {
|
||||||
AssetCore,
|
AssetCore,
|
||||||
|
IAssetJob,
|
||||||
IAssetRepository,
|
IAssetRepository,
|
||||||
IAssetUploadedJob,
|
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IGeocodingRepository,
|
IGeocodingRepository,
|
||||||
IJobRepository,
|
IJobRepository,
|
||||||
|
@ -79,9 +79,8 @@ export class MetadataExtractionProcessor {
|
||||||
: await this.assetRepository.getWithout(WithoutProperty.EXIF);
|
: await this.assetRepository.getWithout(WithoutProperty.EXIF);
|
||||||
|
|
||||||
for (const asset of assets) {
|
for (const asset of assets) {
|
||||||
const fileName = asset.originalFileName;
|
|
||||||
const name = asset.type === AssetType.VIDEO ? JobName.EXTRACT_VIDEO_METADATA : JobName.EXIF_EXTRACTION;
|
const name = asset.type === AssetType.VIDEO ? JobName.EXTRACT_VIDEO_METADATA : JobName.EXIF_EXTRACTION;
|
||||||
await this.jobRepository.queue({ name, data: { asset, fileName } });
|
await this.jobRepository.queue({ name, data: { asset } });
|
||||||
}
|
}
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
this.logger.error(`Unable to queue metadata extraction`, error?.stack);
|
this.logger.error(`Unable to queue metadata extraction`, error?.stack);
|
||||||
|
@ -89,7 +88,7 @@ export class MetadataExtractionProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Process(JobName.EXIF_EXTRACTION)
|
@Process(JobName.EXIF_EXTRACTION)
|
||||||
async extractExifInfo(job: Job<IAssetUploadedJob>) {
|
async extractExifInfo(job: Job<IAssetJob>) {
|
||||||
let asset = job.data.asset;
|
let asset = job.data.asset;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -194,7 +193,7 @@ export class MetadataExtractionProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Process({ name: JobName.EXTRACT_VIDEO_METADATA, concurrency: 2 })
|
@Process({ name: JobName.EXTRACT_VIDEO_METADATA, concurrency: 2 })
|
||||||
async extractVideoMetadata(job: Job<IAssetUploadedJob>) {
|
async extractVideoMetadata(job: Job<IAssetJob>) {
|
||||||
let asset = job.data.asset;
|
let asset = job.data.asset;
|
||||||
|
|
||||||
if (!asset.isVisible) {
|
if (!asset.isVisible) {
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe(AssetService.name, () => {
|
||||||
|
|
||||||
describe(`handle asset upload`, () => {
|
describe(`handle asset upload`, () => {
|
||||||
it('should process an uploaded video', async () => {
|
it('should process an uploaded video', async () => {
|
||||||
const data = { asset: { type: AssetType.VIDEO } as AssetEntity, fileName: 'video.mp4' };
|
const data = { asset: { type: AssetType.VIDEO } as AssetEntity };
|
||||||
|
|
||||||
await expect(sut.handleAssetUpload(data)).resolves.toBeUndefined();
|
await expect(sut.handleAssetUpload(data)).resolves.toBeUndefined();
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ describe(AssetService.name, () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should process an uploaded image', async () => {
|
it('should process an uploaded image', async () => {
|
||||||
const data = { asset: { type: AssetType.IMAGE } as AssetEntity, fileName: 'image.jpg' };
|
const data = { asset: { type: AssetType.IMAGE } as AssetEntity };
|
||||||
|
|
||||||
await sut.handleAssetUpload(data);
|
await sut.handleAssetUpload(data);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { AssetEntity, AssetType } from '@app/infra/entities';
|
import { AssetEntity, AssetType } from '@app/infra/entities';
|
||||||
import { Inject } from '@nestjs/common';
|
import { Inject } from '@nestjs/common';
|
||||||
import { AuthUserDto } from '../auth';
|
import { AuthUserDto } from '../auth';
|
||||||
import { IAssetUploadedJob, IJobRepository, JobName } from '../job';
|
import { IAssetJob, IJobRepository, JobName } from '../job';
|
||||||
import { AssetCore } from './asset.core';
|
import { AssetCore } from './asset.core';
|
||||||
import { IAssetRepository } from './asset.repository';
|
import { IAssetRepository } from './asset.repository';
|
||||||
import { MapMarkerDto } from './dto/map-marker.dto';
|
import { MapMarkerDto } from './dto/map-marker.dto';
|
||||||
|
@ -17,7 +17,7 @@ export class AssetService {
|
||||||
this.assetCore = new AssetCore(assetRepository, jobRepository);
|
this.assetCore = new AssetCore(assetRepository, jobRepository);
|
||||||
}
|
}
|
||||||
|
|
||||||
async handleAssetUpload(data: IAssetUploadedJob) {
|
async handleAssetUpload(data: IAssetJob) {
|
||||||
await this.jobRepository.queue({ name: JobName.GENERATE_JPEG_THUMBNAIL, data });
|
await this.jobRepository.queue({ name: JobName.GENERATE_JPEG_THUMBNAIL, data });
|
||||||
|
|
||||||
if (data.asset.type == AssetType.VIDEO) {
|
if (data.asset.type == AssetType.VIDEO) {
|
||||||
|
|
|
@ -30,11 +30,6 @@ export interface IBulkEntityJob extends IBaseJob {
|
||||||
ids: string[];
|
ids: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IAssetUploadedJob extends IBaseJob {
|
|
||||||
asset: AssetEntity;
|
|
||||||
fileName: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IDeleteFilesJob extends IBaseJob {
|
export interface IDeleteFilesJob extends IBaseJob {
|
||||||
files: Array<string | null | undefined>;
|
files: Array<string | null | undefined>;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { JobName, QueueName } from './job.constants';
|
||||||
import {
|
import {
|
||||||
IAssetFaceJob,
|
IAssetFaceJob,
|
||||||
IAssetJob,
|
IAssetJob,
|
||||||
IAssetUploadedJob,
|
|
||||||
IBaseJob,
|
IBaseJob,
|
||||||
IBulkEntityJob,
|
IBulkEntityJob,
|
||||||
IDeleteFilesJob,
|
IDeleteFilesJob,
|
||||||
|
@ -26,7 +25,7 @@ export interface QueueStatus {
|
||||||
|
|
||||||
export type JobItem =
|
export type JobItem =
|
||||||
// Asset Upload
|
// Asset Upload
|
||||||
| { name: JobName.ASSET_UPLOADED; data: IAssetUploadedJob }
|
| { name: JobName.ASSET_UPLOADED; data: IAssetJob }
|
||||||
|
|
||||||
// Transcoding
|
// Transcoding
|
||||||
| { name: JobName.QUEUE_VIDEO_CONVERSION; data: IBaseJob }
|
| { name: JobName.QUEUE_VIDEO_CONVERSION; data: IBaseJob }
|
||||||
|
@ -48,8 +47,8 @@ export type JobItem =
|
||||||
|
|
||||||
// Metadata Extraction
|
// Metadata Extraction
|
||||||
| { name: JobName.QUEUE_METADATA_EXTRACTION; data: IBaseJob }
|
| { name: JobName.QUEUE_METADATA_EXTRACTION; data: IBaseJob }
|
||||||
| { name: JobName.EXIF_EXTRACTION; data: IAssetUploadedJob }
|
| { name: JobName.EXIF_EXTRACTION; data: IAssetJob }
|
||||||
| { name: JobName.EXTRACT_VIDEO_METADATA; data: IAssetUploadedJob }
|
| { name: JobName.EXTRACT_VIDEO_METADATA; data: IAssetJob }
|
||||||
|
|
||||||
// Object Tagging
|
// Object Tagging
|
||||||
| { name: JobName.QUEUE_OBJECT_TAGGING; data: IBaseJob }
|
| { name: JobName.QUEUE_OBJECT_TAGGING; data: IBaseJob }
|
||||||
|
|
|
@ -1,14 +1,4 @@
|
||||||
import {
|
import { IAssetJob, IBaseJob, IJobRepository, JobCounts, JobItem, JobName, QueueName, QueueStatus } from '@app/domain';
|
||||||
IAssetJob,
|
|
||||||
IAssetUploadedJob,
|
|
||||||
IBaseJob,
|
|
||||||
IJobRepository,
|
|
||||||
JobCounts,
|
|
||||||
JobItem,
|
|
||||||
JobName,
|
|
||||||
QueueName,
|
|
||||||
QueueStatus,
|
|
||||||
} from '@app/domain';
|
|
||||||
import { InjectQueue } from '@nestjs/bull';
|
import { InjectQueue } from '@nestjs/bull';
|
||||||
import { Logger } from '@nestjs/common';
|
import { Logger } from '@nestjs/common';
|
||||||
import { Queue, type JobCounts as BullJobCounts } from 'bull';
|
import { Queue, type JobCounts as BullJobCounts } from 'bull';
|
||||||
|
@ -31,7 +21,7 @@ export class JobRepository implements IJobRepository {
|
||||||
@InjectQueue(QueueName.BACKGROUND_TASK) private backgroundTask: Queue,
|
@InjectQueue(QueueName.BACKGROUND_TASK) private backgroundTask: Queue,
|
||||||
@InjectQueue(QueueName.OBJECT_TAGGING) private objectTagging: Queue<IAssetJob | IBaseJob>,
|
@InjectQueue(QueueName.OBJECT_TAGGING) private objectTagging: Queue<IAssetJob | IBaseJob>,
|
||||||
@InjectQueue(QueueName.CLIP_ENCODING) private clipEmbedding: Queue<IAssetJob | IBaseJob>,
|
@InjectQueue(QueueName.CLIP_ENCODING) private clipEmbedding: Queue<IAssetJob | IBaseJob>,
|
||||||
@InjectQueue(QueueName.METADATA_EXTRACTION) private metadataExtraction: Queue<IAssetUploadedJob | IBaseJob>,
|
@InjectQueue(QueueName.METADATA_EXTRACTION) private metadataExtraction: Queue<IAssetJob | IBaseJob>,
|
||||||
@InjectQueue(QueueName.RECOGNIZE_FACES) private recognizeFaces: Queue<IAssetJob | IBaseJob>,
|
@InjectQueue(QueueName.RECOGNIZE_FACES) private recognizeFaces: Queue<IAssetJob | IBaseJob>,
|
||||||
@InjectQueue(QueueName.STORAGE_TEMPLATE_MIGRATION) private storageTemplateMigration: Queue,
|
@InjectQueue(QueueName.STORAGE_TEMPLATE_MIGRATION) private storageTemplateMigration: Queue,
|
||||||
@InjectQueue(QueueName.THUMBNAIL_GENERATION) private generateThumbnail: Queue,
|
@InjectQueue(QueueName.THUMBNAIL_GENERATION) private generateThumbnail: Queue,
|
||||||
|
|
Loading…
Reference in a new issue