Discord-Media-Compressor-su.../lib/settingsManager.js

80 lines
1.9 KiB
JavaScript
Raw Normal View History

2022-05-04 22:45:37 +00:00
const fs = require("fs")
const path = require("path")
class SettingsManager {
settings
currentSetting
2022-05-04 22:45:37 +00:00
settingsFile = __dirname
constructor() {
}
async start() {
await this.#init()
}
2022-05-04 11:09:33 +00:00
async #init() {
2022-05-04 18:40:14 +00:00
let settings
2022-05-04 22:45:37 +00:00
try {
settings = await this.#getSettings()
} catch (error) {
settings = await this.#makeNewSettingsFile()
}
2022-05-04 11:09:33 +00:00
this.settings = JSON.parse(settings.toString())
2022-06-19 00:29:26 +00:00
this.currentSetting = this.settings.size_limit
}
async #getSettings() {
return new Promise((resolve, reject) => {
2022-05-04 22:45:37 +00:00
const getSettings = fs.readFile(path.resolve(this.settingsFile, "settings.json"), (err, data) => {
2022-05-04 11:09:33 +00:00
if (err) reject(err)
resolve(data)
})
})
}
async #makeNewSettingsFile() {
2022-10-01 21:29:26 +00:00
const settings = `{
2022-06-19 00:29:26 +00:00
"size_limit": 64000
2022-10-01 21:29:26 +00:00
}
2022-06-19 00:29:26 +00:00
`
/*const settings = `
2022-05-28 23:58:41 +00:00
{
"currentSetting": 2,
"presets": [{
2022-05-04 18:40:14 +00:00
"name": "Most efficient 8 megabytes of your life",
"cpuUsed": 0,
2022-05-28 23:58:41 +00:00
"deadline": "good",
"bitrateError": 95
2022-05-04 18:40:14 +00:00
}, {
"name": "I have some time to kill",
"cpuUsed": 1,
"deadline": "good",
2022-05-28 23:58:41 +00:00
"bitrateError": 95
2022-05-04 18:40:14 +00:00
}, {
"name": "Mid",
"cpuUsed": 3,
2022-05-28 23:58:41 +00:00
"deadline": "realtime",
"bitrateError": 90
2022-05-04 18:40:14 +00:00
}, {
"name": "I don't like waiting",
2022-05-28 23:58:41 +00:00
"cpuUsed": 5,
"deadline": "realtime",
"bitrateError": 80
2022-05-04 18:40:14 +00:00
}, {
"name": "I want it, NOW!",
2022-05-28 23:58:41 +00:00
"cpuUsed": 6,
2022-05-04 18:40:14 +00:00
"deadline": "realtime",
2022-05-28 23:58:41 +00:00
"bitrateError": 70
2022-05-04 18:40:14 +00:00
}]
}
2022-06-19 00:29:26 +00:00
`*/
return new Promise((resolve, reject) => {
2022-05-04 22:45:37 +00:00
fs.writeFile(path.resolve(this.settingsFile, "settings.json"), settings, (err) => {
2022-05-07 18:45:59 +00:00
if (err) return
resolve(settings)
})
})
}
2022-05-04 22:45:37 +00:00
}
module.exports = { SettingsManager }