Fix incorrect audiobook file paths before a scan

This commit is contained in:
advplyr 2021-08-24 07:50:36 -05:00
parent d63e582e56
commit 82241fd2f2
2 changed files with 24 additions and 0 deletions

View File

@ -157,6 +157,20 @@ class Audiobook {
}
}
// Scanner had a bug that was saving a file path as the audiobook path.
// audiobook path should be a directory.
// fixing this before a scan prevents audiobooks being removed and re-added
fixRelativePath(abRootPath) {
var pathExt = Path.extname(this.path)
if (pathExt) {
this.path = Path.dirname(this.path)
this.fullPath = Path.join(abRootPath, this.path)
Logger.warn('Audiobook path has extname', pathExt, 'fixed path:', this.path)
return true
}
return false
}
setData(data) {
this.id = (Math.trunc(Math.random() * 1000) + Date.now()).toString(36)
this.path = data.path

View File

@ -1,3 +1,4 @@
const Path = require('path')
const Logger = require('./Logger')
const BookFinder = require('./BookFinder')
const Audiobook = require('./Audiobook')
@ -20,6 +21,15 @@ class Scanner {
}
async scan() {
// TEMP - fix relative file paths
if (this.audiobooks.length) {
for (let i = 0; i < this.audiobooks.length; i++) {
if (ab.fixRelativePath(this.AudiobookPath)) {
await this.db.updateAudiobook(ab)
}
}
}
const scanStart = Date.now()
var audiobookDataFound = await getAllAudiobookFiles(this.AudiobookPath)