Merge remote-tracking branch 'origin/master' into feature-webapp
# Conflicts: # src/web/WebApp.kt
This commit is contained in:
@@ -260,7 +260,7 @@ class MainExtension01 {
|
||||
val value = variables["AL"].orEmpty()
|
||||
if (ValidString(value)) {
|
||||
val airplane =
|
||||
sb.firstOrNull { it.Category == Category.Airplane_Name.name && it.TAG == value }
|
||||
sb.firstOrNull { it.Category == Category.Airline_Name.name && it.TAG == value }
|
||||
if (airplane != null) {
|
||||
if (ValidFile(airplane.Path)) {
|
||||
files.add(airplane.Path)
|
||||
|
||||
@@ -349,7 +349,7 @@ class TCP_Android_Command_Server {
|
||||
.filter { it.isNotBlank() }
|
||||
.forEach { al ->
|
||||
val sb = db.soundDB.List
|
||||
.filter { it.Category.equals(Category.Airplane_Name.name, true) }
|
||||
.filter { it.Category.equals(Category.Airline_Name.name, true) }
|
||||
.filter { it.TAG.equals(al, true)}
|
||||
.distinctBy { it.TAG }
|
||||
VARAPTOTAL.addAll(sb)
|
||||
|
||||
@@ -3,7 +3,7 @@ package content
|
||||
@Suppress("unused")
|
||||
enum class Category(name: String) {
|
||||
Airline_Code("Airline_Code"),
|
||||
Airplane_Name("Airplane_Name"),
|
||||
Airline_Name("Airline_Name"),
|
||||
AlphabetNumeric("AlphabetNumeric"),
|
||||
City("City"),
|
||||
Phrase("Phrase"),
|
||||
|
||||
@@ -2280,7 +2280,7 @@ class MariaDB(
|
||||
|
||||
fun Find_Soundbank_AirplaneName(tag: String) : List<Soundbank>{
|
||||
return soundDB.List
|
||||
.filter{ it.Category== Category.Airplane_Name.name }
|
||||
.filter{ it.Category== Category.Airline_Name.name }
|
||||
.filter { it.TAG.equals(tag,true)}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import database.MariaDB
|
||||
import database.Messagebank
|
||||
import database.SoundChannel
|
||||
import database.Soundbank
|
||||
import database.UserDB
|
||||
import database.ScheduleBank
|
||||
import db
|
||||
import io.javalin.Javalin
|
||||
@@ -35,6 +36,7 @@ import io.javalin.http.Context
|
||||
import io.javalin.json.JavalinJackson
|
||||
import io.javalin.websocket.WsMessageContext
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook
|
||||
import java.nio.file.Files
|
||||
import java.time.LocalDateTime
|
||||
|
||||
@Suppress("unused")
|
||||
@@ -198,13 +200,55 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
it.result(objectmapper.writeValueAsString(ScheduleDay.entries.map { day -> day.toString() }))
|
||||
}
|
||||
}
|
||||
path("ListFiles/{Language}/{VoiceType}/{Category}") {
|
||||
get { ctx ->
|
||||
val language = ctx.pathParam("Language")
|
||||
val voiceType = ctx.pathParam("VoiceType")
|
||||
val category = ctx.pathParam("Category")
|
||||
if (ValidString(language) && Language.entries.any { lang -> lang.name == language }) {
|
||||
if (ValidString(voiceType) && VoiceType.entries.any { vt -> vt.name == voiceType }) {
|
||||
if (ValidString(category) && Category.entries.any { cat -> cat.name == category }) {
|
||||
val dir = Somecodes.SoundbankDirectory(
|
||||
Language.valueOf(language),
|
||||
VoiceType.valueOf(voiceType),
|
||||
Category.valueOf(category)
|
||||
)
|
||||
if (Files.isDirectory(dir)){
|
||||
val list = ListAudioFiles(dir)
|
||||
ctx.result(objectmapper.writeValueAsString(list))
|
||||
|
||||
} else ctx.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Directory does not exist")))
|
||||
} else ctx.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
} else ctx.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid VoiceType")))
|
||||
} else ctx.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||
}
|
||||
}
|
||||
path("SoundBank") {
|
||||
get("List") {
|
||||
it.result(MariaDB.ArrayListtoString(db.soundDB.List))
|
||||
}
|
||||
get("ListFiles"){
|
||||
//it.result(objectmapper.writeValueAsString(ListAudioFiles("C:\\soundbank")))
|
||||
|
||||
get("ListFiles") {
|
||||
it.result(objectmapper.writeValueAsString(ListAudioFiles(Somecodes.Soundbank_directory)))
|
||||
}
|
||||
get("AirlineTags") { ctx ->
|
||||
val value = db.soundDB.List
|
||||
.filter { it.Category == Category.Airline_Name.name }
|
||||
.distinctBy { it.TAG }
|
||||
.sortedBy { it.TAG }
|
||||
.map { KeyValueMessage(it.TAG, it.Description) }
|
||||
ctx.result(objectmapper.writeValueAsString(value))
|
||||
}
|
||||
get("CityTags") { ctx ->
|
||||
val value = db.soundDB.List
|
||||
.filter { it.Category == Category.City.name }
|
||||
.distinctBy { it.TAG }
|
||||
.sortedBy { it.TAG }
|
||||
.map { KeyValueMessage(it.TAG, it.Description) }
|
||||
ctx.result(objectmapper.writeValueAsString(value))
|
||||
}
|
||||
post("Add") {
|
||||
try {
|
||||
@@ -222,20 +266,32 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (ValidFile(addvalue.Path)) {
|
||||
if (db.soundDB.Add(addvalue)) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
it.result(
|
||||
objectmapper.writeValueAsString(
|
||||
resultMessage(
|
||||
"OK"
|
||||
)
|
||||
)
|
||||
)
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to add soundbank to database")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("TAG=${addvalue.TAG} already exists for the same Language=${addvalue.Language} and Category=${addvalue.Category}")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid TAG")))
|
||||
} else it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Language")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid TAG")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Description")))
|
||||
} catch (_: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid request body")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid request body")))
|
||||
}
|
||||
}
|
||||
delete("List") {
|
||||
@@ -244,7 +300,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
db.soundDB.Get()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
||||
it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to truncate soundbank table")))
|
||||
}
|
||||
}
|
||||
delete("DeleteByIndex/{index}") {
|
||||
@@ -257,7 +314,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
||||
it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to delete soundbank with index $index")))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,12 +329,14 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
val sb = db.soundDB.List.find { xx -> xx.index == index }
|
||||
if (sb == null) {
|
||||
// soundbank dengan index tersebut tidak ditemukan
|
||||
it.status(404).result(objectmapper.writeValueAsString(resultMessage("Soundbank with index $index not found")))
|
||||
it.status(404)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Soundbank with index $index not found")))
|
||||
} else {
|
||||
// soundbank dengan index tersebut ditemukan, sekarang update
|
||||
val json: JsonNode = objectmapper.readTree(it.body())
|
||||
if (json.isEmpty) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("UpdateByIndex with index=$index has empty body")))
|
||||
} else {
|
||||
val _description = json.get("Description").asText("")
|
||||
val _tag = json.get("TAG").asText("")
|
||||
@@ -299,7 +359,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
sb.Category = _category
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Category")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -312,7 +373,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
sb.Path = _path
|
||||
changed = true
|
||||
} else {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid Path, file does not exist")))
|
||||
return@patch
|
||||
}
|
||||
}
|
||||
@@ -320,7 +382,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
if (db.soundDB.UpdateByIndex(index.toInt(), sb)) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to update soundbank with index $index")))
|
||||
} else it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to update soundbank with index $index")))
|
||||
} else it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Nothing has changed for soundbank with index $index")))
|
||||
}
|
||||
@@ -339,13 +402,15 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
xlsxdata.write(out)
|
||||
}
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to export soundbank to XLSX")))
|
||||
it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to export soundbank to XLSX")))
|
||||
}
|
||||
}
|
||||
post("ImportXLSX") {
|
||||
val uploaded = it.uploadedFile("file")
|
||||
if (uploaded == null) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("No file uploaded")))
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
@@ -354,10 +419,12 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>) {
|
||||
db.soundDB.Resort()
|
||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||
} else {
|
||||
it.status(500).result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
||||
it.status(500)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Failed to import soundbank from XLSX")))
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
it.status(400).result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
it.status(400)
|
||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid XLSX file")))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user