forked from Cutlery/immich
cleanup
This commit is contained in:
parent
380ae35ca4
commit
f7f30a5939
@ -75,7 +75,7 @@ export enum JobName {
|
|||||||
LIBRARY_QUEUE_SCAN_ALL = 'library-queue-all-refresh',
|
LIBRARY_QUEUE_SCAN_ALL = 'library-queue-all-refresh',
|
||||||
LIBRARY_QUEUE_CLEANUP = 'library-queue-cleanup',
|
LIBRARY_QUEUE_CLEANUP = 'library-queue-cleanup',
|
||||||
LIBRARY_SCAN_OFFLINE = 'library-scan-offline',
|
LIBRARY_SCAN_OFFLINE = 'library-scan-offline',
|
||||||
LIBRARY_CHECK_IF_ASSET_ONLINE = 'asset-check-if-online',
|
LIBRARY_CHECK_OFFLINE = 'library-check-if-online',
|
||||||
LIBRARY_REMOVE_OFFLINE = 'library-remove-offline',
|
LIBRARY_REMOVE_OFFLINE = 'library-remove-offline',
|
||||||
|
|
||||||
// cleanup
|
// cleanup
|
||||||
@ -153,7 +153,7 @@ export const JOBS_TO_QUEUE: Record<JobName, QueueName> = {
|
|||||||
[JobName.LIBRARY_DELETE]: QueueName.LIBRARY,
|
[JobName.LIBRARY_DELETE]: QueueName.LIBRARY,
|
||||||
[JobName.LIBRARY_SCAN_OFFLINE]: QueueName.LIBRARY,
|
[JobName.LIBRARY_SCAN_OFFLINE]: QueueName.LIBRARY,
|
||||||
[JobName.LIBRARY_REMOVE_OFFLINE]: QueueName.LIBRARY,
|
[JobName.LIBRARY_REMOVE_OFFLINE]: QueueName.LIBRARY,
|
||||||
[JobName.LIBRARY_CHECK_IF_ASSET_ONLINE]: QueueName.LIBRARY,
|
[JobName.LIBRARY_CHECK_OFFLINE]: QueueName.LIBRARY,
|
||||||
[JobName.LIBRARY_QUEUE_SCAN_ALL]: QueueName.LIBRARY,
|
[JobName.LIBRARY_QUEUE_SCAN_ALL]: QueueName.LIBRARY,
|
||||||
[JobName.LIBRARY_QUEUE_CLEANUP]: QueueName.LIBRARY,
|
[JobName.LIBRARY_QUEUE_CLEANUP]: QueueName.LIBRARY,
|
||||||
};
|
};
|
||||||
|
@ -616,8 +616,8 @@ export class LibraryService extends EventEmitter {
|
|||||||
return JobStatus.SUCCESS;
|
return JobStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
async handleQueueOnlineStatusCheck(job: IEntityJob): Promise<JobStatus> {
|
async handleQueueOfflineCheck(job: IEntityJob): Promise<JobStatus> {
|
||||||
this.logger.log(`Checking files for online/offline status in library: ${job.id}`);
|
this.logger.log(`Finding offline assets in library: ${job.id}`);
|
||||||
const onlineAssets = usePagination(JOBS_ASSET_PAGINATION_SIZE, (pagination) =>
|
const onlineAssets = usePagination(JOBS_ASSET_PAGINATION_SIZE, (pagination) =>
|
||||||
this.assetRepository.getWith(pagination, WithProperty.IS_ONLINE, job.id),
|
this.assetRepository.getWith(pagination, WithProperty.IS_ONLINE, job.id),
|
||||||
);
|
);
|
||||||
@ -626,7 +626,7 @@ export class LibraryService extends EventEmitter {
|
|||||||
this.logger.debug(`Checking if ${assets.length} assets are still online`);
|
this.logger.debug(`Checking if ${assets.length} assets are still online`);
|
||||||
await this.jobRepository.queueAll(
|
await this.jobRepository.queueAll(
|
||||||
assets.map((asset) => ({
|
assets.map((asset) => ({
|
||||||
name: JobName.LIBRARY_CHECK_IF_ASSET_ONLINE,
|
name: JobName.LIBRARY_CHECK_OFFLINE,
|
||||||
data: { id: asset.id },
|
data: { id: asset.id },
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
@ -635,8 +635,8 @@ export class LibraryService extends EventEmitter {
|
|||||||
return JobStatus.SUCCESS;
|
return JobStatus.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if an online asset is offline
|
// Check if an asset is has no file, marking it as offline
|
||||||
async handleAssetOnlineCheck(job: IEntityJob): Promise<JobStatus> {
|
async handleOfflineCheck(job: IEntityJob): Promise<JobStatus> {
|
||||||
const asset = await this.assetRepository.getById(job.id);
|
const asset = await this.assetRepository.getById(job.id);
|
||||||
|
|
||||||
if (!asset || asset.isOffline) {
|
if (!asset || asset.isOffline) {
|
||||||
|
@ -93,7 +93,7 @@ export type JobItem =
|
|||||||
| { name: JobName.LIBRARY_DELETE; data: IEntityJob }
|
| { name: JobName.LIBRARY_DELETE; data: IEntityJob }
|
||||||
| { name: JobName.LIBRARY_QUEUE_SCAN_ALL; data: IBaseJob }
|
| { name: JobName.LIBRARY_QUEUE_SCAN_ALL; data: IBaseJob }
|
||||||
| { name: JobName.LIBRARY_SCAN_OFFLINE; data: IEntityJob }
|
| { name: JobName.LIBRARY_SCAN_OFFLINE; data: IEntityJob }
|
||||||
| { name: JobName.LIBRARY_CHECK_IF_ASSET_ONLINE; data: IEntityJob }
|
| { name: JobName.LIBRARY_CHECK_OFFLINE; data: IEntityJob }
|
||||||
| { name: JobName.LIBRARY_QUEUE_CLEANUP; data: IBaseJob };
|
| { name: JobName.LIBRARY_QUEUE_CLEANUP; data: IBaseJob };
|
||||||
|
|
||||||
export enum JobStatus {
|
export enum JobStatus {
|
||||||
|
@ -77,8 +77,8 @@ export class AppService {
|
|||||||
[JobName.LIBRARY_SCAN_ASSET]: (data) => this.libraryService.handleAssetRefresh(data),
|
[JobName.LIBRARY_SCAN_ASSET]: (data) => this.libraryService.handleAssetRefresh(data),
|
||||||
[JobName.LIBRARY_SCAN]: (data) => this.libraryService.handleQueueAssetRefresh(data),
|
[JobName.LIBRARY_SCAN]: (data) => this.libraryService.handleQueueAssetRefresh(data),
|
||||||
[JobName.LIBRARY_DELETE]: (data) => this.libraryService.handleDeleteLibrary(data),
|
[JobName.LIBRARY_DELETE]: (data) => this.libraryService.handleDeleteLibrary(data),
|
||||||
[JobName.LIBRARY_SCAN_OFFLINE]: (data) => this.libraryService.handleQueueOnlineStatusCheck(data),
|
[JobName.LIBRARY_SCAN_OFFLINE]: (data) => this.libraryService.handleQueueOfflineCheck(data),
|
||||||
[JobName.LIBRARY_CHECK_IF_ASSET_ONLINE]: (data) => this.libraryService.handleAssetOnlineCheck(data),
|
[JobName.LIBRARY_CHECK_OFFLINE]: (data) => this.libraryService.handleOfflineCheck(data),
|
||||||
[JobName.LIBRARY_REMOVE_OFFLINE]: (data) => this.libraryService.handleOfflineRemoval(data),
|
[JobName.LIBRARY_REMOVE_OFFLINE]: (data) => this.libraryService.handleOfflineRemoval(data),
|
||||||
[JobName.LIBRARY_QUEUE_SCAN_ALL]: (data) => this.libraryService.handleQueueAllScan(data),
|
[JobName.LIBRARY_QUEUE_SCAN_ALL]: (data) => this.libraryService.handleQueueAllScan(data),
|
||||||
[JobName.LIBRARY_QUEUE_CLEANUP]: () => this.libraryService.handleQueueCleanup(),
|
[JobName.LIBRARY_QUEUE_CLEANUP]: () => this.libraryService.handleQueueCleanup(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user