mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-21 00:31:37 +00:00
Merge 4a125276b3 into f7a3dbf209
This commit is contained in:
commit
7039bcb6ed
3 changed files with 18 additions and 7 deletions
3
index.js
3
index.js
|
|
@ -22,8 +22,9 @@ const UID = process.env.AUDIOBOOKSHELF_UID
|
||||||
const GID = process.env.AUDIOBOOKSHELF_GID
|
const GID = process.env.AUDIOBOOKSHELF_GID
|
||||||
const SOURCE = process.env.SOURCE || 'docker'
|
const SOURCE = process.env.SOURCE || 'docker'
|
||||||
const ROUTER_BASE_PATH = process.env.ROUTER_BASE_PATH || ''
|
const ROUTER_BASE_PATH = process.env.ROUTER_BASE_PATH || ''
|
||||||
|
const MEDIA_BASE_PATH = process.env.MEDIA_BASE_PATH || ''
|
||||||
|
|
||||||
console.log('Config', CONFIG_PATH, METADATA_PATH)
|
console.log('Config', CONFIG_PATH, METADATA_PATH)
|
||||||
|
|
||||||
const Server = new server(SOURCE, PORT, HOST, UID, GID, CONFIG_PATH, METADATA_PATH, ROUTER_BASE_PATH)
|
const Server = new server(SOURCE, PORT, HOST, UID, GID, CONFIG_PATH, METADATA_PATH, ROUTER_BASE_PATH, MEDIA_BASE_PATH)
|
||||||
Server.start()
|
Server.start()
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ const TaskManager = require('./managers/TaskManager')
|
||||||
const EBookManager = require('./managers/EBookManager')
|
const EBookManager = require('./managers/EBookManager')
|
||||||
|
|
||||||
class Server {
|
class Server {
|
||||||
constructor(SOURCE, PORT, HOST, UID, GID, CONFIG_PATH, METADATA_PATH, ROUTER_BASE_PATH) {
|
constructor(SOURCE, PORT, HOST, UID, GID, CONFIG_PATH, METADATA_PATH, ROUTER_BASE_PATH, MEDIA_BASE_PATH) {
|
||||||
this.Port = PORT
|
this.Port = PORT
|
||||||
this.Host = HOST
|
this.Host = HOST
|
||||||
global.Source = SOURCE
|
global.Source = SOURCE
|
||||||
|
|
@ -48,6 +48,7 @@ class Server {
|
||||||
global.ConfigPath = fileUtils.filePathToPOSIX(Path.normalize(CONFIG_PATH))
|
global.ConfigPath = fileUtils.filePathToPOSIX(Path.normalize(CONFIG_PATH))
|
||||||
global.MetadataPath = fileUtils.filePathToPOSIX(Path.normalize(METADATA_PATH))
|
global.MetadataPath = fileUtils.filePathToPOSIX(Path.normalize(METADATA_PATH))
|
||||||
global.RouterBasePath = ROUTER_BASE_PATH
|
global.RouterBasePath = ROUTER_BASE_PATH
|
||||||
|
global.MediaBasePath = MEDIA_BASE_PATH
|
||||||
|
|
||||||
if (!fs.pathExistsSync(global.ConfigPath)) {
|
if (!fs.pathExistsSync(global.ConfigPath)) {
|
||||||
fs.mkdirSync(global.ConfigPath)
|
fs.mkdirSync(global.ConfigPath)
|
||||||
|
|
|
||||||
|
|
@ -27,15 +27,20 @@ class LibraryController {
|
||||||
return f
|
return f
|
||||||
})
|
})
|
||||||
for (const folder of newLibraryPayload.folders) {
|
for (const folder of newLibraryPayload.folders) {
|
||||||
|
const path = folder.fullPath
|
||||||
|
if (!path.startsWith(global.MediaBasePath)) {
|
||||||
|
Logger.warn(`${path} is not in media base directory`)
|
||||||
|
return res.status(400).send(`${path} is not in media base directory`)
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const direxists = await fs.pathExists(folder.fullPath)
|
const direxists = await fs.pathExists(path)
|
||||||
if (!direxists) { // If folder does not exist try to make it and set file permissions/owner
|
if (!direxists) { // If folder does not exist try to make it and set file permissions/owner
|
||||||
await fs.mkdir(folder.fullPath)
|
await fs.mkdir(path)
|
||||||
await filePerms.setDefault(folder.fullPath)
|
await filePerms.setDefault(path)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error(`[LibraryController] Failed to ensure folder dir "${folder.fullPath}"`, error)
|
Logger.error(`Failed to ensure folder dir "${path}"`, error)
|
||||||
return res.status(400).send(`Invalid folder directory "${folder.fullPath}"`)
|
return res.status(400).send(`Invalid folder directory "${path}"`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -97,6 +102,10 @@ class LibraryController {
|
||||||
return f
|
return f
|
||||||
})
|
})
|
||||||
for (const path of newFolderPaths) {
|
for (const path of newFolderPaths) {
|
||||||
|
if (!path.startsWith(global.MediaBasePath)) {
|
||||||
|
Logger.warn(`${path} is not in media base directory`)
|
||||||
|
return res.status(400).send(`${path} is not in media base directory`)
|
||||||
|
}
|
||||||
const pathExists = await fs.pathExists(path)
|
const pathExists = await fs.pathExists(path)
|
||||||
if (!pathExists) {
|
if (!pathExists) {
|
||||||
// Ensure dir will recursively create directories which might be preferred over mkdir
|
// Ensure dir will recursively create directories which might be preferred over mkdir
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue