diff --git a/server/entity/Media.ts b/server/entity/Media.ts index ed8e588bf..704a5f104 100644 --- a/server/entity/Media.ts +++ b/server/entity/Media.ts @@ -200,10 +200,11 @@ class Media { const pageName = process.env.JELLYFIN_TYPE === 'emby' ? 'item' : 'details'; const { serverId, hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + jellyfinHost = jellyfinHost.endsWith("/") ? jellyfinHost.slice(0, -1) : jellyfinHost; if (this.jellyfinMediaId) { this.mediaUrl = `${jellyfinHost}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId}&context=home&serverId=${serverId}`; } diff --git a/server/routes/auth.ts b/server/routes/auth.ts index 4b22943e1..0bce293df 100644 --- a/server/routes/auth.ts +++ b/server/routes/auth.ts @@ -244,10 +244,11 @@ authRoutes.post('/jellyfin', async (req, res, next) => { } // First we need to attempt to log the user in to jellyfin const jellyfinserver = new JellyfinAPI(hostname ?? '', undefined, deviceId); - const jellyfinHost = - externalHostname && externalHostname.length > 0 - ? externalHostname - : hostname; + let jellyfinHost = + externalHostname && externalHostname.length > 0 + ? externalHostname + : hostname; + jellyfinHost = jellyfinHost.endsWith("/") ? jellyfinHost.slice(0, -1) : jellyfinHost; const account = await jellyfinserver.login(body.username, body.password); // Next let's see if the user already exists diff --git a/server/routes/settings/index.ts b/server/routes/settings/index.ts index 3a7cb6dfc..2fcc1a00a 100644 --- a/server/routes/settings/index.ts +++ b/server/routes/settings/index.ts @@ -307,10 +307,11 @@ settingsRoutes.get('/jellyfin/library', async (req, res) => { settingsRoutes.get('/jellyfin/users', async (req, res) => { const settings = getSettings(); const { hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = - externalHostname && externalHostname.length > 0 - ? externalHostname - : hostname; + let jellyfinHost = + externalHostname && externalHostname.length > 0 + ? externalHostname + : hostname; + jellyfinHost = jellyfinHost.endsWith("/") ? jellyfinHost.slice(0, -1) : jellyfinHost; const userRepository = getRepository(User); const admin = await userRepository.findOneOrFail({ diff --git a/server/routes/user/index.ts b/server/routes/user/index.ts index a875ca1fc..349cde076 100644 --- a/server/routes/user/index.ts +++ b/server/routes/user/index.ts @@ -497,10 +497,11 @@ router.post( //const jellyfinUsersResponse = await jellyfinClient.getUsers(); const createdUsers: User[] = []; const { hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + jellyfinHost = jellyfinHost.endsWith("/") ? jellyfinHost.slice(0, -1) : jellyfinHost; jellyfinClient.setUserId(admin.jellyfinUserId ?? ''); const jellyfinUsers = await jellyfinClient.getUsers();