Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions server/utils/mediaServerHelper.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { MediaServerType } from '@server/constants/server';

/**
* Selects the human-readable name for the configured media server.
*
* @param currentMediaServer - The media server type configured in settings
* @returns `'Emby'`, `'Plex'`, or `'Jellyfin'` representing the active media server
*/
export function getAvailableMediaServerName(
currentMediaServer: MediaServerType
): string {
if (currentMediaServer === MediaServerType.EMBY) {
return 'Emby';
}

if (currentMediaServer === MediaServerType.PLEX) {
return 'Plex';
}

return 'Jellyfin';
}

/**
* Selects the most appropriate media server URL from a notification payload, preferring the 4K URL when requested.
*
* @returns The chosen media server URL, or `undefined` if none is available.
*/
export function getAvailableMediaServerUrl(payload: {
request?: { is4k?: boolean };
media?: {
mediaUrl?: string;
mediaUrl4k?: string;
};
}): string | undefined {
const wants4k = payload.request?.is4k;
const url4k = payload.media?.mediaUrl4k;
const url = payload.media?.mediaUrl;

return (wants4k ? (url4k ?? url) : (url ?? url4k)) || undefined;
}
Loading