mirror of
https://github.com/Art051/immich.git
synced 2025-08-11 19:29:00 +00:00
* feat: unassign person faces * multiple improvements * chore: regenerate api * feat: improve face interactions in photos * fix: tests * fix: tests * optimize * fix: wrong assignment on complex-multiple re-assignments * fix: thumbnails with large photos * fix: complex reassign * fix: don't send people with faces * fix: person thumbnail generation * chore: regenerate api * add tess * feat: face box even when zoomed * fix: change feature photo * feat: make the blue icon hoverable * chore: regenerate api * feat: use websocket * fix: loading spinner when clicking on the done button * fix: use the svelte way * fix: tests * simplify * fix: unused vars * fix: remove unused code * fix: add migration * chore: regenerate api * ci: add unit tests * chore: regenerate api * feat: if a new person is created for a face and the server takes more than 15 seconds to generate the person thumbnail, don't wait for it * reorganize * chore: regenerate api * feat: global edit * pr feedback * pr feedback * simplify * revert test * fix: face generation * fix: tests * fix: face generation * fix merge * feat: search names in unmerge face selector modal * fix: merge face selector * simplify feature photo generation * fix: change endpoint * pr feedback * chore: fix merge * chore: fix merge * fix: tests * fix: edit & hide buttons * fix: tests * feat: show if person is hidden * feat: rename face to person * feat: split in new panel * copy-paste-error * pr feedback * fix: feature photo * do not leak faces * fix: unmerge modal * fix: merge modal event * feat(server): remove duplicates * fix: title for image thumbnails * fix: disable side panel when there's no face until next PR --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
87 lines
2.3 KiB
TypeScript
87 lines
2.3 KiB
TypeScript
import { DomainModule } from '@app/domain';
|
|
import { InfraModule } from '@app/infra';
|
|
import { AssetEntity } from '@app/infra/entities';
|
|
import { Module, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
import { APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { AssetRepository, IAssetRepository } from './api-v1/asset/asset-repository';
|
|
import { AssetController as AssetControllerV1 } from './api-v1/asset/asset.controller';
|
|
import { AssetService } from './api-v1/asset/asset.service';
|
|
import { AppGuard } from './app.guard';
|
|
import { AppService } from './app.service';
|
|
import {
|
|
APIKeyController,
|
|
ActivityController,
|
|
AlbumController,
|
|
AppController,
|
|
AssetController,
|
|
AssetsController,
|
|
AuditController,
|
|
AuthController,
|
|
FaceController,
|
|
JobController,
|
|
LibraryController,
|
|
OAuthController,
|
|
PartnerController,
|
|
PersonController,
|
|
SearchController,
|
|
ServerInfoController,
|
|
SharedLinkController,
|
|
SystemConfigController,
|
|
TagController,
|
|
UserController,
|
|
} from './controllers';
|
|
import { ErrorInterceptor, FileUploadInterceptor } from './interceptors';
|
|
|
|
@Module({
|
|
imports: [
|
|
//
|
|
DomainModule.register({ imports: [InfraModule] }),
|
|
ScheduleModule.forRoot(),
|
|
TypeOrmModule.forFeature([AssetEntity]),
|
|
],
|
|
controllers: [
|
|
ActivityController,
|
|
AssetsController,
|
|
AssetController,
|
|
AssetControllerV1,
|
|
AppController,
|
|
AlbumController,
|
|
APIKeyController,
|
|
AuditController,
|
|
AuthController,
|
|
FaceController,
|
|
JobController,
|
|
LibraryController,
|
|
OAuthController,
|
|
PartnerController,
|
|
SearchController,
|
|
ServerInfoController,
|
|
SharedLinkController,
|
|
SystemConfigController,
|
|
TagController,
|
|
UserController,
|
|
PersonController,
|
|
],
|
|
providers: [
|
|
{ provide: APP_INTERCEPTOR, useClass: ErrorInterceptor },
|
|
{ provide: APP_GUARD, useClass: AppGuard },
|
|
{ provide: IAssetRepository, useClass: AssetRepository },
|
|
AppService,
|
|
AssetService,
|
|
FileUploadInterceptor,
|
|
],
|
|
})
|
|
export class AppModule implements OnModuleInit, OnModuleDestroy {
|
|
constructor(private appService: AppService) {}
|
|
|
|
async onModuleInit() {
|
|
await this.appService.init();
|
|
}
|
|
|
|
async onModuleDestroy() {
|
|
await this.appService.destroy();
|
|
}
|
|
}
|