Add Subtitle and Narrarator fields, add server settings object, scanner to parse out subtitles

This commit is contained in:
Mark Cooper 2021-09-04 19:58:39 -05:00
parent e566c6c9d5
commit af05e78cdf
20 changed files with 213 additions and 31 deletions

View file

@ -4,6 +4,7 @@ const jwt = require('jsonwebtoken')
const Logger = require('./Logger')
const Audiobook = require('./objects/Audiobook')
const User = require('./objects/User')
const ServerSettings = require('./objects/ServerSettings')
class Db {
constructor(CONFIG_PATH) {
@ -19,6 +20,8 @@ class Db {
this.users = []
this.audiobooks = []
this.settings = []
this.serverSettings = null
}
getEntityDb(entityName) {
@ -39,15 +42,6 @@ class Db {
return 'settings'
}
getDefaultSettings() {
return {
config: {
version: 1,
cardSize: 'md'
}
}
}
getDefaultUser(token) {
return new User({
id: 'root',
@ -71,6 +65,11 @@ class Db {
Logger.debug('Generated default token', token)
await this.insertUser(this.getDefaultUser(token))
}
if (!this.serverSettings) {
this.serverSettings = new ServerSettings()
await this.insertSettings(this.serverSettings)
}
}
async load() {
@ -83,11 +82,26 @@ class Db {
Logger.info(`Users Loaded ${this.users.length}`)
})
var p3 = this.settingsDb.select(() => true).then((results) => {
this.settings = results
if (results.data && results.data.length) {
this.settings = results.data
var serverSettings = this.settings.find(s => s.id === 'server-settings')
if (serverSettings) {
this.serverSettings = new ServerSettings(serverSettings)
}
}
})
await Promise.all([p1, p2, p3])
}
insertSettings(settings) {
return this.settingsDb.insert(settings).then((results) => {
Logger.debug(`[DB] Inserted ${results.inserted} settings`)
this.settings = this.settings.concat(settings)
}).catch((error) => {
Logger.error(`[DB] Insert settings Failed ${error}`)
})
}
insertAudiobook(audiobook) {
return this.insertAudiobooks([audiobook])
}