+
+
diff --git a/client/pages/index.vue b/client/pages/index.vue
index 2051a0c4..8ae060b9 100644
--- a/client/pages/index.vue
+++ b/client/pages/index.vue
@@ -1,7 +1,12 @@
diff --git a/client/pages/library/_id.vue b/client/pages/library/_id.vue
new file mode 100644
index 00000000..1988d19a
--- /dev/null
+++ b/client/pages/library/_id.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/client/store/audiobooks.js b/client/store/audiobooks.js
index d3a655fb..09643604 100644
--- a/client/store/audiobooks.js
+++ b/client/store/audiobooks.js
@@ -63,6 +63,23 @@ export const getters = {
return value
})
},
+ getSeriesGroups: (state, getters, rootState) => () => {
+ var series = {}
+ state.audiobooks.forEach((audiobook) => {
+ if (audiobook.book && audiobook.book.series) {
+ if (series[audiobook.book.series]) {
+ series[audiobook.book.series].books.push(audiobook)
+ } else {
+ series[audiobook.book.series] = {
+ type: 'series',
+ name: audiobook.book.series,
+ books: [audiobook]
+ }
+ }
+ }
+ })
+ return Object.values(series)
+ },
getUniqueAuthors: (state) => {
var _authors = state.audiobooks.filter(ab => !!(ab.book && ab.book.author)).map(ab => ab.book.author)
return [...new Set(_authors)].sort((a, b) => a.toLowerCase() < b.toLowerCase() ? -1 : 1)
diff --git a/package.json b/package.json
index 6653ba08..ff6b24ea 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,17 @@
"dev": "node index.js",
"start": "node index.js",
"client": "cd client && npm install && npm run generate",
- "prod": "npm run client && npm install && node prod.js"
+ "prod": "npm run client && npm install && node prod.js",
+ "build-win": "cd client && npm run generate && cd .. && pkg -t node12-win-x64 -o ./dist/app .",
+ "build-linux": "pkg -t node12-linux-arm64 -o ./dist/app ."
+ },
+ "bin": "prod.js",
+ "pkg": {
+ "assets": "client/dist/**/*",
+ "scripts": [
+ "prod.js",
+ "server/**/*.js"
+ ]
},
"author": "advplyr",
"license": "ISC",
diff --git a/prod.js b/prod.js
index 628f1e2f..8d457746 100644
--- a/prod.js
+++ b/prod.js
@@ -13,6 +13,7 @@ process.env.TOKEN_SECRET = '09f26e402586e2faa8da4c98a35f1b20d6b033c6097befa8be34
process.env.NODE_ENV = 'production'
const server = require('./server/Server')
+
global.appRoot = __dirname
var inputConfig = options.config ? Path.resolve(options.config) : null
@@ -24,7 +25,7 @@ const CONFIG_PATH = inputConfig || process.env.CONFIG_PATH || Path.resolve('conf
const AUDIOBOOK_PATH = inputAudiobook || process.env.AUDIOBOOK_PATH || Path.resolve('audiobooks')
const METADATA_PATH = inputMetadata || process.env.METADATA_PATH || Path.resolve('metadata')
-console.log('Config', CONFIG_PATH, METADATA_PATH, AUDIOBOOK_PATH)
+console.log(process.env.NODE_ENV, 'Config', CONFIG_PATH, METADATA_PATH, AUDIOBOOK_PATH)
const Server = new server(PORT, CONFIG_PATH, METADATA_PATH, AUDIOBOOK_PATH)
Server.start()
diff --git a/server/Server.js b/server/Server.js
index 8ec318cf..5fb723e0 100644
--- a/server/Server.js
+++ b/server/Server.js
@@ -113,6 +113,7 @@ class Server {
await this.streamManager.ensureStreamsDir()
await this.streamManager.removeOrphanStreams()
await this.downloadManager.removeOrphanDownloads()
+
await this.db.init()
this.auth.init()
@@ -171,7 +172,6 @@ class Server {
async start() {
Logger.info('=== Starting Server ===')
-
await this.init()
const app = express()