Update Podcast Episode add libraryItemId, expanded returns audioTrack object

This commit is contained in:
advplyr 2022-04-05 19:40:40 -05:00
parent 6e5e638076
commit ac3fa31d1e
3 changed files with 21 additions and 7 deletions

View File

@ -40,6 +40,7 @@ class PodcastManager {
episodesToDownload.forEach((ep) => {
var newPe = new PodcastEpisode()
newPe.setData(ep, index++)
newPe.libraryItemId = libraryItem.id
var newPeDl = new PodcastEpisodeDownload()
newPeDl.setData(newPe, libraryItem)
this.startPodcastEpisodeDownload(newPeDl)

View File

@ -4,6 +4,7 @@ const AudioTrack = require('../files/AudioTrack')
class PodcastEpisode {
constructor(episode) {
this.libraryItemId = null
this.id = null
this.index = null
@ -26,6 +27,7 @@ class PodcastEpisode {
}
construct(episode) {
this.libraryItemId = episode.libraryItemId
this.id = episode.id
this.index = episode.index
this.episode = episode.episode
@ -43,6 +45,7 @@ class PodcastEpisode {
toJSON() {
return {
libraryItemId: this.libraryItemId,
id: this.id,
index: this.index,
episode: this.episode,
@ -61,6 +64,7 @@ class PodcastEpisode {
toJSONExpanded() {
return {
libraryItemId: this.libraryItemId,
id: this.id,
index: this.index,
episode: this.episode,
@ -71,6 +75,7 @@ class PodcastEpisode {
enclosure: this.enclosure ? { ...this.enclosure } : null,
pubDate: this.pubDate,
audioFile: this.audioFile.toJSON(),
audioTrack: this.audioTrack.toJSON(),
publishedAt: this.publishedAt,
addedAt: this.addedAt,
updatedAt: this.updatedAt,
@ -79,8 +84,13 @@ class PodcastEpisode {
}
}
get audioTrack() {
var audioTrack = new AudioTrack()
audioTrack.setData(this.libraryItemId, this.audioFile, 0)
return audioTrack
}
get tracks() {
return [this.audioFile]
return [this.audioTrack]
}
get duration() {
return this.audioFile.duration
@ -135,10 +145,8 @@ class PodcastEpisode {
return supportedMimeTypes.includes(this.audioFile.mimeType)
}
getDirectPlayTracklist(libraryItemId) {
var audioTrack = new AudioTrack()
audioTrack.setData(libraryItemId, this.audioFile, 0)
return [audioTrack]
getDirectPlayTracklist() {
return this.tracks
}
checkEqualsEnclosureUrl(url) {

View File

@ -31,7 +31,11 @@ class Podcast {
this.metadata = new PodcastMetadata(podcast.metadata)
this.coverPath = podcast.coverPath
this.tags = [...podcast.tags]
this.episodes = podcast.episodes.map((e) => new PodcastEpisode(e))
this.episodes = podcast.episodes.map((e) => {
var podcastEpisode = new PodcastEpisode(e)
podcastEpisode.libraryItemId = this.libraryItemId
return podcastEpisode
})
this.autoDownloadEpisodes = !!podcast.autoDownloadEpisodes
this.lastEpisodeCheck = podcast.lastEpisodeCheck || 0
}
@ -179,7 +183,7 @@ class Podcast {
getDirectPlayTracklist(episodeId) {
var episode = this.episodes.find(ep => ep.id === episodeId)
if (!episode) return false
return episode.getDirectPlayTracklist(this.libraryItemId)
return episode.getDirectPlayTracklist()
}
addPodcastEpisode(podcastEpisode) {
@ -188,6 +192,7 @@ class Podcast {
addNewEpisodeFromAudioFile(audioFile, index) {
var pe = new PodcastEpisode()
pe.libraryItemId = this.libraryItemId
pe.setDataFromAudioFile(audioFile, index)
this.episodes.push(pe)
}