diff --git a/NostrStreamer/Services/StreamManager/NostrStreamManager.cs b/NostrStreamer/Services/StreamManager/NostrStreamManager.cs index dc387c6..1712725 100644 --- a/NostrStreamer/Services/StreamManager/NostrStreamManager.cs +++ b/NostrStreamer/Services/StreamManager/NostrStreamManager.cs @@ -13,14 +13,16 @@ public class NostrStreamManager : IStreamManager private readonly StreamManagerContext _context; private readonly StreamEventBuilder _eventBuilder; private readonly IDvrStore _dvrStore; + private readonly ThumbnailService _thumbnailService; public NostrStreamManager(ILogger logger, StreamManagerContext context, - StreamEventBuilder eventBuilder, IDvrStore dvrStore) + StreamEventBuilder eventBuilder, IDvrStore dvrStore, ThumbnailService thumbnailService) { _logger = logger; _context = context; _eventBuilder = eventBuilder; _dvrStore = dvrStore; + _thumbnailService = thumbnailService; } public UserStream GetStream() @@ -51,6 +53,10 @@ public class NostrStreamManager : IStreamManager } await UpdateStreamState(UserStreamState.Live); + +#pragma warning disable CS4014 + Task.Run(async () => await _thumbnailService.GenerateThumb(_context.UserStream)); +#pragma warning restore CS4014 } public async Task StreamStopped() diff --git a/NostrStreamer/Services/StreamManager/StreamManagerFactory.cs b/NostrStreamer/Services/StreamManager/StreamManagerFactory.cs index 02be31a..b00102d 100644 --- a/NostrStreamer/Services/StreamManager/StreamManagerFactory.cs +++ b/NostrStreamer/Services/StreamManager/StreamManagerFactory.cs @@ -13,15 +13,17 @@ public class StreamManagerFactory private readonly StreamEventBuilder _eventBuilder; private readonly IServiceProvider _serviceProvider; private readonly IDvrStore _dvrStore; + private readonly ThumbnailService _thumbnailService; public StreamManagerFactory(StreamerContext db, ILoggerFactory loggerFactory, StreamEventBuilder eventBuilder, - IServiceProvider serviceProvider, IDvrStore dvrStore) + IServiceProvider serviceProvider, IDvrStore dvrStore, ThumbnailService thumbnailService) { _db = db; _loggerFactory = loggerFactory; _eventBuilder = eventBuilder; _serviceProvider = serviceProvider; _dvrStore = dvrStore; + _thumbnailService = thumbnailService; } public async Task CreateStream(StreamInfo info) @@ -80,7 +82,7 @@ public class StreamManagerFactory EdgeApi = new SrsApi(_serviceProvider.GetRequiredService(), new Uri($"http://{stream.EdgeIp}:1985")) }; - return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore); + return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore, _thumbnailService); } public async Task ForStream(Guid id) @@ -100,7 +102,7 @@ public class StreamManagerFactory EdgeApi = new SrsApi(_serviceProvider.GetRequiredService(), new Uri($"http://{stream.EdgeIp}:1985")) }; - return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore); + return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore, _thumbnailService); } public async Task ForCurrentStream(string pubkey) @@ -120,7 +122,7 @@ public class StreamManagerFactory EdgeApi = new SrsApi(_serviceProvider.GetRequiredService(), new Uri($"http://{stream.EdgeIp}:1985")) }; - return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore); + return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore, _thumbnailService); } public async Task ForStream(StreamInfo info) @@ -148,6 +150,6 @@ public class StreamManagerFactory EdgeApi = new SrsApi(_serviceProvider.GetRequiredService(), new Uri($"http://{stream.EdgeIp}:1985")) }; - return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore); + return new NostrStreamManager(_loggerFactory.CreateLogger(), ctx, _eventBuilder, _dvrStore, _thumbnailService); } }