0.10.0 Audbile Prototype

This commit is contained in:
2026-03-14 13:35:23 +00:00
parent 5d79a34905
commit e56cff43a9
22 changed files with 1667 additions and 148 deletions
+28
View File
@@ -1,4 +1,7 @@
const express = require('express');
const os = require('os');
const path = require('path');
const multer = require('multer');
const asyncHandler = require('../middleware/asyncHandler');
const pipelineService = require('../services/pipelineService');
const diskDetectionService = require('../services/diskDetectionService');
@@ -6,6 +9,9 @@ const hardwareMonitorService = require('../services/hardwareMonitorService');
const logger = require('../services/logger').child('PIPELINE_ROUTE');
const router = express.Router();
const audiobookUpload = multer({
dest: path.join(os.tmpdir(), 'ripster-audiobook-uploads')
});
router.get(
'/state',
@@ -125,6 +131,28 @@ router.post(
})
);
router.post(
'/audiobook/upload',
audiobookUpload.single('file'),
asyncHandler(async (req, res) => {
if (!req.file) {
const error = new Error('Upload-Datei fehlt.');
error.statusCode = 400;
throw error;
}
logger.info('post:audiobook:upload', {
reqId: req.reqId,
originalName: req.file.originalname,
sizeBytes: Number(req.file.size || 0)
});
const result = await pipelineService.uploadAudiobookFile(req.file, {
format: req.body?.format,
startImmediately: req.body?.startImmediately
});
res.json({ result });
})
);
router.post(
'/select-metadata',
asyncHandler(async (req, res) => {