audiobookshelf/client/players/AudioTrack.js

44 lines
1.5 KiB
JavaScript
Raw Normal View History

export default class AudioTrack {
2024-05-04 11:00:30 +01:00
constructor(track, userToken) {
this.index = track.index || 0
this.startOffset = track.startOffset || 0 // Total time of all previous tracks
this.duration = track.duration || 0
this.title = track.title || ''
this.contentUrl = track.contentUrl || null
this.transcriptUrl = track.transcriptUrl || null
this.mimeType = track.mimeType
this.metadata = track.metadata || {}
this.userToken = userToken
}
get fullContentUrl() {
if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl
if (process.env.NODE_ENV === 'development') {
return `${process.env.serverUrl}${this.contentUrl}?token=${this.userToken}`
}
return `${window.location.origin}${this.contentUrl}?token=${this.userToken}`
}
2024-05-04 11:00:30 +01:00
get relativeContentUrl() {
if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl
2024-05-04 11:00:30 +01:00
if (process.env.NODE_ENV === 'development') {
return `${process.env.serverUrl}${this.contentUrl}?token=${this.userToken}`
}
return this.contentUrl + `?token=${this.userToken}`
}
2024-05-04 11:00:30 +01:00
get relativeTranscriptionUrl() {
if (!this.transcriptUrl || this.transcriptUrl.startsWith('http')) return this.transcriptUrl
if (process.env.NODE_ENV === 'development') {
return `${process.env.serverUrl}${this.transcriptUrl}?token=${this.userToken}`
}
return this.transcriptUrl + `?token=${this.userToken}`
}
}