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:
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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}";
|
||||
|
@ -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.");
|
||||
|
Reference in New Issue
Block a user