Skip to content

Commit

Permalink
don't add separate source
Browse files Browse the repository at this point in the history
  • Loading branch information
etnoy committed Dec 20, 2024
1 parent d0bb59f commit 8868d38
Show file tree
Hide file tree
Showing 7 changed files with 283 additions and 50 deletions.
292 changes: 265 additions & 27 deletions e2e/src/api/specs/library.e2e-spec.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion server/src/interfaces/job.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export interface IDelayedJob extends IBaseJob {

export interface IEntityJob extends IBaseJob {
id: string;
source?: 'upload' | 'library-import' | 'sidecar-write' | 'copy';
source?: 'upload' | 'sidecar-write' | 'copy';
notify?: boolean;
}

Expand Down
4 changes: 2 additions & 2 deletions server/src/services/job.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ export class JobService extends BaseService {
}

case JobName.STORAGE_TEMPLATE_MIGRATION_SINGLE: {
if (item.data.source === 'upload' || item.data.source === 'copy' || item.data.source === 'library-import') {
if (item.data.source === 'upload' || item.data.source === 'copy') {
await this.jobRepository.queue({ name: JobName.GENERATE_THUMBNAILS, data: item.data });
}
break;
Expand All @@ -266,7 +266,7 @@ export class JobService extends BaseService {
}

case JobName.GENERATE_THUMBNAILS: {
if (!item.data.notify && item.data.source !== 'upload' && item.data.source === 'library-import') {
if (!item.data.notify && item.data.source !== 'upload') {
break;
}

Expand Down
6 changes: 2 additions & 4 deletions server/src/services/library.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -422,10 +422,9 @@ describe(LibraryService.name, () => {
expect(jobMock.queue.mock.calls).toEqual([
[
{
name: JobName.METADATA_EXTRACTION,
name: JobName.SIDECAR_DISCOVERY,
data: {
id: assetStub.image.id,
source: 'upload',
},
},
],
Expand Down Expand Up @@ -467,10 +466,9 @@ describe(LibraryService.name, () => {
expect(jobMock.queue.mock.calls).toEqual([
[
{
name: JobName.METADATA_EXTRACTION,
name: JobName.SIDECAR_DISCOVERY,
data: {
id: assetStub.image.id,
source: 'upload',
},
},
],
Expand Down
5 changes: 3 additions & 2 deletions server/src/services/library.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -423,9 +423,10 @@ export class LibraryService extends BaseService {
async queuePostSyncJobs(asset: AssetEntity) {
this.logger.debug(`Queueing metadata extraction for: ${asset.originalPath}`);

// We queue a sidecar discovery which, in turn, queues metadata extraction
await this.jobRepository.queue({
name: JobName.METADATA_EXTRACTION,
data: { id: asset.id, source: 'library-import' },
name: JobName.SIDECAR_DISCOVERY,
data: { id: asset.id },
});
}

Expand Down
22 changes: 9 additions & 13 deletions server/src/services/metadata.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,23 +148,13 @@ export class MetadataService extends BaseService {
}

@OnJob({ name: JobName.METADATA_EXTRACTION, queue: QueueName.METADATA_EXTRACTION })
async handleMetadataExtraction({ id, source }: JobOf<JobName.METADATA_EXTRACTION>): Promise<JobStatus> {
this.logger.verbose(`Extracting metadata for asset ${id}`);

async handleMetadataExtraction({ id }: JobOf<JobName.METADATA_EXTRACTION>): Promise<JobStatus> {
const { metadata, reverseGeocoding } = await this.getConfig({ withCache: true });

if (source === 'library-import') {
await this.processSidecar(id, false);
}

const [asset] = await this.assetRepository.getByIds([id], { faces: { person: false } });

if (!asset) {
return JobStatus.FAILED;
}

this.logger.verbose(`Sidecar path: ${asset.sidecarPath}`);

const stats = await this.storageRepository.stat(asset.originalPath);

const exifTags = await this.getExifTags(asset);
Expand Down Expand Up @@ -708,7 +698,7 @@ export class MetadataService extends BaseService {
return JobStatus.FAILED;
}

if (!isSync && (!asset.isVisible || asset.sidecarPath)) {
if (!isSync && (!asset.isVisible || asset.sidecarPath) && !asset.isExternal) {
return JobStatus.FAILED;
}

Expand All @@ -730,9 +720,15 @@ export class MetadataService extends BaseService {
sidecarPath = sidecarPathWithoutExt;
}

if (asset.isExternal) {
if (sidecarPath !== asset.sidecarPath) {
await this.assetRepository.update({ id: asset.id, sidecarPath });
}
return JobStatus.SUCCESS;
}

if (sidecarPath) {
await this.assetRepository.update({ id: asset.id, sidecarPath });
this.logger.verbose(`Sidecar discovered at ${sidecarPath} for asset ${asset.id} at `);
return JobStatus.SUCCESS;
}

Expand Down

0 comments on commit 8868d38

Please sign in to comment.