commit 02/09/2025
This commit is contained in:
33
src/Main.kt
33
src/Main.kt
@@ -13,9 +13,9 @@ import web.WebApp
|
|||||||
|
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
if (Platform.isWindows()){
|
if (Platform.isWindows()) {
|
||||||
// supaya OSHI bisa mendapatkan CPU usage di Windows seperti di Task Manager
|
// supaya OSHI bisa mendapatkan CPU usage di Windows seperti di Task Manager
|
||||||
GlobalConfig.set(GlobalConfig.OSHI_OS_WINDOWS_CPU_UTILITY,true)
|
GlobalConfig.set(GlobalConfig.OSHI_OS_WINDOWS_CPU_UTILITY, true)
|
||||||
}
|
}
|
||||||
Logger.info("Application started" as Any)
|
Logger.info("Application started" as Any)
|
||||||
val audioPlayer = AudioPlayer(44100) // 44100 Hz sampling rate
|
val audioPlayer = AudioPlayer(44100) // 44100 Hz sampling rate
|
||||||
@@ -23,7 +23,7 @@ fun main() {
|
|||||||
val content = ContentCache()
|
val content = ContentCache()
|
||||||
val db = MariaDB()
|
val db = MariaDB()
|
||||||
CoroutineScope(Dispatchers.Default).launch {
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
while (isActive){
|
while (isActive) {
|
||||||
delay(1000)
|
delay(1000)
|
||||||
val broadcastzones = db.GetBroadcastZones()
|
val broadcastzones = db.GetBroadcastZones()
|
||||||
// baca dulu queue paging, prioritas 1
|
// baca dulu queue paging, prioritas 1
|
||||||
@@ -32,14 +32,17 @@ fun main() {
|
|||||||
if (it.BroadcastZones.isNotBlank()) {
|
if (it.BroadcastZones.isNotBlank()) {
|
||||||
val zz = it.BroadcastZones.split(";")
|
val zz = it.BroadcastZones.split(";")
|
||||||
// cek apakah semua target broadcast zone dari queue paging ada di dalam database broadcast zones
|
// cek apakah semua target broadcast zone dari queue paging ada di dalam database broadcast zones
|
||||||
if (zz.all { z -> broadcastzones.any { bz -> bz.equals(z) } }){
|
if (zz.all { z -> broadcastzones.any { bz -> bz.equals(z) } }) {
|
||||||
// semua target broadcast zone valid, sekarang cek apakah semua target broadcast zone idle
|
// semua target broadcast zone valid, sekarang cek apakah semua target broadcast zone idle
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// ada broadcast zone yang tidak valid, delete from queue paging
|
// ada broadcast zone yang tidak valid, delete from queue paging
|
||||||
db.Delete_Queue_Paging_by_index(it.index)
|
db.Delete_Queue_Paging_by_index(it.index)
|
||||||
//TODO check log message yang benar
|
//TODO check log message yang benar
|
||||||
db.Add_Log("AAS", "Cancelled paging message with index ${it.index} due to invalid broadcast zone")
|
db.Add_Log(
|
||||||
|
"AAS",
|
||||||
|
"Cancelled paging message with index ${it.index} due to invalid broadcast zone"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// invalid broadcast zone, delete from queue paging
|
// invalid broadcast zone, delete from queue paging
|
||||||
@@ -51,16 +54,32 @@ fun main() {
|
|||||||
// baca kemudian queue table, prioritas 2
|
// baca kemudian queue table, prioritas 2
|
||||||
db.Read_Queue_Table().forEach {
|
db.Read_Queue_Table().forEach {
|
||||||
if (it.BroadcastZones.isNotBlank()) {
|
if (it.BroadcastZones.isNotBlank()) {
|
||||||
|
val zz = it.BroadcastZones.split(";")
|
||||||
|
// cek apakah semua target broadcast zone dari queue table ada di dalam database broadcast zones
|
||||||
|
if (zz.all { z -> broadcastzones.any { bz -> bz.equals(z) } }) {
|
||||||
|
// semua target broadcast zone valid, sekarang cek apakah semua target broadcast zone idle
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// ada broadcast zone yang tidak valid, delete from queue table
|
||||||
|
db.Delete_Queue_Table_by_index(it.index)
|
||||||
|
//TODO check log message yang benar
|
||||||
|
db.Add_Log(
|
||||||
|
"AAS",
|
||||||
|
"Cancelled table message with index ${it.index} due to invalid broadcast zone"
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// invalid broadcast zone, delete from queue table
|
// invalid broadcast zone, delete from queue table
|
||||||
db.Delete_Queue_Table_by_index(it.index)
|
db.Delete_Queue_Table_by_index(it.index)
|
||||||
|
// TODO check log message yang benar
|
||||||
|
db.Add_Log("AAS", "Cancelled table message with index ${it.index} due to empty broadcast zone")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
val web = WebApp(3030,
|
val web = WebApp(
|
||||||
|
3030,
|
||||||
listOf(
|
listOf(
|
||||||
Pair("admin", "password"),
|
Pair("admin", "password"),
|
||||||
Pair("user", "password")
|
Pair("user", "password")
|
||||||
@@ -69,6 +88,4 @@ fun main() {
|
|||||||
web.Start()
|
web.Start()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ class Somecodes {
|
|||||||
val processor: CentralProcessor = si.hardware.processor
|
val processor: CentralProcessor = si.hardware.processor
|
||||||
val memory : GlobalMemory = si.hardware.memory
|
val memory : GlobalMemory = si.hardware.memory
|
||||||
val datetimeformat1: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
|
val datetimeformat1: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
|
||||||
|
val dateformat1: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy")
|
||||||
|
val timeformat1: DateTimeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss")
|
||||||
const val KB_threshold = 1024.0
|
const val KB_threshold = 1024.0
|
||||||
const val MB_threshold = KB_threshold * 1024.0
|
const val MB_threshold = KB_threshold * 1024.0
|
||||||
const val GB_threshold = MB_threshold * 1024.0
|
const val GB_threshold = MB_threshold * 1024.0
|
||||||
@@ -67,6 +68,10 @@ class Somecodes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get CPU usage using OSHI library.
|
||||||
|
* @param cb A callback function that receives the CPU usage as a string.
|
||||||
|
*/
|
||||||
fun getCPUUsage(cb : Consumer<String>){
|
fun getCPUUsage(cb : Consumer<String>){
|
||||||
CoroutineScope(Dispatchers.Default).launch {
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
val prev = processor.systemCpuLoadTicks
|
val prev = processor.systemCpuLoadTicks
|
||||||
@@ -106,16 +111,60 @@ class Somecodes {
|
|||||||
, (usedMemory.toDouble() / totalMemory * 100))
|
, (usedMemory.toDouble() / totalMemory * 100))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a value is a valid non-blank string.
|
||||||
|
* @param value The value to check.
|
||||||
|
* @return True if the value is a non-blank string, false otherwise.
|
||||||
|
*/
|
||||||
fun ValidString(value: Any) : Boolean {
|
fun ValidString(value: Any) : Boolean {
|
||||||
return value is String && value.isNotBlank()
|
return value is String && value.isNotBlank()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a string is a valid file path and the file exists.
|
||||||
|
* @param value The string to check.
|
||||||
|
* @return True if the string is a valid file path, false otherwise.
|
||||||
|
*/
|
||||||
fun ValidFile(value : String) : Boolean {
|
fun ValidFile(value : String) : Boolean {
|
||||||
if (value.isNotBlank()){
|
if (value.isNotBlank()){
|
||||||
return Files.exists(Path.of(value))
|
return Files.exists(Path.of(value))
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a string is a valid date in the format "dd/MM/yyyy".
|
||||||
|
* @param value The string to check.
|
||||||
|
* @return True if the string is a valid date, false otherwise.
|
||||||
|
*/
|
||||||
|
fun ValidDate(value: String): Boolean{
|
||||||
|
return try{
|
||||||
|
if (ValidString(value)){
|
||||||
|
dateformat1.parse(value)
|
||||||
|
true
|
||||||
|
} else throw Exception()
|
||||||
|
|
||||||
|
} catch (_: Exception){
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a string is a valid time in the format "hh:mm:ss".
|
||||||
|
* @param value The string to check.
|
||||||
|
* @return True if the string is a valid time, false otherwise.
|
||||||
|
*/
|
||||||
|
fun ValidTime(value: String): Boolean{
|
||||||
|
return try{
|
||||||
|
if (ValidString(value)){
|
||||||
|
timeformat1.parse(value)
|
||||||
|
true
|
||||||
|
} else throw Exception()
|
||||||
|
|
||||||
|
} catch (_: Exception){
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,10 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
data class Log(
|
data class Log(
|
||||||
val index: ULong,
|
val index: ULong,
|
||||||
val datenya: String,
|
val datenya: String,
|
||||||
val timenya: String,
|
val timenya: String,
|
||||||
val machine: String,
|
val machine: String,
|
||||||
val description : String
|
val description : String
|
||||||
) {
|
)
|
||||||
@Suppress("unused")
|
|
||||||
companion object {
|
|
||||||
|
|
||||||
fun ValidDate(date: String): Boolean {
|
|
||||||
// Simple date validation (DD/MM/YYYY)
|
|
||||||
val regex = Regex("""^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$""")
|
|
||||||
return regex.matches(date)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun validTime(time: String): Boolean {
|
|
||||||
// Simple time validation (HH:MM:SS)
|
|
||||||
val regex = Regex("""^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$""")
|
|
||||||
return regex.matches(time)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Reloads the ScheduleBank list from the database.
|
* Reloads the ScheduleBank list from the database.
|
||||||
*/
|
*/
|
||||||
private fun Reload_Schedulebank() {
|
fun Reload_Schedulebank() {
|
||||||
SchedulebankList.clear()
|
SchedulebankList.clear()
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
@@ -266,22 +266,24 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the schedulebank table in the database and the local list.
|
* Clears all entries from the schedulebank table in the database and the local list.
|
||||||
*/
|
*/
|
||||||
fun Clear_Schedulebank() {
|
fun Clear_Schedulebank() : Boolean {
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE schedulebank")
|
statement?.executeUpdate("TRUNCATE TABLE schedulebank")
|
||||||
Logger.info("Schedulebank table cleared" as Any)
|
Logger.info("Schedulebank table cleared" as Any)
|
||||||
SchedulebankList.clear()
|
SchedulebankList.clear()
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing schedulebank table: ${e.message}" as Any)
|
Logger.error("Error clearing schedulebank table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reloads the language link list from the database.
|
* Reloads the language link list from the database.
|
||||||
*/
|
*/
|
||||||
private fun Reload_LanguageLink() {
|
fun Reload_LanguageLink() {
|
||||||
LanguageLinkList.clear()
|
LanguageLinkList.clear()
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
@@ -324,22 +326,24 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the language link table in the database and the local list.
|
* Clears all entries from the language link table in the database and the local list.
|
||||||
*/
|
*/
|
||||||
fun Clear_LanguageLink() {
|
fun Clear_LanguageLink() : Boolean {
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE languagelink")
|
statement?.executeUpdate("TRUNCATE TABLE languagelink")
|
||||||
Logger.info("LanguageLink table cleared" as Any)
|
Logger.info("LanguageLink table cleared" as Any)
|
||||||
LanguageLinkList.clear()
|
LanguageLinkList.clear()
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing LanguageLink table: ${e.message}" as Any)
|
Logger.error("Error clearing LanguageLink table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reloads the soundbank list from the database.
|
* Reloads the soundbank list from the database.
|
||||||
*/
|
*/
|
||||||
private fun Reload_Soundbank() {
|
fun Reload_Soundbank() {
|
||||||
|
|
||||||
SoundbankList.clear()
|
SoundbankList.clear()
|
||||||
try {
|
try {
|
||||||
@@ -387,22 +391,24 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the soundbank table in the database and the local list.
|
* Clears all entries from the soundbank table in the database and the local list.
|
||||||
*/
|
*/
|
||||||
fun Clear_Soundbank() {
|
fun Clear_Soundbank() : Boolean{
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE soundbank")
|
statement?.executeUpdate("TRUNCATE TABLE soundbank")
|
||||||
Logger.info("Soundbank table cleared" as Any)
|
Logger.info("Soundbank table cleared" as Any)
|
||||||
SoundbankList.clear()
|
SoundbankList.clear()
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing soundbank table: ${e.message}" as Any)
|
Logger.error("Error clearing soundbank table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reloads the messagebank list from the database.
|
* Reloads the messagebank list from the database.
|
||||||
*/
|
*/
|
||||||
private fun Reload_Messagebank() {
|
fun Reload_Messagebank() {
|
||||||
MessagebankList.clear()
|
MessagebankList.clear()
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
@@ -450,16 +456,18 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the messagebank table in the database and the local list.
|
* Clears all entries from the messagebank table in the database and the local list.
|
||||||
*/
|
*/
|
||||||
fun Clear_Messagebank() {
|
fun Clear_Messagebank() : Boolean{
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE messagebank")
|
statement?.executeUpdate("TRUNCATE TABLE messagebank")
|
||||||
Logger.info("Messagebank table cleared" as Any)
|
Logger.info("Messagebank table cleared" as Any)
|
||||||
MessagebankList.clear()
|
MessagebankList.clear()
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing messagebank table: ${e.message}" as Any)
|
Logger.error("Error clearing messagebank table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -516,15 +524,17 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the queue_table in the database.
|
* Clears all entries from the queue_table in the database.
|
||||||
*/
|
*/
|
||||||
fun Clear_Queue_Table() {
|
fun Clear_Queue_Table() : Boolean {
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE queue_table")
|
statement?.executeUpdate("TRUNCATE TABLE queue_table")
|
||||||
Logger.info("Queue table cleared" as Any)
|
Logger.info("Queue table cleared" as Any)
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing queue table: ${e.message}" as Any)
|
Logger.error("Error clearing queue table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -578,15 +588,17 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the queue_paging in the database.
|
* Clears all entries from the queue_paging in the database.
|
||||||
*/
|
*/
|
||||||
fun Clear_Queue_Paging(){
|
fun Clear_Queue_Paging() : Boolean{
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE queue_paging")
|
statement?.executeUpdate("TRUNCATE TABLE queue_paging")
|
||||||
Logger.info("Queue paging table cleared" as Any)
|
Logger.info("Queue paging table cleared" as Any)
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing queue paging table: ${e.message}" as Any)
|
Logger.error("Error clearing queue paging table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -639,15 +651,17 @@ class MariaDB (
|
|||||||
/**
|
/**
|
||||||
* Clears all entries from the broadcast_zones in the database.
|
* Clears all entries from the broadcast_zones in the database.
|
||||||
*/
|
*/
|
||||||
fun Clear_BroadcastZones() {
|
fun Clear_BroadcastZones() : Boolean {
|
||||||
try {
|
try {
|
||||||
val statement = connection?.createStatement()
|
val statement = connection?.createStatement()
|
||||||
// use TRUNCATE to reset auto increment index
|
// use TRUNCATE to reset auto increment index
|
||||||
statement?.executeUpdate("TRUNCATE TABLE broadcast_zones")
|
statement?.executeUpdate("TRUNCATE TABLE broadcast_zones")
|
||||||
Logger.info("Broadcast zones table cleared" as Any)
|
Logger.info("Broadcast zones table cleared" as Any)
|
||||||
|
return true
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
Logger.error("Error clearing broadcast zones table: ${e.message}" as Any)
|
Logger.error("Error clearing broadcast zones table: ${e.message}" as Any)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
package web
|
package web
|
||||||
|
|
||||||
import codes.Somecodes
|
import codes.Somecodes
|
||||||
|
import codes.Somecodes.Companion.ValidDate
|
||||||
|
import codes.Somecodes.Companion.ValidString
|
||||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||||
import database.MariaDB
|
import database.MariaDB
|
||||||
import io.javalin.Javalin
|
import io.javalin.Javalin
|
||||||
import io.javalin.apibuilder.ApiBuilder.before
|
import io.javalin.apibuilder.ApiBuilder.before
|
||||||
|
import io.javalin.apibuilder.ApiBuilder.delete
|
||||||
import io.javalin.apibuilder.ApiBuilder.get
|
import io.javalin.apibuilder.ApiBuilder.get
|
||||||
import io.javalin.apibuilder.ApiBuilder.path
|
import io.javalin.apibuilder.ApiBuilder.path
|
||||||
import io.javalin.apibuilder.ApiBuilder.post
|
import io.javalin.apibuilder.ApiBuilder.post
|
||||||
@@ -111,12 +114,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
println("getTimerList command received")
|
println("getTimerList command received")
|
||||||
SendReply(wsMessageContext, cmd.command, MariaDB.ArrayListtoString(db.SchedulebankList))
|
SendReply(wsMessageContext, cmd.command, MariaDB.ArrayListtoString(db.SchedulebankList))
|
||||||
}
|
}
|
||||||
"getLog" ->{
|
|
||||||
println("getLog command received")
|
|
||||||
}
|
|
||||||
"getSetting" ->{
|
|
||||||
println("getSetting command received")
|
|
||||||
}
|
|
||||||
else -> {
|
else -> {
|
||||||
SendReply(wsMessageContext, cmd.command, "Unknown command")
|
SendReply(wsMessageContext, cmd.command, "Unknown command")
|
||||||
}
|
}
|
||||||
@@ -135,19 +133,111 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
}
|
}
|
||||||
path("soundbank.html") {
|
path("soundbank.html") {
|
||||||
before {CheckUsers(it)}
|
before {CheckUsers(it)}
|
||||||
|
get("List"){
|
||||||
|
// get soundbank list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.SoundbankList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate soundbank table
|
||||||
|
if (db.Clear_Soundbank()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate soundbank table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Soundbank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete soundbank with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
path("messagebank.html") {
|
path("messagebank.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
|
get("List"){
|
||||||
|
// get messagebank list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.MessagebankList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate messagebank table
|
||||||
|
if (db.Clear_Messagebank()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate messagebank table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Messagebank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete messagebank with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
path("language.html") {
|
path("language.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
|
get("List"){
|
||||||
|
// get language link list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.LanguageLinkList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate language link table
|
||||||
|
if (db.Clear_LanguageLink()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate language link table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_LanguageLink_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete language link with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
path("log.html") {
|
path("log.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
|
get("List/<logdate>/<logfilter>"){ get1 ->
|
||||||
|
val logdate = get1.pathParam("logdate")
|
||||||
|
val logfilter = get1.pathParam("logfilter")
|
||||||
|
if (ValidDate(logdate)){
|
||||||
|
if (ValidString(logfilter)){
|
||||||
|
// ada log filter
|
||||||
|
db.GetLog(logdate, logfilter){
|
||||||
|
get1.result(MariaDB.ArrayListtoString(it))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
db.GetLog(logdate){
|
||||||
|
get1.result(MariaDB.ArrayListtoString(it))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else get1.status(400).result("Invalid logdate")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
path("setting.html") {
|
path("setting.html") {
|
||||||
@@ -156,7 +246,31 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
}
|
}
|
||||||
path("timer.html") {
|
path("timer.html") {
|
||||||
before { CheckUsers(it) }
|
before { CheckUsers(it) }
|
||||||
|
get("List"){
|
||||||
|
// get timer list
|
||||||
|
it.result(MariaDB.ArrayListtoString(db.SchedulebankList))
|
||||||
|
}
|
||||||
|
delete("List"){
|
||||||
|
// truncate timer table
|
||||||
|
if (db.Clear_Schedulebank()){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to truncate schedulebank table")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete("DeleteByIndex/{index}"){
|
||||||
|
// delete by index
|
||||||
|
val index = it.pathParam("index").toUIntOrNull()
|
||||||
|
if (index == null){
|
||||||
|
it.status(400).result("Invalid index")
|
||||||
|
} else{
|
||||||
|
if (db.Delete_Schedulebank_by_index(index)){
|
||||||
|
it.result("OK")
|
||||||
|
} else {
|
||||||
|
it.status(500).result("Failed to delete schedule with index $index")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start(listenPort)
|
}.start(listenPort)
|
||||||
|
|||||||
Reference in New Issue
Block a user