Пример #1
0
        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);
            }
        }
Пример #2
0
 public PlayActivityService(IRoadieSettings configuration, IRoadieDbContext dbContext, ICacheManager cacheManager,
                            ILogger logger, ScrobbleHandler scrobbleHandler)
     : base(configuration, null, dbContext, cacheManager, logger, null)
 {
     ScrobblerHandler = scrobbleHandler;
 }