mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-04-01 11:46:53 +02:00
Fix:Improve performance for podcast rss feed episodes modal for large rss feeds
This commit is contained in:
parent
a0eb6bd3dc
commit
eaf6bf29cc
@ -68,7 +68,9 @@ export default {
|
|||||||
selectAll: false,
|
selectAll: false,
|
||||||
search: null,
|
search: null,
|
||||||
searchTimeout: null,
|
searchTimeout: null,
|
||||||
searchText: null
|
searchText: null,
|
||||||
|
downloadedEpisodeGuidMap: {},
|
||||||
|
downloadedEpisodeUrlMap: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -122,11 +124,13 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getIsEpisodeDownloaded(episode) {
|
getIsEpisodeDownloaded(episode) {
|
||||||
return this.itemEpisodes.some((downloadedEpisode) => {
|
if (episode.guid && !!this.downloadedEpisodeGuidMap[episode.guid]) {
|
||||||
if (episode.guid && downloadedEpisode.guid === episode.guid) return true
|
return true
|
||||||
if (!downloadedEpisode.enclosure?.url) return false
|
}
|
||||||
return this.getCleanEpisodeUrl(downloadedEpisode.enclosure.url) === episode.cleanUrl
|
if (this.downloadedEpisodeUrlMap[episode.cleanUrl]) {
|
||||||
})
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* UPDATE: As of v2.4.5 guid is used for matching existing downloaded episodes if it is found on the RSS feed.
|
* UPDATE: As of v2.4.5 guid is used for matching existing downloaded episodes if it is found on the RSS feed.
|
||||||
@ -219,6 +223,14 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
|
this.downloadedEpisodeGuidMap = {}
|
||||||
|
this.downloadedEpisodeUrlMap = {}
|
||||||
|
|
||||||
|
this.itemEpisodes.forEach((episode) => {
|
||||||
|
if (episode.guid) this.downloadedEpisodeGuidMap[episode.guid] = episode.id
|
||||||
|
if (episode.enclosure?.url) this.downloadedEpisodeUrlMap[this.getCleanEpisodeUrl(episode.enclosure.url)] = episode.id
|
||||||
|
})
|
||||||
|
|
||||||
this.episodesCleaned = this.episodes
|
this.episodesCleaned = this.episodes
|
||||||
.filter((ep) => ep.enclosure?.url)
|
.filter((ep) => ep.enclosure?.url)
|
||||||
.map((_ep) => {
|
.map((_ep) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user