diff --git a/app/src/main/java/com/bartlomiejpluta/ttsserver/core/lua/lib/TTSLibrary.kt b/app/src/main/java/com/bartlomiejpluta/ttsserver/core/lua/lib/TTSLibrary.kt index 889ea3e..4bd45b7 100644 --- a/app/src/main/java/com/bartlomiejpluta/ttsserver/core/lua/lib/TTSLibrary.kt +++ b/app/src/main/java/com/bartlomiejpluta/ttsserver/core/lua/lib/TTSLibrary.kt @@ -27,7 +27,8 @@ class TTSLibrary(private val ttsEngine: TTSEngine) : TwoArgFunction() { class SayMethod(private val ttsEngine: TTSEngine) : TwoArgFunction() { override fun call(text: LuaValue, language: LuaValue): LuaValue { - ttsEngine.performTTS(text.checkjstring(), Locale.forLanguageTag(language.checkjstring())) + val locale = Locale.forLanguageTag(language.checkjstring().toUpperCase(Locale.ROOT)) + ttsEngine.performTTS(text.checkjstring(), locale) return LuaValue.NIL } diff --git a/app/src/main/java/com/bartlomiejpluta/ttsserver/initializer/ScriptsInitializer.kt b/app/src/main/java/com/bartlomiejpluta/ttsserver/initializer/ScriptsInitializer.kt index 9323390..68af200 100644 --- a/app/src/main/java/com/bartlomiejpluta/ttsserver/initializer/ScriptsInitializer.kt +++ b/app/src/main/java/com/bartlomiejpluta/ttsserver/initializer/ScriptsInitializer.kt @@ -49,7 +49,8 @@ class ScriptsInitializer(private val context: Context, private val preferences: companion object { private const val INITIALIZED_FLAG = "flag_initialized" private val endpoints = mapOf( - "say.lua" to R.raw.say + "say.lua" to R.raw.say, + "file.lua" to R.raw.file ) } } \ No newline at end of file diff --git a/app/src/main/res/raw/config.lua b/app/src/main/res/raw/config.lua index 9bf6c76..06c44b6 100644 --- a/app/src/main/res/raw/config.lua +++ b/app/src/main/res/raw/config.lua @@ -1,2 +1,19 @@ +local silenceModeTimeRange = { + from = { 23, 00 }, + to = { 07, 00 } +} + +function silenceMode() + local date = os.date("*t") + + local from = silenceModeTimeRange.from[1] * 60 + silenceModeTimeRange.from[2] + local to = silenceModeTimeRange.to[1] * 60 + silenceModeTimeRange.to[2] + local now = date.hour * 60 + date.min + + if (from <= to) then return from <= now and now <= to + else return from <= now or now <= to end +end + return { + silenceMode = silenceMode } \ No newline at end of file diff --git a/app/src/main/res/raw/file.lua b/app/src/main/res/raw/file.lua new file mode 100644 index 0000000..30b75a4 --- /dev/null +++ b/app/src/main/res/raw/file.lua @@ -0,0 +1,18 @@ +return { + uri = "/{format}", + method = Method.POST, + accepts = Mime.JSON, + consumer = function(request) + local body = json.decode(request.body) + local format = (request.params.format or "WAV"):upper() + local audioFormat = AudioFormat[format] + local mime = Mime[format] + + local file = tts.sayToFile(body.text, body.language or "en", audioFormat) + + return { + mime = mime, + data = file + } + end +} \ No newline at end of file diff --git a/app/src/main/res/raw/say.lua b/app/src/main/res/raw/say.lua index 0d5e1a2..45b4d63 100644 --- a/app/src/main/res/raw/say.lua +++ b/app/src/main/res/raw/say.lua @@ -2,8 +2,11 @@ return { uri = "/say", method = Method.POST, queued = true, - accepts = "application/json", - consumer = function() - tts.say("Hello, world!", "en") + accepts = Mime.JSON, + consumer = function(request) + if(config.silenceMode()) then return end + + local body = json.decode(request.body) + tts.say(body.text, body.language or "en") end } \ No newline at end of file