diff --git a/index.js b/index.js index 7379322e8..ce0195e95 100644 --- a/index.js +++ b/index.js @@ -31,6 +31,11 @@ if (isDev || options['prod-with-dev-env']) { if (devEnv.AllowIframe) process.env.ALLOW_IFRAME = '1' if (devEnv.BackupPath) process.env.BACKUP_PATH = devEnv.BackupPath if (devEnv.ReactClientPath) process.env.REACT_CLIENT_PATH = devEnv.ReactClientPath + if (devEnv.AllowedDevOrigins) { + process.env.ALLOWED_DEV_ORIGINS = Array.isArray(devEnv.AllowedDevOrigins) + ? devEnv.AllowedDevOrigins.join(',') + : String(devEnv.AllowedDevOrigins) + } process.env.SOURCE = 'local' process.env.ROUTER_BASE_PATH = devEnv.RouterBasePath ?? '/audiobookshelf' } diff --git a/server/Server.js b/server/Server.js index d6f748a1e..ef0888927 100644 --- a/server/Server.js +++ b/server/Server.js @@ -302,7 +302,9 @@ class Server { this.server = http.createServer(app) + // Skip file upload parsing for internal-api routes (Next.js proxies read multipart bodies). router.use( + /^(?!\/internal-api).*/, fileUpload({ defCharset: 'utf8', defParamCharset: 'utf8', diff --git a/server/controllers/PodcastController.js b/server/controllers/PodcastController.js index 85173e622..5eaa2a64a 100644 --- a/server/controllers/PodcastController.js +++ b/server/controllers/PodcastController.js @@ -437,6 +437,17 @@ class PodcastController { } updatePayload[key] = req.body[key] + } else if (key === 'enclosure') { + const enclosure = req.body.enclosure + if (enclosure === null) { + updatePayload.enclosureURL = null + updatePayload.enclosureSize = null + updatePayload.enclosureType = null + } else if (typeof enclosure === 'object' && typeof enclosure.url === 'string') { + updatePayload.enclosureURL = enclosure.url + updatePayload.enclosureType = typeof enclosure.type === 'string' ? enclosure.type : null + updatePayload.enclosureSize = enclosure.length !== undefined && enclosure.length !== null ? enclosure.length : null + } } else if (key === 'chapters' && Array.isArray(req.body[key]) && req.body[key].every((ch) => typeof ch === 'object' && ch.title && ch.start)) { updatePayload[key] = req.body[key] } else if (key === 'publishedAt' && typeof req.body[key] === 'number') { diff --git a/server/utils/notifications.js b/server/utils/notifications.js index 700d3c389..497d7a1a1 100644 --- a/server/utils/notifications.js +++ b/server/utils/notifications.js @@ -100,7 +100,7 @@ module.exports.notificationData = { variables: ['version'], defaults: { title: 'Test Notification on Abs {{version}}', - body: 'Test notificataion body for abs {{version}}.' + body: 'Test notification body for abs {{version}}.' }, testData: { version: 'v' + version