Added several request messages. Added redemptions. Added life TTS voice changes. A bunch of stuffs.

This commit is contained in:
Tom
2024-08-10 19:36:32 +00:00
parent 95bc073a73
commit c771a56971
36 changed files with 552 additions and 235 deletions

View File

@@ -12,17 +12,19 @@ using Serilog;
using Serilog.Events;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
using Microsoft.AspNetCore.Connections;
var deserializer = new DeserializerBuilder()
var yamlDeserializer = new DeserializerBuilder()
.WithNamingConvention(HyphenatedNamingConvention.Instance)
.Build();
var configFileName = "server.config.yml";
if (File.Exists("server.config." + Environment.GetEnvironmentVariable("TTS_ENV").ToLower() + ".yml"))
configFileName = "server.config." + Environment.GetEnvironmentVariable("TTS_ENV").ToLower() + ".yml";
var environment = Environment.GetEnvironmentVariable("TTS_ENV")!.ToLower();
if (File.Exists("server.config." + environment + ".yml"))
configFileName = "server.config." + environment + ".yml";
var configContent = File.ReadAllText(configFileName);
var configuration = deserializer.Deserialize<ServerConfiguration>(configContent);
var configuration = yamlDeserializer.Deserialize<ServerConfiguration>(configContent);
if (configuration.Environment.ToUpper() != "QA" && configuration.Environment.ToUpper() != "PROD")
throw new Exception("Invalid environment set.");
@@ -36,12 +38,20 @@ builder.Services.Configure<ForwardedHeadersOptions>(options =>
});
builder.WebHost.UseUrls($"http://{configuration.WebsocketServer.Host}:{configuration.WebsocketServer.Port}");
var logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.Enrich.FromLogContext()
.WriteTo.File("logs/log.log", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7)
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information)
.CreateLogger();
var loggerConfiguration = new LoggerConfiguration();
if (configuration.Environment.ToUpper() == "QA")
loggerConfiguration.MinimumLevel.Verbose();
else
loggerConfiguration.MinimumLevel.Debug();
loggerConfiguration.Enrich.FromLogContext()
.WriteTo.File($"logs/{configuration.Environment.ToUpper()}/serverlog-.log", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7);
if (configuration.Environment.ToUpper() == "QA")
loggerConfiguration.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Debug);
else
loggerConfiguration.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information);
var logger = loggerConfiguration.CreateLogger();
builder.Host.UseSerilog(logger);
builder.Logging.AddSerilog(logger);
@@ -54,32 +64,37 @@ s.AddSingleton<Database>();
// Socket message handlers
s.AddSingleton<Serilog.ILogger>(logger);
s.AddKeyedSingleton<ISocketHandler, HeartbeatHandler>("hermes-heartbeat");
s.AddKeyedSingleton<ISocketHandler, HermesLoginHandler>("hermes-hermeslogin");
s.AddKeyedSingleton<ISocketHandler, RequestHandler>("hermes-request");
s.AddKeyedSingleton<ISocketHandler, ErrorHandler>("hermes-error");
s.AddKeyedSingleton<ISocketHandler, ChatterHandler>("hermes-chatter");
s.AddKeyedSingleton<ISocketHandler, EmoteDetailsHandler>("hermes-emotedetails");
s.AddKeyedSingleton<ISocketHandler, EmoteUsageHandler>("hermes-emoteusage");
s.AddSingleton<ISocketHandler, HeartbeatHandler>();
s.AddSingleton<ISocketHandler, HermesLoginHandler>();
s.AddSingleton<ISocketHandler, RequestHandler>();
s.AddSingleton<ISocketHandler, LoggingHandler>();
s.AddSingleton<ISocketHandler, ChatterHandler>();
s.AddSingleton<ISocketHandler, EmoteDetailsHandler>();
s.AddSingleton<ISocketHandler, EmoteUsageHandler>();
// Request handlers
s.AddKeyedSingleton<IRequest, GetTTSUsers>("BanTTSUser");
s.AddKeyedSingleton<IRequest, GetTTSUsers>("GetTTSUsers");
s.AddKeyedSingleton<IRequest, GetTTSVoices>("GetTTSVoices");
s.AddKeyedSingleton<IRequest, GetTTSWordFilters>("GetTTSWordFilters");
s.AddKeyedSingleton<IRequest, CreateTTSUser>("CreateTTSUser");
s.AddKeyedSingleton<IRequest, CreateTTSVoice>("CreateTTSVoice");
s.AddKeyedSingleton<IRequest, DeleteTTSVoice>("DeleteTTSVoice");
s.AddKeyedSingleton<IRequest, UpdateTTSUser>("UpdateTTSUser");
s.AddKeyedSingleton<IRequest, UpdateTTSVoice>("UpdateTTSVoice");
s.AddKeyedSingleton<IRequest, GetChatterIds>("GetChatterIds");
s.AddKeyedSingleton<IRequest, GetEmotes>("GetEmotes");
s.AddKeyedSingleton<IRequest, UpdateTTSVoiceState>("UpdateTTSVoiceState");
s.AddSingleton<IRequest, GetTTSUsers>();
s.AddSingleton<IRequest, GetTTSVoices>();
s.AddSingleton<IRequest, GetTTSWordFilters>();
s.AddSingleton<IRequest, CreateTTSUser>();
s.AddSingleton<IRequest, CreateTTSVoice>();
s.AddSingleton<IRequest, DeleteTTSVoice>();
s.AddSingleton<IRequest, UpdateTTSUser>();
s.AddSingleton<IRequest, UpdateTTSVoice>();
s.AddSingleton<IRequest, GetChatterIds>();
s.AddSingleton<IRequest, GetDefaultTTSVoice>();
s.AddSingleton<IRequest, GetEmotes>();
s.AddSingleton<IRequest, GetEnabledTTSVoices>();
s.AddSingleton<IRequest, GetPermissions>();
s.AddSingleton<IRequest, GetRedemptions>();
s.AddSingleton<IRequest, GetRedeemableActions>();
s.AddSingleton<IRequest, UpdateTTSVoiceState>();
s.AddSingleton<IRequest, UpdateDefaultTTSVoice>();
s.AddSingleton<HermesSocketManager>();
s.AddSingleton<SocketHandlerManager>();
s.AddSingleton<RequestManager, ServerRequestManager>();
s.AddSingleton<JsonSerializerOptions>(new JsonSerializerOptions()
s.AddSingleton<IRequestManager, RequestManager>();
s.AddSingleton(new JsonSerializerOptions()
{
PropertyNameCaseInsensitive = false,
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower
@@ -89,10 +104,15 @@ s.AddSingleton<Server>();
var app = builder.Build();
app.UseForwardedHeaders();
app.UseSerilogRequestLogging();
app.UseWebSockets(new WebSocketOptions()
var wsOptions = new WebSocketOptions()
{
KeepAliveInterval = TimeSpan.FromSeconds(30)
});
};
// wsOptions.AllowedOrigins.Add("wss://tomtospeech.com");
//wsOptions.AllowedOrigins.Add("ws.tomtospeech.com");
//wsOptions.AllowedOrigins.Add("hermes-ws.goblincaves.com");
app.UseWebSockets(wsOptions);
var options = app.Services.GetRequiredService<JsonSerializerOptions>();
var server = app.Services.GetRequiredService<Server>();