mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-01 13:04:52 +02:00
Add: More menu on book card #173, Fix: Download worker ffmpeg logs
This commit is contained in:
parent
7141f70aa5
commit
54570a3b27
10 changed files with 295 additions and 54 deletions
|
@ -285,6 +285,10 @@ class DownloadManager {
|
|||
if (!download.isTimedOut) {
|
||||
this.sendResult(download, message)
|
||||
}
|
||||
} else if (message.type === 'FFMPEG') {
|
||||
if (Logger[message.level]) {
|
||||
Logger[message.level](message.log)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Logger.error('Invalid worker message', message)
|
||||
|
|
|
@ -5,10 +5,12 @@ if (process.env.FFMPEG_PATH) {
|
|||
}
|
||||
|
||||
const { parentPort, workerData } = require("worker_threads")
|
||||
const Logger = require('../Logger')
|
||||
|
||||
Logger.info('[DownloadWorker] Starting Worker...')
|
||||
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'debug',
|
||||
log: '[DownloadWorker] Starting Worker...'
|
||||
})
|
||||
|
||||
const ffmpegCommand = Ffmpeg()
|
||||
const startTime = Date.now()
|
||||
|
@ -27,25 +29,45 @@ var isKilled = false
|
|||
async function runFfmpeg() {
|
||||
var success = await new Promise((resolve) => {
|
||||
ffmpegCommand.on('start', (command) => {
|
||||
Logger.info('[DownloadWorker] FFMPEG concat started with command: ' + command)
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'info',
|
||||
log: '[DownloadWorker] FFMPEG concat started with command: ' + command
|
||||
})
|
||||
})
|
||||
|
||||
ffmpegCommand.on('stderr', (stdErrline) => {
|
||||
Logger.info(stdErrline)
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'error',
|
||||
log: '[DownloadWorker] Ffmpeg Stderr: ' + stdErrline
|
||||
})
|
||||
})
|
||||
|
||||
ffmpegCommand.on('error', (err, stdout, stderr) => {
|
||||
if (err.message && err.message.includes('SIGKILL')) {
|
||||
// This is an intentional SIGKILL
|
||||
Logger.info('[DownloadWorker] User Killed singleAudio')
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'info',
|
||||
log: '[DownloadWorker] User Killed worker'
|
||||
})
|
||||
} else {
|
||||
Logger.error('[DownloadWorker] Ffmpeg Err', err.message)
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'error',
|
||||
log: '[DownloadWorker] Ffmpeg Err: ' + err.message
|
||||
})
|
||||
}
|
||||
resolve(false)
|
||||
})
|
||||
|
||||
ffmpegCommand.on('end', (stdout, stderr) => {
|
||||
Logger.info('[DownloadWorker] singleAudio ended')
|
||||
parentPort.postMessage({
|
||||
type: 'FFMPEG',
|
||||
level: 'info',
|
||||
log: '[DownloadWorker] worker ended'
|
||||
})
|
||||
resolve(true)
|
||||
})
|
||||
ffmpegCommand.run()
|
||||
|
@ -62,7 +84,6 @@ async function runFfmpeg() {
|
|||
|
||||
parentPort.on('message', (message) => {
|
||||
if (message === 'STOP') {
|
||||
Logger.info('[DownloadWorker] Requested a hard stop')
|
||||
isKilled = true
|
||||
ffmpegCommand.kill()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue