mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-10-28 10:48:49 -04:00
95 lines
5.0 KiB
C#
95 lines
5.0 KiB
C#
using Cleanuparr.Api.Features.Auth;
|
|
using Cleanuparr.Infrastructure.Health;
|
|
using Cleanuparr.Infrastructure.Features.LazyLibrarian;
|
|
using Cleanuparr.Infrastructure.Events;
|
|
using Cleanuparr.Infrastructure.Events.Interfaces;
|
|
using Cleanuparr.Infrastructure.Features.Arr;
|
|
using Cleanuparr.Infrastructure.Features.Arr.ForceImport;
|
|
using Cleanuparr.Infrastructure.Features.Arr.Interfaces;
|
|
using Cleanuparr.Infrastructure.Features.Auth;
|
|
using Cleanuparr.Infrastructure.Features.BlacklistSync;
|
|
using Cleanuparr.Infrastructure.Features.DownloadCleaner.Services;
|
|
using Cleanuparr.Infrastructure.Features.DownloadClient;
|
|
using Cleanuparr.Infrastructure.Features.DownloadRemover;
|
|
using Cleanuparr.Infrastructure.Features.DownloadRemover.Interfaces;
|
|
using Cleanuparr.Infrastructure.Features.DryRun;
|
|
using Cleanuparr.Infrastructure.Features.Files;
|
|
using Cleanuparr.Infrastructure.Features.ItemStriker;
|
|
using Cleanuparr.Infrastructure.Features.Jobs;
|
|
using Cleanuparr.Infrastructure.Features.MalwareBlocker;
|
|
using Cleanuparr.Infrastructure.Helpers;
|
|
using Cleanuparr.Infrastructure.Interceptors;
|
|
using Cleanuparr.Infrastructure.Services;
|
|
using Cleanuparr.Infrastructure.Services.Interfaces;
|
|
using Cleanuparr.Infrastructure.Stats;
|
|
using Cleanuparr.Persistence;
|
|
using Cleanuparr.Persistence.Providers;
|
|
|
|
namespace Cleanuparr.Api.DependencyInjection;
|
|
|
|
public static class ServicesDI
|
|
{
|
|
public static IServiceCollection AddServices(this IServiceCollection services) =>
|
|
services
|
|
.AddScoped<EventsContext>()
|
|
.AddScoped<DataContext>()
|
|
.AddScoped<UsersContext>()
|
|
.AddSingleton<IDatabaseProvider>(_ => DatabaseProviderFactory.Current)
|
|
.AddSingleton<IJwtService, JwtService>()
|
|
.AddSingleton<IPasswordService, PasswordService>()
|
|
.AddSingleton<ITotpService, TotpService>()
|
|
.AddScoped<LoginAttemptTracker>()
|
|
.AddScoped<IPlexAuthService, PlexAuthService>()
|
|
.AddScoped<IOidcAuthService, OidcAuthService>()
|
|
.AddHostedService<OidcCleanupService>()
|
|
.AddScoped<IEventPublisher, EventPublisher>()
|
|
.AddHostedService<EventCleanupService>()
|
|
.AddScoped<IDryRunInterceptor, DryRunInterceptor>()
|
|
.AddScoped<IDryRunPurger, DryRunPurger>()
|
|
.AddSingleton<DryRunActivity>()
|
|
.AddScoped<CertificateValidationService>()
|
|
.AddScoped<ISonarrClient, SonarrClient>()
|
|
.AddScoped<ISportarrClient, SportarrClient>()
|
|
.AddScoped<IRadarrClient, RadarrClient>()
|
|
.AddScoped<ILidarrClient, LidarrClient>()
|
|
.AddScoped<IReadarrClient, ReadarrClient>()
|
|
.AddScoped<IWhisparrV2Client, WhisparrV2Client>()
|
|
.AddScoped<IWhisparrV3Client, WhisparrV3Client>()
|
|
.AddScoped<ILazyLibrarianService, LazyLibrarianService>()
|
|
.AddScoped<IInstanceHealthChecker, InstanceHealthChecker>()
|
|
.AddKeyedScoped<ILazyLibrarianEvaluator, LazyLibrarianServiceQC>(ILazyLibrarianEvaluator.QueueCleanerKey)
|
|
.AddKeyedScoped<ILazyLibrarianEvaluator, LazyLibrarianServiceCB>(ILazyLibrarianEvaluator.MalwareBlockerKey)
|
|
.AddScoped<IArrClientFactory, ArrClientFactory>()
|
|
.AddScoped<QueueCleaner>()
|
|
.AddScoped<BlacklistSynchronizer>()
|
|
.AddScoped<MalwareBlocker>()
|
|
.AddScoped<DownloadCleaner>()
|
|
.AddScoped<ISeedingRulesCleanupService, SeedingRulesCleanupService>()
|
|
.AddScoped<IUnlinkedDownloadsService, UnlinkedDownloadsService>()
|
|
.AddScoped<IDeadTorrentService, DeadTorrentService>()
|
|
.AddScoped<IOrphanedFilesCleanupService, OrphanedFilesCleanupService>()
|
|
.AddScoped<Seeker>()
|
|
.AddScoped<CustomFormatScoreSyncer>()
|
|
.AddScoped<IQueueItemRemover, QueueItemRemover>()
|
|
.AddScoped<IFilenameEvaluator, FilenameEvaluator>()
|
|
.AddScoped<IHardLinkFileService, HardLinkFileService>()
|
|
.AddScoped<IUnixHardLinkFileService, UnixHardLinkFileService>()
|
|
.AddScoped<IWindowsHardLinkFileService, WindowsHardLinkFileService>()
|
|
.AddScoped<IArrQueueReader, ArrQueueReader>()
|
|
.AddScoped<IDownloadServiceFactory, DownloadServiceFactory>()
|
|
.AddScoped<IStriker, Striker>()
|
|
.AddScoped<IForceImportService, ForceImportService>()
|
|
.AddScoped<IConnectivityChecker, ConnectivityChecker>()
|
|
.AddScoped<FileReader>()
|
|
.AddScoped<IQueueRuleManager, QueueRuleManager>()
|
|
.AddScoped<IQueueRuleEvaluator, QueueRuleEvaluator>()
|
|
.AddScoped<ISeedingRuleEvaluator, SeedingRuleEvaluator>()
|
|
.AddScoped<IRuleIntervalValidator, RuleIntervalValidator>()
|
|
.AddScoped<IStatsService, StatsService>()
|
|
.AddSingleton<IJobManagementService, JobManagementService>()
|
|
.AddSingleton<IBlocklistProvider, BlocklistProvider>()
|
|
.AddSingleton(TimeProvider.System)
|
|
.AddSingleton<AppStatusSnapshot>()
|
|
.AddHostedService<AppStatusRefreshService>()
|
|
.AddHostedService<SeekerCommandMonitor>();
|
|
} |