Generate thumb on stream start
This commit is contained in:
@ -13,14 +13,16 @@ public class NostrStreamManager : IStreamManager
|
|||||||
private readonly StreamManagerContext _context;
|
private readonly StreamManagerContext _context;
|
||||||
private readonly StreamEventBuilder _eventBuilder;
|
private readonly StreamEventBuilder _eventBuilder;
|
||||||
private readonly IDvrStore _dvrStore;
|
private readonly IDvrStore _dvrStore;
|
||||||
|
private readonly ThumbnailService _thumbnailService;
|
||||||
|
|
||||||
public NostrStreamManager(ILogger<NostrStreamManager> logger, StreamManagerContext context,
|
public NostrStreamManager(ILogger<NostrStreamManager> logger, StreamManagerContext context,
|
||||||
StreamEventBuilder eventBuilder, IDvrStore dvrStore)
|
StreamEventBuilder eventBuilder, IDvrStore dvrStore, ThumbnailService thumbnailService)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_context = context;
|
_context = context;
|
||||||
_eventBuilder = eventBuilder;
|
_eventBuilder = eventBuilder;
|
||||||
_dvrStore = dvrStore;
|
_dvrStore = dvrStore;
|
||||||
|
_thumbnailService = thumbnailService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserStream GetStream()
|
public UserStream GetStream()
|
||||||
@ -51,6 +53,10 @@ public class NostrStreamManager : IStreamManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
await UpdateStreamState(UserStreamState.Live);
|
await UpdateStreamState(UserStreamState.Live);
|
||||||
|
|
||||||
|
#pragma warning disable CS4014
|
||||||
|
Task.Run(async () => await _thumbnailService.GenerateThumb(_context.UserStream));
|
||||||
|
#pragma warning restore CS4014
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task StreamStopped()
|
public async Task StreamStopped()
|
||||||
|
@ -13,15 +13,17 @@ public class StreamManagerFactory
|
|||||||
private readonly StreamEventBuilder _eventBuilder;
|
private readonly StreamEventBuilder _eventBuilder;
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
private readonly IDvrStore _dvrStore;
|
private readonly IDvrStore _dvrStore;
|
||||||
|
private readonly ThumbnailService _thumbnailService;
|
||||||
|
|
||||||
public StreamManagerFactory(StreamerContext db, ILoggerFactory loggerFactory, StreamEventBuilder eventBuilder,
|
public StreamManagerFactory(StreamerContext db, ILoggerFactory loggerFactory, StreamEventBuilder eventBuilder,
|
||||||
IServiceProvider serviceProvider, IDvrStore dvrStore)
|
IServiceProvider serviceProvider, IDvrStore dvrStore, ThumbnailService thumbnailService)
|
||||||
{
|
{
|
||||||
_db = db;
|
_db = db;
|
||||||
_loggerFactory = loggerFactory;
|
_loggerFactory = loggerFactory;
|
||||||
_eventBuilder = eventBuilder;
|
_eventBuilder = eventBuilder;
|
||||||
_serviceProvider = serviceProvider;
|
_serviceProvider = serviceProvider;
|
||||||
_dvrStore = dvrStore;
|
_dvrStore = dvrStore;
|
||||||
|
_thumbnailService = thumbnailService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IStreamManager> CreateStream(StreamInfo info)
|
public async Task<IStreamManager> CreateStream(StreamInfo info)
|
||||||
@ -80,7 +82,7 @@ public class StreamManagerFactory
|
|||||||
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
||||||
};
|
};
|
||||||
|
|
||||||
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
|
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IStreamManager> ForStream(Guid id)
|
public async Task<IStreamManager> ForStream(Guid id)
|
||||||
@ -100,7 +102,7 @@ public class StreamManagerFactory
|
|||||||
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
||||||
};
|
};
|
||||||
|
|
||||||
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
|
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IStreamManager> ForCurrentStream(string pubkey)
|
public async Task<IStreamManager> ForCurrentStream(string pubkey)
|
||||||
@ -120,7 +122,7 @@ public class StreamManagerFactory
|
|||||||
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
||||||
};
|
};
|
||||||
|
|
||||||
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
|
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IStreamManager> ForStream(StreamInfo info)
|
public async Task<IStreamManager> ForStream(StreamInfo info)
|
||||||
@ -148,6 +150,6 @@ public class StreamManagerFactory
|
|||||||
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
|
||||||
};
|
};
|
||||||
|
|
||||||
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
|
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user