Added TTS flags. Fixed adding, modifying and loading TTS Filters. Changed TTS Filters loading from database to TTS Fitler Store on login ack.

This commit is contained in:
Tom
2025-01-15 14:10:57 +00:00
parent 00cea32cfa
commit b00c72ec2a
5 changed files with 24 additions and 17 deletions

View File

@ -20,6 +20,10 @@ namespace HermesSocketServer.Requests
var id = Guid.NewGuid();
string search = data["search"].ToString()!;
string replace = data["replace"].ToString()!;
int flag = 0;
if (data.TryGetValue("flag", out var flagObject)) {
int.TryParse(flagObject.ToString(), out flag);
}
var filter = new TTSWordFilter()
{
@ -27,6 +31,7 @@ namespace HermesSocketServer.Requests
UserId = channel.Id,
Search = search,
Replace = replace,
Flag = flag,
};
bool result = channel.Filters.Set(id.ToString(), filter);

View File

@ -6,7 +6,7 @@ namespace HermesSocketServer.Requests
public class UpdateRedemption : IRequest
{
public string Name => "update_redemption";
public string[] RequiredKeys => ["id", "redemption", "action", "order"];
public string[] RequiredKeys => ["id", "redemption", "action", "order", "state"];
private ILogger _logger;
public UpdateRedemption(ILogger logger)

View File

@ -21,6 +21,10 @@ namespace HermesSocketServer.Requests
var id = data["id"].ToString()!;
string search = data["search"].ToString()!;
string replace = data["replace"].ToString()!;
int flag = -1;
if (data.TryGetValue("flag", out var flagObject)) {
int.TryParse(flagObject.ToString(), out flag);
}
var filter = new TTSWordFilter()
{
@ -28,9 +32,15 @@ namespace HermesSocketServer.Requests
UserId = channel.Id,
Search = search,
Replace = replace,
Flag = flag,
};
bool result = channel.Filters.Set(id, filter);
bool result = channel.Filters.Modify(id, f => {
f.Search = search;
f.Replace = replace;
if (flag >= 0)
f.Flag = flag;
});
if (result)
{

View File

@ -91,6 +91,9 @@ namespace HermesSocketServer.Socket.Handlers
OwnerId = _configuration.Tts.OwnerId,
Admin = sender.Admin,
WebLogin = data.WebLogin,
WordFilters = channel.Filters.Get().Values,
DefaultTTSVoice = channel.User.DefaultVoice ?? _configuration.Tts.DefaultTtsVoice,
TTSVoicesAvailable = _voices.Get().ToDictionary(v => v.Key, v => v.Value.Name),
};
var userIdDict = new Dictionary<string, object>() { { "user", userId } };
@ -110,25 +113,12 @@ namespace HermesSocketServer.Socket.Handlers
})
);
ack.TTSVoicesAvailable = _voices.Get().ToDictionary(v => v.Key, v => v.Value.Name);
ack.EnabledTTSVoices = new List<string>();
string sql5 = $"SELECT v.name FROM \"TtsVoiceState\" s "
+ "INNER JOIN \"TtsVoice\" v ON s.\"ttsVoiceId\" = v.id "
+ "WHERE \"userId\" = @user AND state = true";
await _database.Execute(sql5, userIdDict, (r) => ack.EnabledTTSVoices.Add(r.GetString(0)));
ack.WordFilters = new List<TTSWordFilter>();
string sql6 = $"SELECT id, search, replace FROM \"TtsWordFilter\" WHERE \"userId\" = @user";
await _database.Execute(sql6, userIdDict, (r) => ack.WordFilters.Add(new TTSWordFilter()
{
Id = r.GetString(0),
Search = r.GetString(1),
Replace = r.GetString(2)
}));
ack.DefaultTTSVoice = channel.User.DefaultVoice ?? _configuration.Tts.DefaultTtsVoice;
await sender.Send(2, ack);
string version = data.MajorVersion == null ? "unknown" : $"{data.MajorVersion}.{data.MinorVersion}";

View File

@ -22,15 +22,17 @@ namespace HermesSocketServer.Store
public override async Task Load()
{
var data = new Dictionary<string, object>() { { "user", _userId } };
string sql = $"SELECT id, search, replace FROM \"TtsWordFilter\" WHERE \"userId\" = @user";
string sql = $"SELECT id, search, replace, flag FROM \"TtsWordFilter\" WHERE \"userId\" = @user";
await _database.Execute(sql, data, (reader) =>
{
var id = reader.GetString(0);
_store.Add(id.ToString(), new TTSWordFilter()
{
Id = id,
UserId = _userId,
Search = reader.GetString(1),
Replace = reader.GetString(2)
Replace = reader.GetString(2),
Flag = reader.GetInt32(3),
});
});
_logger.Information($"Loaded {_store.Count} TTS chatter voices from database.");