Cleaned code up. Added OBS & 7tv ws support. Added dependency injection. App loads from yml file.
This commit is contained in:
31
OBS/Socket/Manager/OBSHandlerManager.cs
Normal file
31
OBS/Socket/Manager/OBSHandlerManager.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using CommonSocketLibrary.Socket.Manager;
|
||||
using CommonSocketLibrary.Common;
|
||||
|
||||
namespace TwitchChatTTS.OBS.Socket.Manager
|
||||
{
|
||||
public class OBSHandlerManager : WebSocketHandlerManager
|
||||
{
|
||||
public OBSHandlerManager(ILogger<OBSHandlerManager> logger, IServiceProvider provider) : base(logger) {
|
||||
var basetype = typeof(IWebSocketHandler);
|
||||
var assembly = GetType().Assembly;
|
||||
var types = assembly.GetTypes().Where(t => t.IsClass && basetype.IsAssignableFrom(t) && t.AssemblyQualifiedName?.Contains(".OBS.") == true);
|
||||
|
||||
foreach (var type in types) {
|
||||
var key = "obs-" + type.Name.Replace("Handlers", "Hand#lers")
|
||||
.Replace("Handler", "")
|
||||
.Replace("Hand#lers", "Handlers")
|
||||
.ToLower();
|
||||
var handler = provider.GetKeyedService<IWebSocketHandler>(key);
|
||||
if (handler == null) {
|
||||
logger.LogError("Failed to find obs websocket handler: " + type.AssemblyQualifiedName);
|
||||
continue;
|
||||
}
|
||||
|
||||
Logger.LogDebug($"Linked type {type.AssemblyQualifiedName} to obs websocket handler {handler.GetType().AssemblyQualifiedName}.");
|
||||
Add(handler);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
OBS/Socket/Manager/OBSHandlerTypeManager.cs
Normal file
19
OBS/Socket/Manager/OBSHandlerTypeManager.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using CommonSocketLibrary.Abstract;
|
||||
using CommonSocketLibrary.Common;
|
||||
using CommonSocketLibrary.Socket.Manager;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace TwitchChatTTS.OBS.Socket.Manager
|
||||
{
|
||||
public class OBSHandlerTypeManager : WebSocketHandlerTypeManager
|
||||
{
|
||||
public OBSHandlerTypeManager(
|
||||
ILogger<OBSHandlerTypeManager> factory,
|
||||
[FromKeyedServices("obs")] HandlerManager<WebSocketClient,
|
||||
IWebSocketHandler> handlers
|
||||
) : base(factory, handlers)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user