Update PlaybackSession to use new library item model

This commit is contained in:
advplyr 2025-01-03 11:16:03 -06:00
parent d205c6f734
commit c251f1899d
16 changed files with 284 additions and 193 deletions

View file

@ -135,23 +135,28 @@ class PodcastEpisode extends Model {
PodcastEpisode.belongsTo(podcast)
}
get size() {
return this.audioFile?.metadata.size || 0
}
get duration() {
return this.audioFile?.duration || 0
}
/**
* AudioTrack object used in old model
* Used in client players
*
* @returns {import('./Book').AudioFileObject|null}
* @param {string} libraryItemId
* @returns {import('./Book').AudioTrack}
*/
get track() {
if (!this.audioFile) return null
getAudioTrack(libraryItemId) {
const track = structuredClone(this.audioFile)
track.startOffset = 0
track.title = this.audioFile.metadata.title
track.contentUrl = `${global.RouterBasePath}/api/items/${libraryItemId}/file/${track.ino}`
return track
}
get size() {
return this.audioFile?.metadata.size || 0
}
/**
* @param {string} libraryItemId
* @returns {oldPodcastEpisode}
@ -228,9 +233,9 @@ class PodcastEpisode extends Model {
toOldJSONExpanded(libraryItemId) {
const json = this.toOldJSON(libraryItemId)
json.audioTrack = this.track
json.audioTrack = this.getAudioTrack(libraryItemId)
json.size = this.size
json.duration = this.audioFile?.duration || 0
json.duration = this.duration
return json
}