#93: Song Model changes and support for different file types

This commit is contained in:
kdeng00
2024-07-25 19:33:05 -04:00
parent c60ca48ca1
commit 983b434823
3 changed files with 34 additions and 4 deletions
+12 -1
View File
@@ -205,7 +205,18 @@ public class SongManager : BaseManager
if (string.IsNullOrEmpty(song.Filename)) if (string.IsNullOrEmpty(song.Filename))
{ {
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.WAV); switch (song.AudioType)
{
case "wav":
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.WAV);
break;
case "flac":
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.FLAC);
break;
default:
song.Filename = song.GenerateFilename(true, AudioFileExtensionsType.Default);
break;
}
} }
_logger.Info($"Temporary directory: {_tempDirectoryRoot}"); _logger.Info($"Temporary directory: {_tempDirectoryRoot}");
+20 -3
View File
@@ -43,7 +43,23 @@ public class SongDataController : BaseController
var songMetaData = songContext.RetrieveRecord(new Song { Id = id}); var songMetaData = songContext.RetrieveRecord(new Song { Id = id});
var song = _songMgr.RetrieveSong(songMetaData).Result; var song = _songMgr.RetrieveSong(songMetaData).Result;
var filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.WAV_EXTENSION, songMetaData.Title, randomizeFilename); string filename;
switch (songMetaData.AudioType)
{
case "wav":
filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.WAV_EXTENSION,
songMetaData.Title, randomizeFilename);
break;
case "flac":
filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.FLAC_EXTENSION,
songMetaData.Title, randomizeFilename);
break;
default:
filename = DirectoryManager.GenerateDownloadFilename(10, Constants.FileExtensions.DEFAULT_AUDIO_EXTENSION,
songMetaData.Title, randomizeFilename);
break;
}
return File(song.Data, "application/x-msdownload", filename); return File(song.Data, "application/x-msdownload", filename);
} }
@@ -130,12 +146,13 @@ public class SongDataController : BaseController
_logger.LogInformation($"Song title: {song.Title}"); _logger.LogInformation($"Song title: {song.Title}");
var fileType = meta.FileExtensionType(tmpSong.SongPath()); // var fileType =
song.Filename = tmpSong.Filename; song.Filename = tmpSong.Filename;
song.SongDirectory = tmpSong.SongDirectory; song.SongDirectory = tmpSong.SongDirectory;
song.DateCreated = tmpSong.DateCreated; song.DateCreated = tmpSong.DateCreated;
song.AudioType = meta.FileExtensionType(tmpSong.SongPath());
switch (fileType) switch (song.AudioType)
{ {
case "wav": case "wav":
// TODO: Identify the song file type. Then save the media. // TODO: Identify the song file type. Then save the media.
+2
View File
@@ -28,6 +28,8 @@ public class Song
public string Filename { get; set; } public string Filename { get; set; }
[JsonIgnore] [JsonIgnore]
public string SongDirectory { get; set; } public string SongDirectory { get; set; }
[JsonProperty("audio_type")]
public string? AudioType { get; set; }
[JsonProperty("track")] [JsonProperty("track")]
public int Track { get; set; } = 0; public int Track { get; set; } = 0;
[JsonProperty("track_count")] [JsonProperty("track_count")]