2020-12-23 17:52:05 +03:30
|
|
|
package ir.armor.tachidesk
|
|
|
|
|
|
2021-01-02 04:57:20 +03:30
|
|
|
import eu.kanade.tachiyomi.App
|
2020-12-24 02:08:03 +03:30
|
|
|
import io.javalin.Javalin
|
2020-12-25 18:45:33 +03:30
|
|
|
import ir.armor.tachidesk.util.*
|
2021-01-02 04:57:20 +03:30
|
|
|
import org.kodein.di.DI
|
|
|
|
|
import org.kodein.di.conf.global
|
|
|
|
|
import xyz.nulldev.androidcompat.AndroidCompat
|
|
|
|
|
import xyz.nulldev.androidcompat.AndroidCompatInitializer
|
|
|
|
|
import xyz.nulldev.ts.config.ConfigKodeinModule
|
|
|
|
|
import xyz.nulldev.ts.config.GlobalConfigManager
|
|
|
|
|
import xyz.nulldev.ts.config.ServerConfig
|
2020-12-25 18:45:33 +03:30
|
|
|
import java.util.*
|
2020-12-24 02:08:03 +03:30
|
|
|
|
2020-12-23 19:52:16 +03:30
|
|
|
class Main {
|
2020-12-23 17:52:05 +03:30
|
|
|
companion object {
|
2021-01-02 04:57:20 +03:30
|
|
|
val androidCompat by lazy { AndroidCompat() }
|
|
|
|
|
|
|
|
|
|
fun registerConfigModules() {
|
|
|
|
|
GlobalConfigManager.registerModules(
|
|
|
|
|
// ServerConfig.register(GlobalConfigManager.config),
|
|
|
|
|
// SyncConfigModule.register(GlobalConfigManager.config)
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-24 02:08:03 +03:30
|
|
|
@JvmStatic
|
|
|
|
|
fun main(args: Array<String>) {
|
2020-12-25 02:39:30 +03:30
|
|
|
// make sure everything we need exists
|
2020-12-25 13:17:41 +03:30
|
|
|
applicationSetup()
|
2020-12-24 19:37:27 +03:30
|
|
|
|
2021-01-02 04:57:20 +03:30
|
|
|
registerConfigModules()
|
|
|
|
|
|
|
|
|
|
//Load config API
|
|
|
|
|
DI.global.addImport(ConfigKodeinModule().create())
|
|
|
|
|
//Load Android compatibility dependencies
|
|
|
|
|
AndroidCompatInitializer().init()
|
|
|
|
|
// start app
|
|
|
|
|
androidCompat.startApp(App())
|
|
|
|
|
|
|
|
|
|
|
2020-12-24 19:37:27 +03:30
|
|
|
|
2020-12-25 02:39:30 +03:30
|
|
|
val app = Javalin.create().start(4567)
|
|
|
|
|
|
|
|
|
|
app.before() { ctx ->
|
2020-12-25 19:29:48 +03:30
|
|
|
// allow the client which is running on another port
|
|
|
|
|
ctx.header("Access-Control-Allow-Origin", "*")
|
2020-12-25 02:39:30 +03:30
|
|
|
}
|
|
|
|
|
|
2020-12-25 17:16:26 +03:30
|
|
|
app.get("/api/v1/extension/list") { ctx ->
|
2020-12-25 02:39:30 +03:30
|
|
|
ctx.json(getExtensionList())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2020-12-25 17:16:26 +03:30
|
|
|
app.get("/api/v1/extension/install/:apkName") { ctx ->
|
2020-12-25 02:39:30 +03:30
|
|
|
val apkName = ctx.pathParam("apkName")
|
2020-12-25 03:08:08 +03:30
|
|
|
println(apkName)
|
2020-12-25 02:39:30 +03:30
|
|
|
ctx.status(
|
2020-12-25 13:17:41 +03:30
|
|
|
installAPK(apkName)
|
2020-12-25 02:39:30 +03:30
|
|
|
)
|
|
|
|
|
}
|
2020-12-25 17:16:26 +03:30
|
|
|
app.get("/api/v1/source/list") { ctx ->
|
2020-12-25 06:15:52 +03:30
|
|
|
ctx.json(getSourceList())
|
|
|
|
|
}
|
2020-12-25 17:16:26 +03:30
|
|
|
|
|
|
|
|
app.get("/api/v1/source/:source_id/popular") { ctx ->
|
|
|
|
|
val sourceId = ctx.pathParam("source_id")
|
2020-12-25 19:29:48 +03:30
|
|
|
ctx.json(getPopularManga(sourceId))
|
2020-12-25 17:16:26 +03:30
|
|
|
}
|
2021-01-19 14:47:25 +03:30
|
|
|
app.get("/api/v1/source/:source_id/latest") { ctx ->
|
|
|
|
|
val sourceId = ctx.pathParam("source_id")
|
|
|
|
|
ctx.json(getLatestManga(sourceId))
|
|
|
|
|
}
|
2020-12-23 17:52:05 +03:30
|
|
|
}
|
2021-01-02 04:57:20 +03:30
|
|
|
|
|
|
|
|
|
2020-12-23 17:52:05 +03:30
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|