forked from DiscordBots/lilJudd
104 lines
3.4 KiB
Kotlin
104 lines
3.4 KiB
Kotlin
/*
|
|
* lilJudd
|
|
* Copyright (C) 2024 moonleay
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package net.moonleay.lilJudd.data
|
|
|
|
import java.io.*
|
|
import java.util.*
|
|
|
|
object CredentialManager {
|
|
private const val foldername = "data"
|
|
private const val filename = "credentials.nils"
|
|
lateinit var token: String
|
|
lateinit var dbDomain: String
|
|
lateinit var dbName: String
|
|
lateinit var dbUser: String
|
|
lateinit var dbPassword: String
|
|
lateinit var apiDomain: String
|
|
lateinit var apiToken: String
|
|
|
|
///Load the needed credentials, generate a config if there is none
|
|
fun load() {
|
|
val folder = File(foldername)
|
|
if (!folder.exists()) {
|
|
save()
|
|
return
|
|
}
|
|
val configFile = File(folder, filename)
|
|
if (!configFile.exists()) {
|
|
save()
|
|
return
|
|
}
|
|
try {
|
|
val input: InputStream = FileInputStream(foldername + File.separator + filename)
|
|
val prop = Properties()
|
|
prop.load(input)
|
|
token = prop.getProperty("token")
|
|
dbDomain = prop.getProperty("dbDomain")
|
|
dbName = prop.getProperty("dbName")
|
|
dbUser = prop.getProperty("dbUser")
|
|
dbPassword = prop.getProperty("dbPassword")
|
|
apiDomain = prop.getProperty("apiDomain")
|
|
apiToken = prop.getProperty("apiToken")
|
|
input.close()
|
|
} catch (e: IOException) {
|
|
e.printStackTrace()
|
|
}
|
|
}
|
|
|
|
///generate a new sample config
|
|
private fun save() {
|
|
val folder = File(foldername)
|
|
if (!folder.exists()) {
|
|
try {
|
|
folder.mkdirs()
|
|
} catch (e: IOException) {
|
|
e.printStackTrace()
|
|
}
|
|
}
|
|
val configFile = File(foldername + File.separator + filename)
|
|
if (!configFile.exists()) {
|
|
try {
|
|
configFile.createNewFile()
|
|
} catch (e: IOException) {
|
|
e.printStackTrace()
|
|
}
|
|
}
|
|
try {
|
|
val output: OutputStream = FileOutputStream(foldername + File.separator + filename)
|
|
val prop = Properties()
|
|
prop.setProperty("token", "empty")
|
|
prop.setProperty("dbDomain", "empty")
|
|
prop.setProperty("dbName", "empty")
|
|
prop.setProperty("dbUser", "empty")
|
|
prop.setProperty("dbPassword", "empty")
|
|
prop.setProperty("apiDomain", "empty")
|
|
prop.setProperty("apiToken", "empty")
|
|
prop.store(output, null)
|
|
output.close()
|
|
|
|
token = "empty"
|
|
dbDomain = "empty"
|
|
dbName = "empty"
|
|
dbUser = "empty"
|
|
dbPassword = "empty"
|
|
} catch (e: IOException) {
|
|
e.printStackTrace()
|
|
}
|
|
}
|
|
}
|