Update:Auto update home page shelves when new episode is added #716

This commit is contained in:
advplyr 2023-05-27 09:13:44 -05:00
parent 9a617226b3
commit 2cc23b6d6b
2 changed files with 16 additions and 4 deletions

View File

@ -337,8 +337,9 @@ export default {
}, },
libraryItemsAdded(libraryItems) { libraryItemsAdded(libraryItems) {
console.log('libraryItems added', libraryItems) console.log('libraryItems added', libraryItems)
// TODO: Check if audiobook would be on this shelf
if (!this.search) { const isThisLibrary = !libraryItems.some((li) => li.libraryId !== this.currentLibraryId)
if (!this.search && isThisLibrary) {
this.fetchCategories() this.fetchCategories()
} }
}, },
@ -347,6 +348,14 @@ export default {
this.libraryItemUpdated(li) this.libraryItemUpdated(li)
}) })
}, },
episodeAdded(episodeWithLibraryItem) {
console.log('Podcast episode added', episodeWithLibraryItem)
const isThisLibrary = episodeWithLibraryItem.libraryItem?.libraryId === this.currentLibraryId
if (!this.search && isThisLibrary) {
this.fetchCategories()
}
},
removeAllSeriesFromContinueSeries(seriesIds) { removeAllSeriesFromContinueSeries(seriesIds) {
this.shelves.forEach((shelf) => { this.shelves.forEach((shelf) => {
if (shelf.type == 'book' && shelf.id == 'continue-series') { if (shelf.type == 'book' && shelf.id == 'continue-series') {
@ -407,6 +416,7 @@ export default {
this.$root.socket.on('item_removed', this.libraryItemRemoved) this.$root.socket.on('item_removed', this.libraryItemRemoved)
this.$root.socket.on('items_updated', this.libraryItemsUpdated) this.$root.socket.on('items_updated', this.libraryItemsUpdated)
this.$root.socket.on('items_added', this.libraryItemsAdded) this.$root.socket.on('items_added', this.libraryItemsAdded)
this.$root.socket.on('episode_added', this.episodeAdded)
} else { } else {
console.error('Error socket not initialized') console.error('Error socket not initialized')
} }
@ -421,6 +431,7 @@ export default {
this.$root.socket.off('item_removed', this.libraryItemRemoved) this.$root.socket.off('item_removed', this.libraryItemRemoved)
this.$root.socket.off('items_updated', this.libraryItemsUpdated) this.$root.socket.off('items_updated', this.libraryItemsUpdated)
this.$root.socket.off('items_added', this.libraryItemsAdded) this.$root.socket.off('items_added', this.libraryItemsAdded)
this.$root.socket.off('episode_added', this.episodeAdded)
} else { } else {
console.error('Error socket not initialized') console.error('Error socket not initialized')
} }

View File

@ -140,8 +140,6 @@ class PodcastManager {
async scanAddPodcastEpisodeAudioFile() { async scanAddPodcastEpisodeAudioFile() {
const libraryFile = await this.getLibraryFile(this.currentDownload.targetPath, this.currentDownload.targetRelPath) const libraryFile = await this.getLibraryFile(this.currentDownload.targetPath, this.currentDownload.targetRelPath)
// TODO: Set meta tags on new audio file
const audioFile = await this.probeAudioFile(libraryFile) const audioFile = await this.probeAudioFile(libraryFile)
if (!audioFile) { if (!audioFile) {
return false return false
@ -178,6 +176,9 @@ class PodcastManager {
libraryItem.updatedAt = Date.now() libraryItem.updatedAt = Date.now()
await this.db.updateLibraryItem(libraryItem) await this.db.updateLibraryItem(libraryItem)
SocketAuthority.emitter('item_updated', libraryItem.toJSONExpanded()) SocketAuthority.emitter('item_updated', libraryItem.toJSONExpanded())
const podcastEpisodeExpanded = podcastEpisode.toJSONExpanded()
podcastEpisodeExpanded.libraryItem = libraryItem.toJSONExpanded()
SocketAuthority.emitter('episode_added', podcastEpisodeExpanded)
if (this.currentDownload.isAutoDownload) { // Notifications only for auto downloaded episodes if (this.currentDownload.isAutoDownload) { // Notifications only for auto downloaded episodes
this.notificationManager.onPodcastEpisodeDownloaded(libraryItem, podcastEpisode) this.notificationManager.onPodcastEpisodeDownloaded(libraryItem, podcastEpisode)