Add support for retrieving cache files

This commit is contained in:
2020-07-03 09:28:42 +02:00
parent 48a50c44b6
commit f9b134bfaa
2 changed files with 19 additions and 2 deletions

View File

@@ -1,19 +1,35 @@
package com.bartlomiejpluta.ttsserver.core.lua.lib package com.bartlomiejpluta.ttsserver.core.lua.lib
import android.content.Context
import com.bartlomiejpluta.ttsserver.core.util.NetworkUtil import com.bartlomiejpluta.ttsserver.core.util.NetworkUtil
import org.luaj.vm2.LuaValue import org.luaj.vm2.LuaValue
import org.luaj.vm2.lib.OneArgFunction
import org.luaj.vm2.lib.TwoArgFunction import org.luaj.vm2.lib.TwoArgFunction
import org.luaj.vm2.lib.jse.CoerceJavaToLua
import java.io.File
class ServerLibrary(private val networkUtil: NetworkUtil) : TwoArgFunction() { class ServerLibrary(private val context: Context, private val networkUtil: NetworkUtil) :
TwoArgFunction() {
override fun call(modname: LuaValue, env: LuaValue): LuaValue { override fun call(modname: LuaValue, env: LuaValue): LuaValue {
val server = LuaValue.tableOf().apply { val server = LuaValue.tableOf().apply {
set("port", networkUtil.port) set("port", networkUtil.port)
set("address", networkUtil.address) set("address", networkUtil.address)
set("url", networkUtil.url) set("url", networkUtil.url)
set("getCachedFile", CacheFileFunction(context))
} }
env.set("server", server) env.set("server", server)
return LuaValue.NIL return LuaValue.NIL
} }
class CacheFileFunction(context: Context) : OneArgFunction() {
private val cacheDir = context.cacheDir
override fun call(fileName: LuaValue) = File(cacheDir, fileName.checkjstring())
.takeIf { it.exists() }
?.let { CoerceJavaToLua.coerce(it) }
?: LuaValue.NIL
}
} }

View File

@@ -47,7 +47,8 @@ class LuaModule {
@Provides @Provides
@Singleton @Singleton
fun serverLibrary(networkUtil: NetworkUtil) = ServerLibrary(networkUtil) fun serverLibrary(context: Context, networkUtil: NetworkUtil) =
ServerLibrary(context, networkUtil)
@Provides @Provides
@Singleton @Singleton