Refactored Lua string escaping into a shared utility class

This commit is contained in:
Thorsten Sommer 2026-02-05 11:10:34 +01:00
parent dcfaf22859
commit ffdabae8b4
Signed by untrusted user who does not match committer: tsommer
GPG Key ID: 371BBA77A02C0108
4 changed files with 52 additions and 69 deletions

View File

@ -136,18 +136,18 @@ public sealed record EmbeddingProvider(
{
return $$"""
CONFIG["EMBEDDING_PROVIDERS"][#CONFIG["EMBEDDING_PROVIDERS"]+1] = {
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
["Name"] = "{{EscapeLuaString(this.Name)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Id"] = "{{LuaTools.EscapeLuaString(NormalizeId(this.Id))}}",
["Name"] = "{{LuaTools.EscapeLuaString(this.Name)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Host"] = "{{this.Host}}",
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
["Model"] = {
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
["Host"] = "{{this.Host}}",
["Hostname"] = "{{LuaTools.EscapeLuaString(this.Hostname)}}",
["Model"] = {
["Id"] = "{{LuaTools.EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{LuaTools.EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
}
private static string NormalizeId(string? id)
@ -158,15 +158,4 @@ public sealed record EmbeddingProvider(
return Guid.NewGuid().ToString();
}
private static string EscapeLuaString(string? value)
{
if (string.IsNullOrEmpty(value))
return string.Empty;
return value
.Replace("\\", "\\\\")
.Replace("\"", "\\\"")
.Replace("\r", "\\r")
.Replace("\n", "\\n");
}
}

View File

@ -201,20 +201,20 @@ public sealed record Provider(
return $$"""
CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = {
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
["InstanceName"] = "{{EscapeLuaString(this.InstanceName)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Host"] = "{{this.Host}}",
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
{{hfInferenceProviderLine}}
["AdditionalJsonApiParameters"] = "{{EscapeLuaString(this.AdditionalJsonApiParameters)}}",
["Model"] = {
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
["Id"] = "{{LuaTools.EscapeLuaString(NormalizeId(this.Id))}}",
["InstanceName"] = "{{LuaTools.EscapeLuaString(this.InstanceName)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Host"] = "{{this.Host}}",
["Hostname"] = "{{LuaTools.EscapeLuaString(this.Hostname)}}",
{{hfInferenceProviderLine}}
["AdditionalJsonApiParameters"] = "{{LuaTools.EscapeLuaString(this.AdditionalJsonApiParameters)}}",
["Model"] = {
["Id"] = "{{LuaTools.EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{LuaTools.EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
}
private static string NormalizeId(string? id)
@ -225,15 +225,4 @@ public sealed record Provider(
return Guid.NewGuid().ToString();
}
private static string EscapeLuaString(string? value)
{
if (string.IsNullOrEmpty(value))
return string.Empty;
return value
.Replace("\\", "\\\\")
.Replace("\"", "\\\"")
.Replace("\r", "\\r")
.Replace("\n", "\\n");
}
}

View File

@ -136,18 +136,18 @@ public sealed record TranscriptionProvider(
{
return $$"""
CONFIG["TRANSCRIPTION_PROVIDERS"][#CONFIG["TRANSCRIPTION_PROVIDERS"]+1] = {
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
["Name"] = "{{EscapeLuaString(this.Name)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Id"] = "{{LuaTools.EscapeLuaString(NormalizeId(this.Id))}}",
["Name"] = "{{LuaTools.EscapeLuaString(this.Name)}}",
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
["Host"] = "{{this.Host}}",
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
["Model"] = {
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
["Host"] = "{{this.Host}}",
["Hostname"] = "{{LuaTools.EscapeLuaString(this.Hostname)}}",
["Model"] = {
["Id"] = "{{LuaTools.EscapeLuaString(this.Model.Id)}}",
["DisplayName"] = "{{LuaTools.EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
},
}
""";
}
private static string NormalizeId(string? id)
@ -158,15 +158,4 @@ public sealed record TranscriptionProvider(
return Guid.NewGuid().ToString();
}
private static string EscapeLuaString(string? value)
{
if (string.IsNullOrEmpty(value))
return string.Empty;
return value
.Replace("\\", "\\\\")
.Replace("\"", "\\\"")
.Replace("\r", "\\r")
.Replace("\n", "\\n");
}
}

View File

@ -0,0 +1,16 @@
namespace AIStudio.Tools;
public static class LuaTools
{
public static string EscapeLuaString(string? value)
{
if (string.IsNullOrEmpty(value))
return string.Empty;
return value
.Replace("\\", "\\\\")
.Replace("\"", "\\\"")
.Replace("\r", "\\r")
.Replace("\n", "\\n");
}
}