Files
allstarr/allstarr/Models/Settings/JellyfinSettings.cs
Josh Patra e18840cddf feat: Fork octo-fiestarr as allstarr with Jellyfin proxy improvements
Major changes:
- Rename project from octo-fiesta to allstarr
- Add Jellyfin proxy support alongside Subsonic/Navidrome
- Implement fuzzy search with relevance scoring and Levenshtein distance
- Add POST body logging for debugging playback progress issues
- Separate local and external artists in search results
- Add +5 score boost for external results to prioritize larger catalog(probably gonna reverse it)
- Create FuzzyMatcher utility for intelligent search result scoring
- Add ConvertPlaylistToJellyfinItem method for playlist support
- Rename keys folder to apis and update gitignore
- Filter search results by relevance score (>= 40)
- Add Redis caching support with configurable settings
- Update environment configuration with backend selection
- Improve external provider integration (SquidWTF, Deezer, Qobuz)
- Add tests for all services
2026-01-29 17:36:53 -05:00

68 lines
2.1 KiB
C#

namespace allstarr.Models.Settings;
/// <summary>
/// Configuration for Jellyfin media server backend
/// </summary>
public class JellyfinSettings
{
/// <summary>
/// URL of the Jellyfin server
/// Environment variable: JELLYFIN_URL
/// </summary>
public string? Url { get; set; }
/// <summary>
/// API key for authenticating with Jellyfin server
/// Environment variable: JELLYFIN_API_KEY
/// </summary>
public string? ApiKey { get; set; }
/// <summary>
/// User ID for accessing Jellyfin library
/// Environment variable: JELLYFIN_USER_ID
/// </summary>
public string? UserId { get; set; }
/// <summary>
/// Username that clients must provide to authenticate
/// Environment variable: JELLYFIN_CLIENT_USERNAME
/// </summary>
public string? ClientUsername { get; set; }
/// <summary>
/// Music library ID in Jellyfin (optional, auto-detected if not specified)
/// Environment variable: JELLYFIN_LIBRARY_ID
/// </summary>
public string? LibraryId { get; set; }
/// <summary>
/// Client name reported to Jellyfin
/// </summary>
public string ClientName { get; set; } = "Allstarr";
/// <summary>
/// Client version reported to Jellyfin
/// </summary>
public string ClientVersion { get; set; } = "1.0.0";
/// <summary>
/// Device ID reported to Jellyfin
/// </summary>
public string DeviceId { get; set; } = "allstarrrr-proxy";
/// <summary>
/// Device name reported to Jellyfin
/// </summary>
public string DeviceName { get; set; } = "Allstarr Proxy";
// Shared settings (same as SubsonicSettings)
public ExplicitFilter ExplicitFilter { get; set; } = ExplicitFilter.All;
public DownloadMode DownloadMode { get; set; } = DownloadMode.Track;
public MusicService MusicService { get; set; } = MusicService.SquidWTF;
public StorageMode StorageMode { get; set; } = StorageMode.Permanent;
public int CacheDurationHours { get; set; } = 1;
public bool EnableExternalPlaylists { get; set; } = true;
public string PlaylistsDirectory { get; set; } = "playlists";
}