mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
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
68 lines
2.1 KiB
C#
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";
|
|
}
|