#93: Song Model changes and support for different file types
This commit is contained in:
@@ -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}");
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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")]
|
||||||
|
|||||||
Reference in New Issue
Block a user