commit 26/08/2025
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package database
|
||||
|
||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -29,6 +30,8 @@ class MariaDB (
|
||||
var connected : Boolean = false
|
||||
var SoundbankList : ArrayList<Soundbank> = ArrayList()
|
||||
var MessagebankList : ArrayList<Messagebank> = ArrayList()
|
||||
var LanguageLinkList : ArrayList<LanguageLink> = ArrayList()
|
||||
var SchedulebankList : ArrayList<ScheduleBank> = ArrayList()
|
||||
|
||||
companion object {
|
||||
fun ValidDate(date: String): Boolean {
|
||||
@@ -41,6 +44,22 @@ class MariaDB (
|
||||
val regex = Regex("""^\d{2}:\d{2}:\d{2}$""")
|
||||
return regex.matches(time)
|
||||
}
|
||||
|
||||
private val objectMapper = jacksonObjectMapper()
|
||||
/**
|
||||
* Convert SoundbankList, MessagebankList, LanguageLinkList, or SchedulebankList to a JSON String.
|
||||
* @param list The ArrayList to convert to a String.
|
||||
* @return A JSON String representation of the ArrayList.
|
||||
*/
|
||||
fun <T> ArrayListtoString(list: ArrayList<T>) : String{
|
||||
return try {
|
||||
objectMapper.writeValueAsString(list.toArray())
|
||||
} catch (e: Exception) {
|
||||
Logger.error("Error converting list to JSON: ${e.message}" as Any)
|
||||
"[]"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
@@ -52,9 +71,9 @@ class MariaDB (
|
||||
runBlocking {
|
||||
withContext(Dispatchers.IO){
|
||||
Reload_Messagebank()
|
||||
Logger.info { "Messagebank loaded" }
|
||||
Reload_Soundbank()
|
||||
Logger.info { "Soundbank loaded" }
|
||||
Reload_LanguageLink()
|
||||
Reload_Schedulebank()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +82,8 @@ class MariaDB (
|
||||
Logger.info { "Loading MariaDB completed" }
|
||||
Logger.info { "Soundbank count: ${SoundbankList.size}" }
|
||||
Logger.info { "Messagebank count: ${MessagebankList.size}" }
|
||||
Logger.info { "LanguageLink count: ${LanguageLinkList.size}" }
|
||||
Logger.info { "Schedulebank count: ${SchedulebankList.size}" }
|
||||
|
||||
|
||||
} catch (e : Exception) {
|
||||
@@ -165,6 +186,54 @@ class MariaDB (
|
||||
consumer.accept(logList)
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the ScheduleBank list from the database.
|
||||
*/
|
||||
private fun Reload_Schedulebank() {
|
||||
SchedulebankList.clear()
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
val resultSet = statement?.executeQuery("SELECT * FROM schedulebank")
|
||||
while (resultSet?.next() == true) {
|
||||
val schedulebank = ScheduleBank(
|
||||
resultSet.getLong("index").toUInt(),
|
||||
resultSet.getString("Description"),
|
||||
resultSet.getString("Day"),
|
||||
resultSet.getString("Time"),
|
||||
resultSet.getString("Soundpath"),
|
||||
resultSet.getInt("Repeat").toUByte(),
|
||||
resultSet.getBoolean("Enable"),
|
||||
resultSet.getString("BroadcastZones"),
|
||||
resultSet.getString("Language")
|
||||
)
|
||||
SchedulebankList.add(schedulebank)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error fetching schedulebanks: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the language link list from the database.
|
||||
*/
|
||||
private fun Reload_LanguageLink() {
|
||||
LanguageLinkList.clear()
|
||||
try {
|
||||
val statement = connection?.createStatement()
|
||||
val resultSet = statement?.executeQuery("SELECT * FROM languagelink")
|
||||
while (resultSet?.next() == true) {
|
||||
val languageLink = LanguageLink(
|
||||
resultSet.getLong("index").toUInt(),
|
||||
resultSet.getString("TAG"),
|
||||
resultSet.getString("Language")
|
||||
)
|
||||
LanguageLinkList.add(languageLink)
|
||||
}
|
||||
} catch (e : Exception) {
|
||||
Logger.error("Error fetching language links: ${e.message}" as Any)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the soundbank list from the database.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user