public async Task StartAsync(CancellationToken cancellationToken) { if (!Configuration.Dlna.IsEnabled) { Logger.LogInformation("DLNA service disabled."); return; } var server = new HttpServer(LoggerFactory.CreateLogger("HttpServer"), Configuration.Dlna.Port ?? 0); _authorizer = new HttpAuthorizer(server); if (Configuration.Dlna.AllowedIps.Any()) { _authorizer.AddMethod(new IPAddressAuthorizer(Configuration.Dlna.AllowedIps)); } if (Configuration.Dlna.AllowedUserAgents.Any()) { _authorizer.AddMethod(new UserAgentAuthorizer(Configuration.Dlna.AllowedUserAgents)); } DbContext = DbContextFactory.Create(Configuration); var defaultNotFoundImages = new DefaultNotFoundImages(LoggerFactory.CreateLogger("DefaultNotFoundImages"), Configuration); var imageService = new ImageService(Configuration, DbContext, CacheManager, LoggerFactory.CreateLogger("ImageService"), defaultNotFoundImages); var trackService = new TrackService(Configuration, DbContext, CacheManager, LoggerFactory.CreateLogger("TrackService")); var roadieScrobbler = new RoadieScrobbler(Configuration, LoggerFactory.CreateLogger("RoadieScrobbler"), DbContext, CacheManager); var scrobbleHandler = new ScrobbleHandler(Configuration, LoggerFactory.CreateLogger("ScrobbleHandler"), DbContext, CacheManager, roadieScrobbler); var playActivityService = new PlayActivityService(Configuration, DbContext, CacheManager, LoggerFactory.CreateLogger("PlayActivityService"), scrobbleHandler); var rs = new DlnaService(Configuration, DbContext, CacheManager, LoggerFactory.CreateLogger("DlnaService"), imageService, trackService, playActivityService); rs.Preload(); server.RegisterMediaServer(Configuration, LoggerFactory.CreateLogger("MediaMount"), rs); while (!cancellationToken.IsCancellationRequested) { await Task.Delay(5000, cancellationToken); } }
public PlayActivityService(IRoadieSettings configuration, IRoadieDbContext dbContext, ICacheManager cacheManager, ILogger logger, ScrobbleHandler scrobbleHandler) : base(configuration, null, dbContext, cacheManager, logger, null) { ScrobblerHandler = scrobbleHandler; }