mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-12-21 19:29:37 +00:00
Update numIssues on filter data, fix watcher scanning in new items
This commit is contained in:
parent
4f94deefa0
commit
21343ffbd1
4 changed files with 74 additions and 8 deletions
|
|
@ -191,6 +191,8 @@ class LibraryController {
|
|||
return user.checkCanAccessLibrary && user.checkCanAccessLibrary(library.id)
|
||||
}
|
||||
SocketAuthority.emitter('library_updated', library.toJSON(), userFilter)
|
||||
|
||||
await Database.resetLibraryIssuesFilterData(library.id)
|
||||
}
|
||||
return res.json(library.toJSON())
|
||||
}
|
||||
|
|
@ -249,6 +251,12 @@ class LibraryController {
|
|||
await Database.models.library.resetDisplayOrder()
|
||||
|
||||
SocketAuthority.emitter('library_removed', libraryJson)
|
||||
|
||||
// Remove library filter data
|
||||
if (Database.libraryFilterData[library.id]) {
|
||||
delete Database.libraryFilterData[library.id]
|
||||
}
|
||||
|
||||
return res.json(libraryJson)
|
||||
}
|
||||
|
||||
|
|
@ -480,6 +488,7 @@ class LibraryController {
|
|||
async removeLibraryItemsWithIssues(req, res) {
|
||||
const libraryItemsWithIssues = await Database.models.libraryItem.findAll({
|
||||
where: {
|
||||
libraryId: req.library.id,
|
||||
[Sequelize.Op.or]: [
|
||||
{
|
||||
isMissing: true
|
||||
|
|
@ -519,6 +528,11 @@ class LibraryController {
|
|||
await this.handleDeleteLibraryItem(libraryItem.mediaType, libraryItem.id, mediaItemIds)
|
||||
}
|
||||
|
||||
// Set numIssues to 0 for library filter data
|
||||
if (Database.libraryFilterData[req.library.id]) {
|
||||
Database.libraryFilterData[req.library.id].numIssues = 0
|
||||
}
|
||||
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
|
|
@ -963,6 +977,7 @@ class LibraryController {
|
|||
}
|
||||
res.sendStatus(200)
|
||||
await this.scanner.scan(req.library, options)
|
||||
await Database.resetLibraryIssuesFilterData(req.library.id)
|
||||
Logger.info('[LibraryController] Scan complete')
|
||||
}
|
||||
|
||||
|
|
@ -1039,9 +1054,9 @@ class LibraryController {
|
|||
|
||||
/**
|
||||
* Middleware that is not using libraryItems from memory
|
||||
* @param {*} req
|
||||
* @param {*} res
|
||||
* @param {*} next
|
||||
* @param {import('express').Request} req
|
||||
* @param {import('express').Response} res
|
||||
* @param {import('express').NextFunction} next
|
||||
*/
|
||||
async middlewareNew(req, res, next) {
|
||||
if (!req.user.checkCanAccessLibrary(req.params.id)) {
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ class LibraryItemController {
|
|||
Logger.error(`[LibraryItemController] Failed to delete library item from file system at "${libraryItemPath}"`, error)
|
||||
})
|
||||
}
|
||||
await Database.resetLibraryIssuesFilterData(req.libraryItem.libraryId)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
|
|
@ -332,6 +333,8 @@ class LibraryItemController {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
await Database.resetLibraryIssuesFilterData(req.libraryItem.libraryId)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
|
|
@ -456,9 +459,11 @@ class LibraryItemController {
|
|||
await this.scanner.scanLibraryItemByRequest(libraryItem)
|
||||
}
|
||||
}
|
||||
|
||||
await Database.resetLibraryIssuesFilterData(req.libraryItem.libraryId)
|
||||
}
|
||||
|
||||
// POST: api/items/:id/scan (admin)
|
||||
// POST: api/items/:id/scan
|
||||
async scan(req, res) {
|
||||
if (!req.user.isAdminOrUp) {
|
||||
Logger.error(`[LibraryItemController] Non-admin user attempted to scan library item`, req.user)
|
||||
|
|
@ -471,6 +476,7 @@ class LibraryItemController {
|
|||
}
|
||||
|
||||
const result = await this.scanner.scanLibraryItemByRequest(req.libraryItem)
|
||||
await Database.resetLibraryIssuesFilterData(req.libraryItem.libraryId)
|
||||
res.json({
|
||||
result: Object.keys(ScanResult).find(key => ScanResult[key] == result)
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue