Skip to content

Commit fd46fa9

Browse files
authored
escape XML entities in TTS strings (#980)
1 parent 6e516d2 commit fd46fa9

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lib/pa_ess/updater.ex

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ defmodule PaEss.Updater do
188188
text -> {"Matthew", text}
189189
end
190190

191-
text = ~s(<speak><amazon:effect name="drc">#{text}</amazon:effect></speak>)
191+
text = ~s(<speak><amazon:effect name="drc">#{xml_escape(text)}</amazon:effect></speak>)
192192

193193
http_poster.post(
194194
"#{watts_url}/tts",
@@ -207,4 +207,14 @@ defmodule PaEss.Updater do
207207
defp create_tag() do
208208
:rand.bytes(16) |> Base.encode64(padding: false)
209209
end
210+
211+
defp xml_escape(text) do
212+
String.replace(text, ~w(" ' < > &), fn
213+
"\"" -> "&quot;"
214+
"'" -> "&apos;"
215+
"<" -> "&lt;"
216+
">" -> "&gt;"
217+
"&" -> "&amp;"
218+
end)
219+
end
210220
end

0 commit comments

Comments
 (0)