Using Serilog. Added partial OBS batch request support. Added update checking. Added more commands. Added enabled/disabled TTS voices. And more.
This commit is contained in:
@ -1,35 +1,41 @@
|
||||
using CommonSocketLibrary.Common;
|
||||
using CommonSocketLibrary.Socket.Manager;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Serilog;
|
||||
|
||||
namespace TwitchChatTTS.Hermes.Socket.Managers
|
||||
{
|
||||
public class HermesHandlerManager : WebSocketHandlerManager
|
||||
{
|
||||
public HermesHandlerManager(ILogger<HermesHandlerManager> logger, IServiceProvider provider) : base(logger) {
|
||||
public HermesHandlerManager(ILogger logger, IServiceProvider provider) : base(logger)
|
||||
{
|
||||
//Add(provider.GetRequiredService<HeartbeatHandler>());
|
||||
try {
|
||||
try
|
||||
{
|
||||
var basetype = typeof(IWebSocketHandler);
|
||||
var assembly = GetType().Assembly;
|
||||
var types = assembly.GetTypes().Where(t => t.IsClass && basetype.IsAssignableFrom(t) && t.AssemblyQualifiedName?.Contains(".Hermes.") == true);
|
||||
|
||||
foreach (var type in types) {
|
||||
foreach (var type in types)
|
||||
{
|
||||
var key = "hermes-" + 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 hermes websocket handler: " + type.AssemblyQualifiedName);
|
||||
if (handler == null)
|
||||
{
|
||||
logger.Error("Failed to find hermes websocket handler: " + type.AssemblyQualifiedName);
|
||||
continue;
|
||||
}
|
||||
|
||||
Logger.LogDebug($"Linked type {type.AssemblyQualifiedName} to hermes websocket handlers.");
|
||||
|
||||
Logger.Debug($"Linked type {type.AssemblyQualifiedName} to hermes websocket handlers.");
|
||||
Add(handler);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.LogError(e, "Failed to load hermes websocket handler types.");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.Error(e, "Failed to load hermes websocket handler types.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,14 +3,14 @@ using CommonSocketLibrary.Abstract;
|
||||
using CommonSocketLibrary.Common;
|
||||
using CommonSocketLibrary.Socket.Manager;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Serilog;
|
||||
|
||||
namespace TwitchChatTTS.Hermes.Socket.Managers
|
||||
{
|
||||
public class HermesHandlerTypeManager : WebSocketHandlerTypeManager
|
||||
{
|
||||
public HermesHandlerTypeManager(
|
||||
ILogger<HermesHandlerTypeManager> factory,
|
||||
ILogger factory,
|
||||
[FromKeyedServices("hermes")] HandlerManager<WebSocketClient, IWebSocketHandler> handlers
|
||||
) : base(factory, handlers)
|
||||
{
|
||||
@ -20,12 +20,12 @@ namespace TwitchChatTTS.Hermes.Socket.Managers
|
||||
{
|
||||
if (handlerType == null)
|
||||
return null;
|
||||
|
||||
|
||||
var name = handlerType.Namespace + "." + handlerType.Name;
|
||||
name = name.Replace(".Handlers.", ".Data.")
|
||||
.Replace("Handler", "Message")
|
||||
.Replace("TwitchChatTTS.Hermes.", "HermesSocketLibrary.");
|
||||
|
||||
|
||||
return Assembly.Load("HermesSocketLibrary").GetType(name);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user