Skip to content

Commit

Permalink
Merge pull request #3921 from advplyr/fix_content_url_basepath
Browse files Browse the repository at this point in the history
Fix API including basepath in tracks contentUrl
  • Loading branch information
advplyr authored Feb 1, 2025
2 parents a58d486 + aebb3ff commit 40e11db
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 12 deletions.
5 changes: 1 addition & 4 deletions client/pages/audiobook/_id/chapters.vue
Original file line number Diff line number Diff line change
Expand Up @@ -414,11 +414,8 @@ export default {
const audioEl = this.audioEl || document.createElement('audio')
var src = audioTrack.contentUrl + `?token=${this.userToken}`
if (this.$isDev) {
src = `${process.env.serverUrl}${src}`
}
audioEl.src = src
audioEl.src = `${process.env.serverUrl}${src}`
audioEl.id = 'chapter-audio'
document.body.appendChild(audioEl)
Expand Down
13 changes: 10 additions & 3 deletions client/players/AudioTrack.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export default class AudioTrack {
constructor(track, userToken) {
constructor(track, userToken, routerBasePath) {
this.index = track.index || 0
this.startOffset = track.startOffset || 0 // Total time of all previous tracks
this.duration = track.duration || 0
Expand All @@ -9,20 +9,27 @@ export default class AudioTrack {
this.metadata = track.metadata || {}

this.userToken = userToken
this.routerBasePath = routerBasePath || ''
}

/**
* Used for CastPlayer
*/
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}`
return `${window.location.origin}${this.routerBasePath}${this.contentUrl}?token=${this.userToken}`
}

/**
* Used for LocalPlayer
*/
get relativeContentUrl() {
if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl

return this.contentUrl + `?token=${this.userToken}`
return `${this.routerBasePath}${this.contentUrl}?token=${this.userToken}`
}
}
2 changes: 1 addition & 1 deletion client/players/PlayerHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ export default class PlayerHandler {

console.log('[PlayerHandler] Preparing Session', session)

var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, this.userToken))
var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, this.userToken, this.ctx.$config.routerBasePath))

this.ctx.playerLoading = true
this.isHlsTranscode = true
Expand Down
2 changes: 1 addition & 1 deletion server/models/Book.js
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ class Book extends Model {
const track = structuredClone(af)
track.title = af.metadata.filename
track.startOffset = startOffset
track.contentUrl = `${global.RouterBasePath}/api/items/${libraryItemId}/file/${track.ino}`
track.contentUrl = `/api/items/${libraryItemId}/file/${track.ino}`
startOffset += track.duration
return track
})
Expand Down
2 changes: 1 addition & 1 deletion server/models/PodcastEpisode.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ class PodcastEpisode extends Model {
const track = structuredClone(this.audioFile)
track.startOffset = 0
track.title = this.audioFile.metadata.filename
track.contentUrl = `${global.RouterBasePath}/api/items/${libraryItemId}/file/${track.ino}`
track.contentUrl = `/api/items/${libraryItemId}/file/${track.ino}`
return track
}

Expand Down
4 changes: 2 additions & 2 deletions server/objects/files/AudioTrack.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class AudioTrack {
this.duration = audioFile.duration
this.title = audioFile.metadata.filename || ''

this.contentUrl = `${global.RouterBasePath}/api/items/${itemId}/file/${audioFile.ino}`
this.contentUrl = `/api/items/${itemId}/file/${audioFile.ino}`
this.mimeType = audioFile.mimeType
this.codec = audioFile.codec || null
this.metadata = audioFile.metadata.clone()
Expand All @@ -44,4 +44,4 @@ class AudioTrack {
this.mimeType = 'application/vnd.apple.mpegurl'
}
}
module.exports = AudioTrack
module.exports = AudioTrack

0 comments on commit 40e11db

Please sign in to comment.