mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-05-24 01:13:00 -04:00
Merge pull request #4195 from advplyr/fix_podcast_episode_scanner_promise
Fix podcast re-scan promise
This commit is contained in:
commit
26309019e7
@ -59,17 +59,36 @@ class PodcastScanner {
|
|||||||
|
|
||||||
if (libraryItemData.hasAudioFileChanges || libraryItemData.audioLibraryFiles.length !== existingPodcastEpisodes.length) {
|
if (libraryItemData.hasAudioFileChanges || libraryItemData.audioLibraryFiles.length !== existingPodcastEpisodes.length) {
|
||||||
// Filter out and destroy episodes that were removed
|
// Filter out and destroy episodes that were removed
|
||||||
existingPodcastEpisodes = await Promise.all(
|
const episodesToRemove = []
|
||||||
existingPodcastEpisodes.filter(async (ep) => {
|
existingPodcastEpisodes = existingPodcastEpisodes.filter((ep) => {
|
||||||
if (libraryItemData.checkAudioFileRemoved(ep.audioFile)) {
|
if (libraryItemData.checkAudioFileRemoved(ep.audioFile)) {
|
||||||
libraryScan.addLog(LogLevel.INFO, `Podcast episode "${ep.title}" audio file was removed`)
|
episodesToRemove.push(ep)
|
||||||
// TODO: Should clean up other data linked to this episode
|
|
||||||
await ep.destroy()
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (episodesToRemove.length) {
|
||||||
|
// Remove episodes from playlists and media progress
|
||||||
|
const episodeIds = episodesToRemove.map((ep) => ep.id)
|
||||||
|
await Database.playlistModel.removeMediaItemsFromPlaylists(episodeIds)
|
||||||
|
const mediaProgressRemoved = await Database.mediaProgressModel.destroy({
|
||||||
|
where: {
|
||||||
|
mediaItemId: episodeIds
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (mediaProgressRemoved) {
|
||||||
|
libraryScan.addLog(LogLevel.INFO, `Removed ${mediaProgressRemoved} media progress for episodes`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove episodes
|
||||||
|
await Promise.all(
|
||||||
|
episodesToRemove.map(async (ep) => {
|
||||||
|
await ep.destroy()
|
||||||
|
libraryScan.addLog(LogLevel.INFO, `Podcast episode "${ep.title}" audio file was removed`)
|
||||||
|
})
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// Update audio files that were modified
|
// Update audio files that were modified
|
||||||
if (libraryItemData.audioLibraryFilesModified.length) {
|
if (libraryItemData.audioLibraryFilesModified.length) {
|
||||||
@ -139,7 +158,6 @@ class PodcastScanner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let hasMediaChanges = false
|
let hasMediaChanges = false
|
||||||
|
|
||||||
if (existingPodcastEpisodes.length !== media.numEpisodes) {
|
if (existingPodcastEpisodes.length !== media.numEpisodes) {
|
||||||
media.numEpisodes = existingPodcastEpisodes.length
|
media.numEpisodes = existingPodcastEpisodes.length
|
||||||
hasMediaChanges = true
|
hasMediaChanges = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user