Beispiel #1
0
        /// <summary>
        /// Perform a one-time migration of smart match info from the plugin configuration to the SQLite database.
        /// </summary>
        /// <param name="manager">The manager to use for migrating the configuration.</param>
        /// <param name="service">The file organization service to use to save the migrated <see cref="SmartMatchResult"/> records.</param>
        public static void ConvertSmartMatchInfo(this IConfigurationManager manager, IFileOrganizationService service)
        {
            var options = manager.GetConfiguration <AutoOrganizeOptions>(AutoOrganizeOptionsKey);

            if (!options.Converted)
            {
                options.Converted = true;

#pragma warning disable CS0618 // Type or member is obsolete
                foreach (SmartMatchInfo optionsSmartMatchInfo in options.SmartMatchInfos)
#pragma warning restore CS0618 // Type or member is obsolete
                {
                    var result = new SmartMatchResult
                    {
                        DisplayName   = optionsSmartMatchInfo.DisplayName,
                        ItemName      = optionsSmartMatchInfo.ItemName,
                        OrganizerType = optionsSmartMatchInfo.OrganizerType,
                    };
                    result.MatchStrings.AddRange(optionsSmartMatchInfo.MatchStrings);
                    service.SaveResult(result, CancellationToken.None);
                }

                manager.SaveAutoOrganizeOptions(options);
            }
        }
 public OrganizerScheduledTask(IDirectoryWatchers directoryWatchers, ILibraryManager libraryManager, ILogger logger, IFileSystem fileSystem, IServerConfigurationManager config, IFileOrganizationService organizationService)
 {
     _directoryWatchers = directoryWatchers;
     _libraryManager = libraryManager;
     _logger = logger;
     _fileSystem = fileSystem;
     _config = config;
     _organizationService = organizationService;
 }
 public EpisodeFileOrganizer(IFileOrganizationService organizationService, IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager, IDirectoryWatchers directoryWatchers)
 {
     _organizationService = organizationService;
     _config = config;
     _fileSystem = fileSystem;
     _logger = logger;
     _libraryManager = libraryManager;
     _directoryWatchers = directoryWatchers;
 }
 public TvFolderOrganizer(ILibraryManager libraryManager, ILogger logger, IFileSystem fileSystem, ILibraryMonitor libraryMonitor, IFileOrganizationService organizationService, IServerConfigurationManager config, IProviderManager providerManager)
 {
     _libraryManager = libraryManager;
     _logger = logger;
     _fileSystem = fileSystem;
     _libraryMonitor = libraryMonitor;
     _organizationService = organizationService;
     _config = config;
     _providerManager = providerManager;
 }
Beispiel #5
0
 public MovieFileOrganizer(IFileOrganizationService organizationService, IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager)
 {
     _organizationService = organizationService;
     _config          = config;
     _fileSystem      = fileSystem;
     _logger          = logger;
     _libraryManager  = libraryManager;
     _libraryMonitor  = libraryMonitor;
     _providerManager = providerManager;
 }
Beispiel #6
0
 public EpisodeFileOrganizer(
     IFileOrganizationService organizationService,
     IFileSystem fileSystem,
     ILogger <EpisodeFileOrganizer> logger,
     ILibraryManager libraryManager,
     ILibraryMonitor libraryMonitor,
     IProviderManager providerManager)
 {
     _organizationService = organizationService;
     _fileSystem          = fileSystem;
     _logger          = logger;
     _libraryManager  = libraryManager;
     _libraryMonitor  = libraryMonitor;
     _providerManager = providerManager;
 }
 public MovieFileOrganizer(
     IFileOrganizationService organizationService,
     IFileSystem fileSystem,
     ILogger <MovieFileOrganizer> logger,
     ILibraryManager libraryManager,
     ILibraryMonitor libraryMonitor,
     IProviderManager providerManager,
     NamingOptions namingOptions)
 {
     _organizationService = organizationService;
     _fileSystem          = fileSystem;
     _logger          = logger;
     _libraryManager  = libraryManager;
     _libraryMonitor  = libraryMonitor;
     _providerManager = providerManager;
     _namingOptions   = namingOptions;
 }
 public TvFolderOrganizer(
     ILibraryManager libraryManager,
     ILoggerFactory loggerFactory,
     IFileSystem fileSystem,
     ILibraryMonitor libraryMonitor,
     IFileOrganizationService organizationService,
     IServerConfigurationManager config,
     IProviderManager providerManager)
 {
     _libraryManager      = libraryManager;
     _loggerFactory       = loggerFactory;
     _logger              = loggerFactory.CreateLogger <TvFolderOrganizer>();
     _fileSystem          = fileSystem;
     _libraryMonitor      = libraryMonitor;
     _organizationService = organizationService;
     _config              = config;
     _providerManager     = providerManager;
 }
 public TvFolderOrganizer(
     ILibraryManager libraryManager,
     ILoggerFactory loggerFactory,
     IFileSystem fileSystem,
     ILibraryMonitor libraryMonitor,
     IFileOrganizationService organizationService,
     IProviderManager providerManager,
     NamingOptions namingOptions)
 {
     _libraryManager      = libraryManager;
     _loggerFactory       = loggerFactory;
     _logger              = loggerFactory.CreateLogger <TvFolderOrganizer>();
     _fileSystem          = fileSystem;
     _libraryMonitor      = libraryMonitor;
     _organizationService = organizationService;
     _providerManager     = providerManager;
     _namingOptions       = namingOptions;
 }
Beispiel #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="jsonSerializer"></param>
        /// <param name="sessionManager"> </param>
        /// <param name="userDataManager"></param>
        /// <param name="libraryManager"> </param>
        /// <param name="logger"></param>
        /// <param name="httpClient"></param>
        /// <param name="appHost"></param>
        /// <param name="fileSystem"></param>
        public ServerEntryPoint(
            IServerConfigurationManager configurationManager,
            ILibraryManager libraryManager,
            ILibraryMonitor libraryMonitor,
            ILogManager logger,
            IServerApplicationHost appHost,
            IHttpServer httpServer,
            IFileSystem fileSystem,
            ILocalizationManager localizationManager,
            IServerManager serverManager,
            IProviderManager providerManager,
            IFileOrganizationService fileOrganizationService)
        {
            Instance                 = this;
            _libraryManager          = libraryManager;
            _libraryMonitor          = libraryMonitor;
            _logger                  = logger.GetLogger("MovieOrganizer");
            _appHost                 = appHost;
            _fileSystem              = fileSystem;
            _configurationManager    = configurationManager;
            _httpServer              = httpServer;
            _localizationManager     = localizationManager;
            _serverManager           = serverManager;
            _providerManager         = providerManager;
            _fileOrganizationService = fileOrganizationService;

            var serviceStackHost = (IAppHost)httpServer;

            serviceStackHost.RawHttpHandlers.Add(ProcessRequestRaw);

            _service = new MovieOrganizerService(
                _configurationManager,
                logger,
                _fileSystem,
                _appHost,
                _libraryMonitor,
                _libraryManager,
                _localizationManager,
                _serverManager,
                _providerManager,
                _fileOrganizationService);

            _api = new MovieOrganizerApi(logger, _service, _libraryManager);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="jsonSerializer"></param>
        /// <param name="sessionManager"> </param>
        /// <param name="userDataManager"></param>
        /// <param name="libraryManager"> </param>
        /// <param name="logger"></param>
        /// <param name="httpClient"></param>
        /// <param name="appHost"></param>
        /// <param name="fileSystem"></param>
        public ServerEntryPoint(
            IServerConfigurationManager configurationManager, 
            ILibraryManager libraryManager,
            ILibraryMonitor libraryMonitor, 
            ILogManager logger, 
            IServerApplicationHost appHost, 
            IHttpServer httpServer, 
            IFileSystem fileSystem,
            ILocalizationManager localizationManager,
            IServerManager serverManager,
            IProviderManager providerManager,
            IFileOrganizationService fileOrganizationService)
        {
            Instance = this;
            _libraryManager = libraryManager;
            _libraryMonitor = libraryMonitor;
            _logger = logger.GetLogger("MovieOrganizer");
            _appHost = appHost;
            _fileSystem = fileSystem;
            _configurationManager = configurationManager;
            _httpServer = httpServer;
            _localizationManager = localizationManager;
            _serverManager = serverManager;
            _providerManager = providerManager;
            _fileOrganizationService = fileOrganizationService;

            var serviceStackHost = (IAppHost)httpServer;
            serviceStackHost.RawHttpHandlers.Add(ProcessRequestRaw);

            _service = new MovieOrganizerService(
                _configurationManager, 
                logger, 
                _fileSystem, 
                _appHost,
                _libraryMonitor,
                _libraryManager,
                _localizationManager,
                _serverManager,
                _providerManager,
                _fileOrganizationService);

            _api = new MovieOrganizerApi(logger, _service, _libraryManager);
        }
        public void Run()
        {
            try
            {
                Repository = GetRepository();
            }
            catch (Exception ex)
            {
                _logger.ErrorException("Error initializing auto-organize database", ex);
            }

            Current = this;
            FileOrganizationService = new FileOrganizationService(_taskManager, Repository, _logger, _libraryMonitor, _libraryManager, _config, _fileSystem, _providerManager);

            FileOrganizationService.ItemAdded   += _organizationService_ItemAdded;
            FileOrganizationService.ItemRemoved += _organizationService_ItemRemoved;
            FileOrganizationService.ItemUpdated += _organizationService_ItemUpdated;
            FileOrganizationService.LogReset    += _organizationService_LogReset;
        }
        /// <inheritdoc/>
        public Task RunAsync()
        {
            try
            {
                _repository = GetRepository();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error initializing auto-organize database");
            }

            Current = this;
            FileOrganizationService = new FileOrganizationService(_taskManager, _repository, _loggerFactory, _libraryMonitor, _libraryManager, _config, _fileSystem, _providerManager);

            // Convert Config
            _config.ConvertSmartMatchInfo(FileOrganizationService);

            return(Task.CompletedTask);
        }
Beispiel #14
0
        public EmbyTV(IApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ISecurityManager security, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService)
        {
            Current = this;

            _appHpst = appHost;
            _logger = logger;
            _httpClient = httpClient;
            _config = config;
            _fileSystem = fileSystem;
            _security = security;
            _libraryManager = libraryManager;
            _libraryMonitor = libraryMonitor;
            _providerManager = providerManager;
            _organizationService = organizationService;
            _liveTvManager = (LiveTvManager)liveTvManager;
            _jsonSerializer = jsonSerializer;

            _recordingProvider = new ItemDataProvider<RecordingInfo>(jsonSerializer, _logger, Path.Combine(DataPath, "recordings"), (r1, r2) => string.Equals(r1.Id, r2.Id, StringComparison.OrdinalIgnoreCase));
            _seriesTimerProvider = new SeriesTimerManager(jsonSerializer, _logger, Path.Combine(DataPath, "seriestimers"));
            _timerProvider = new TimerManager(jsonSerializer, _logger, Path.Combine(DataPath, "timers"));
            _timerProvider.TimerFired += _timerProvider_TimerFired;
        }
        public static void Convert(this IConfigurationManager manager, IFileOrganizationService service)
        {
            var options = manager.GetConfiguration <AutoOrganizeOptions>(AutoOrganizeOptionsKey);

            if (!options.Converted)
            {
                options.Converted = true;

                foreach (SmartMatchInfo optionsSmartMatchInfo in options.SmartMatchInfos)
                {
                    service.SaveResult(new SmartMatchResult
                    {
                        DisplayName   = optionsSmartMatchInfo.DisplayName,
                        ItemName      = optionsSmartMatchInfo.ItemName,
                        OrganizerType = optionsSmartMatchInfo.OrganizerType,
                        MatchStrings  = optionsSmartMatchInfo.MatchStrings.ToList(),
                    }, CancellationToken.None);
                }

                manager.SaveAutoOrganizeOptions(options);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MetadataViewerService" /> class.
 /// </summary>
 /// <param name="httpClient">The HTTP client.</param>
 /// <param name="configurationManager">The configuration manager.</param>
 /// <param name="libraryMonitor">The directory watchers.</param>
 /// <param name="logManager">The log manager.</param>
 /// <param name="fileSystem">The file system.</param>
 public MovieOrganizerService(
     IServerConfigurationManager config, 
     ILogManager logManager, 
     IFileSystem fileSystem, 
     IServerApplicationHost appHost,
     ILibraryMonitor libraryMonitor,
     ILibraryManager libraryManager,
     ILocalizationManager localizationManager,
     IServerManager serverManager,
     IProviderManager providerManager,
     IFileOrganizationService fileOrganizationService)
 {
     _logger = logManager.GetLogger("MovieOrganizer");
     _config = config;
     _fileSystem = fileSystem;
     _libraryMonitor = libraryMonitor;
     _libraryManager = libraryManager;
     _localizationManager = localizationManager;
     _serverManager = serverManager;
     _providerManager = providerManager;
     _fileOrganizationService = fileOrganizationService;
 }
Beispiel #17
0
        public EmbyTV(IApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ISecurityManager security, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService)
        {
            Current = this;

            _appHpst             = appHost;
            _logger              = logger;
            _httpClient          = httpClient;
            _config              = config;
            _fileSystem          = fileSystem;
            _security            = security;
            _libraryManager      = libraryManager;
            _libraryMonitor      = libraryMonitor;
            _providerManager     = providerManager;
            _organizationService = organizationService;
            _liveTvManager       = (LiveTvManager)liveTvManager;
            _jsonSerializer      = jsonSerializer;

            _recordingProvider         = new ItemDataProvider <RecordingInfo>(jsonSerializer, _logger, Path.Combine(DataPath, "recordings"), (r1, r2) => string.Equals(r1.Id, r2.Id, StringComparison.OrdinalIgnoreCase));
            _seriesTimerProvider       = new SeriesTimerManager(jsonSerializer, _logger, Path.Combine(DataPath, "seriestimers"));
            _timerProvider             = new TimerManager(jsonSerializer, _logger, Path.Combine(DataPath, "timers"));
            _timerProvider.TimerFired += _timerProvider_TimerFired;
        }
Beispiel #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MetadataViewerService" /> class.
 /// </summary>
 /// <param name="httpClient">The HTTP client.</param>
 /// <param name="configurationManager">The configuration manager.</param>
 /// <param name="libraryMonitor">The directory watchers.</param>
 /// <param name="logManager">The log manager.</param>
 /// <param name="fileSystem">The file system.</param>
 public MovieOrganizerService(
     IServerConfigurationManager config,
     ILogManager logManager,
     IFileSystem fileSystem,
     IServerApplicationHost appHost,
     ILibraryMonitor libraryMonitor,
     ILibraryManager libraryManager,
     ILocalizationManager localizationManager,
     IServerManager serverManager,
     IProviderManager providerManager,
     IFileOrganizationService fileOrganizationService)
 {
     _logger                  = logManager.GetLogger("MovieOrganizer");
     _config                  = config;
     _fileSystem              = fileSystem;
     _libraryMonitor          = libraryMonitor;
     _libraryManager          = libraryManager;
     _localizationManager     = localizationManager;
     _serverManager           = serverManager;
     _providerManager         = providerManager;
     _fileOrganizationService = fileOrganizationService;
 }
Beispiel #19
0
        public EmbyTV(IServerApplicationHost appHost, ILogger logger, IJsonSerializer jsonSerializer, IHttpClient httpClient, IServerConfigurationManager config, ILiveTvManager liveTvManager, IFileSystem fileSystem, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IFileOrganizationService organizationService, IMediaEncoder mediaEncoder)
        {
            Current = this;

            _appHost = appHost;
            _logger = logger;
            _httpClient = httpClient;
            _config = config;
            _fileSystem = fileSystem;
            _libraryManager = libraryManager;
            _libraryMonitor = libraryMonitor;
            _providerManager = providerManager;
            _organizationService = organizationService;
            _mediaEncoder = mediaEncoder;
            _liveTvManager = (LiveTvManager)liveTvManager;
            _jsonSerializer = jsonSerializer;

            _seriesTimerProvider = new SeriesTimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "seriestimers"));
            _timerProvider = new TimerManager(fileSystem, jsonSerializer, _logger, Path.Combine(DataPath, "timers"), _logger);
            _timerProvider.TimerFired += _timerProvider_TimerFired;

            _config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
        }
        public Task RunAsync()
        {
            try
            {
                Repository = GetRepository();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error initializing auto-organize database");
            }

            Current = this;
            FileOrganizationService = new FileOrganizationService(_taskManager, Repository, _logger, _libraryMonitor, _libraryManager, _config, _fileSystem, _providerManager);

            FileOrganizationService.ItemAdded   += _organizationService_ItemAdded;
            FileOrganizationService.ItemRemoved += _organizationService_ItemRemoved;
            FileOrganizationService.ItemUpdated += _organizationService_ItemUpdated;
            FileOrganizationService.LogReset    += _organizationService_LogReset;

            // Convert Config
            _config.Convert(FileOrganizationService);

            return(Task.CompletedTask);
        }
 public FileOrganizationNotifier(ILogger logger, IFileOrganizationService organizationService, ISessionManager sessionManager, ITaskManager taskManager)
 {
     _organizationService = organizationService;
     _sessionManager = sessionManager;
     _taskManager = taskManager;
 }
Beispiel #22
0
 public FileOrganizationService(IFileOrganizationService iFileOrganizationService, IJsonSerializer jsonSerializer)
 {
     _iFileOrganizationService = iFileOrganizationService;
     _jsonSerializer           = jsonSerializer;
 }
Beispiel #23
0
 public FileOrganizationNotifier(ILogger logger, IFileOrganizationService organizationService, ISessionManager sessionManager, ITaskManager taskManager)
 {
     _organizationService = organizationService;
     _sessionManager      = sessionManager;
     _taskManager         = taskManager;
 }
 public FileOrganizationService(IFileOrganizationService iFileOrganizationService)
 {
     _iFileOrganizationService = iFileOrganizationService;
 }
 public MovieFileOrganizer(IFileOrganizationService organizationService, IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IServerManager serverManager, ILocalizationManager localizationManager) :
     base(organizationService, config, fileSystem, logger, libraryManager, libraryMonitor, providerManager, serverManager, localizationManager)
 {
 }
 public MovieFileOrganizer(IFileOrganizationService organizationService, IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IProviderManager providerManager, IServerManager serverManager, ILocalizationManager localizationManager) :
     base(organizationService, config, fileSystem, logger, libraryManager, libraryMonitor, providerManager, serverManager, localizationManager)
 {
 }