Fix move bugs

This commit is contained in:
Tiberiu Ichim 2026-02-06 22:21:22 +02:00
parent 7cc476a6ed
commit 6b530d1567
4 changed files with 216 additions and 4 deletions

View file

@ -58,7 +58,8 @@ class LibraryItemScanner {
const libraryItemPath = updateLibraryItemDetails?.path || fileUtils.filePathToPOSIX(libraryItem.path)
const folder = library.libraryFolders[0]
const libraryItemScanData = await this.getLibraryItemScanData(libraryItemPath, library, folder, updateLibraryItemDetails?.isFile || false)
const isSingleMediaItem = updateLibraryItemDetails?.isFile !== undefined ? updateLibraryItemDetails.isFile : !!libraryItem.isFile
const libraryItemScanData = await this.getLibraryItemScanData(libraryItemPath, library, folder, isSingleMediaItem)
let libraryItemDataUpdated = await libraryItemScanData.checkLibraryItemData(libraryItem, scanLogger)

View file

@ -659,6 +659,7 @@ function isSingleMediaFile(fileUpdateGroup, itemDir) {
}
async function findLibraryItemByItemToItemInoMatch(libraryId, fullPath) {
if (!(await fs.pathExists(fullPath))) return null
const ino = await fileUtils.getIno(fullPath)
if (!ino) return null
const existingLibraryItem = await Database.libraryItemModel.findOneExpanded({
@ -672,6 +673,7 @@ async function findLibraryItemByItemToItemInoMatch(libraryId, fullPath) {
async function findLibraryItemByItemToFileInoMatch(libraryId, fullPath, isSingleMedia) {
if (!isSingleMedia) return null
// check if it was moved from another folder by comparing the ino to the library files
if (!(await fs.pathExists(fullPath))) return null
const ino = await fileUtils.getIno(fullPath)
if (!ino) return null
const existingLibraryItem = await Database.libraryItemModel.findOneExpanded(
@ -696,8 +698,11 @@ async function findLibraryItemByFileToItemInoMatch(libraryId, fullPath, isSingle
// check if it was moved from the root folder by comparing the ino to the ino of the scanned files
let itemFileInos = []
for (const itemFile of itemFiles) {
const ino = await fileUtils.getIno(Path.posix.join(fullPath, itemFile))
if (ino) itemFileInos.push(ino)
const filePath = Path.posix.join(fullPath, itemFile)
if (await fs.pathExists(filePath)) {
const ino = await fileUtils.getIno(filePath)
if (ino) itemFileInos.push(ino)
}
}
if (!itemFileInos.length) return null
const existingLibraryItem = await Database.libraryItemModel.findOneExpanded({