mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-10 07:58:39 -05:00
refactor: reorganize Models into subdirectories by context
Split monolithic MusicModels.cs (177 lines) into separate files: - Models/Settings/ (DeezerSettings, QobuzSettings, SubsonicSettings) - Models/Domain/ (Song, Album, Artist) - Models/Search/ (SearchResult) - Models/Download/ (DownloadInfo, DownloadStatus) - Models/Subsonic/ (ScanStatus) Updated namespaces and imports across 22 files. Improves navigation and separates models by business context.
This commit is contained in:
25
octo-fiesta/Models/Settings/DeezerSettings.cs
Normal file
25
octo-fiesta/Models/Settings/DeezerSettings.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace octo_fiesta.Models.Settings;
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for the Deezer downloader and metadata service
|
||||
/// </summary>
|
||||
public class DeezerSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Deezer ARL token (required for downloading)
|
||||
/// Obtained from browser cookies after logging into deezer.com
|
||||
/// </summary>
|
||||
public string? Arl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fallback ARL token (optional)
|
||||
/// Used if the primary ARL token fails
|
||||
/// </summary>
|
||||
public string? ArlFallback { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Preferred audio quality: FLAC, MP3_320, MP3_128
|
||||
/// If not specified or unavailable, the highest available quality will be used.
|
||||
/// </summary>
|
||||
public string? Quality { get; set; }
|
||||
}
|
||||
25
octo-fiesta/Models/Settings/QobuzSettings.cs
Normal file
25
octo-fiesta/Models/Settings/QobuzSettings.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace octo_fiesta.Models.Settings;
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for the Qobuz downloader and metadata service
|
||||
/// </summary>
|
||||
public class QobuzSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Qobuz user authentication token
|
||||
/// Obtained from browser's localStorage after logging into play.qobuz.com
|
||||
/// </summary>
|
||||
public string? UserAuthToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Qobuz user ID
|
||||
/// Obtained from browser's localStorage after logging into play.qobuz.com
|
||||
/// </summary>
|
||||
public string? UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Preferred audio quality: FLAC, MP3_320, MP3_128
|
||||
/// If not specified or unavailable, the highest available quality will be used.
|
||||
/// </summary>
|
||||
public string? Quality { get; set; }
|
||||
}
|
||||
84
octo-fiesta/Models/Settings/SubsonicSettings.cs
Normal file
84
octo-fiesta/Models/Settings/SubsonicSettings.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
namespace octo_fiesta.Models.Settings;
|
||||
|
||||
/// <summary>
|
||||
/// Download mode for tracks
|
||||
/// </summary>
|
||||
public enum DownloadMode
|
||||
{
|
||||
/// <summary>
|
||||
/// Download only the requested track (default behavior)
|
||||
/// </summary>
|
||||
Track,
|
||||
|
||||
/// <summary>
|
||||
/// When a track is played, download the entire album in background
|
||||
/// The requested track is downloaded first, then remaining tracks are queued
|
||||
/// </summary>
|
||||
Album
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Explicit content filter mode for Deezer tracks
|
||||
/// </summary>
|
||||
public enum ExplicitFilter
|
||||
{
|
||||
/// <summary>
|
||||
/// Show all tracks (no filtering)
|
||||
/// </summary>
|
||||
All,
|
||||
|
||||
/// <summary>
|
||||
/// Exclude clean/edited versions (explicit_content_lyrics == 3)
|
||||
/// Shows original explicit content and naturally clean content
|
||||
/// </summary>
|
||||
ExplicitOnly,
|
||||
|
||||
/// <summary>
|
||||
/// Only show clean content (explicit_content_lyrics == 0 or 3)
|
||||
/// Excludes tracks with explicit_content_lyrics == 1
|
||||
/// </summary>
|
||||
CleanOnly
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Music service provider
|
||||
/// </summary>
|
||||
public enum MusicService
|
||||
{
|
||||
/// <summary>
|
||||
/// Deezer music service
|
||||
/// </summary>
|
||||
Deezer,
|
||||
|
||||
/// <summary>
|
||||
/// Qobuz music service
|
||||
/// </summary>
|
||||
Qobuz
|
||||
}
|
||||
|
||||
public class SubsonicSettings
|
||||
{
|
||||
public string? Url { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Explicit content filter mode (default: All)
|
||||
/// Environment variable: EXPLICIT_FILTER
|
||||
/// Values: "All", "ExplicitOnly", "CleanOnly"
|
||||
/// Note: Only works with Deezer
|
||||
/// </summary>
|
||||
public ExplicitFilter ExplicitFilter { get; set; } = ExplicitFilter.All;
|
||||
|
||||
/// <summary>
|
||||
/// Download mode for tracks (default: Track)
|
||||
/// Environment variable: DOWNLOAD_MODE
|
||||
/// Values: "Track" (download only played track), "Album" (download full album when playing a track)
|
||||
/// </summary>
|
||||
public DownloadMode DownloadMode { get; set; } = DownloadMode.Track;
|
||||
|
||||
/// <summary>
|
||||
/// Music service to use (default: Deezer)
|
||||
/// Environment variable: MUSIC_SERVICE
|
||||
/// Values: "Deezer", "Qobuz"
|
||||
/// </summary>
|
||||
public MusicService MusicService { get; set; } = MusicService.Deezer;
|
||||
}
|
||||
Reference in New Issue
Block a user