From 12fa221f55cb9700ef449a83bcef48fce420c9bb Mon Sep 17 00:00:00 2001 From: reven Date: Mon, 31 Jan 2022 19:21:17 +1300 Subject: [PATCH] added discs and total discs to music info --- MusicNodes/InputNodes/MusicFile.cs | 7 +++++-- MusicNodes/MusicInfo.cs | 2 ++ MusicNodes/MusicInfoHelper.cs | 12 +++++++++++- MusicNodes/Nodes/MusicNode.cs | 3 +++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/MusicNodes/InputNodes/MusicFile.cs b/MusicNodes/InputNodes/MusicFile.cs index 352398bd..f5e3b8fe 100644 --- a/MusicNodes/InputNodes/MusicFile.cs +++ b/MusicNodes/InputNodes/MusicFile.cs @@ -28,8 +28,11 @@ namespace FileFlows.MusicNodes { "mi.Language", "English" }, { "mi.Title", "Song Title" }, { "mi.Track", 2 }, - { "mi.TrackPad", "02" } - }; + { "mi.TrackPad", "02" }, + { "mi.Disc", 2 }, + { "mi.DiscPad", "02" }, + { "mi.TotalDiscs", 2 } + }; } public override int Execute(NodeParameters args) diff --git a/MusicNodes/MusicInfo.cs b/MusicNodes/MusicInfo.cs index a7298b52..46970deb 100644 --- a/MusicNodes/MusicInfo.cs +++ b/MusicNodes/MusicInfo.cs @@ -4,6 +4,8 @@ namespace FileFlows.MusicNodes { public string Language { get; set; } public int Track { get; set; } + public int Disc { get; set; } + public int TotalDiscs { get; set; } public string Artist { get; set; } public string Title { get; set; } public string Album { get; set; } diff --git a/MusicNodes/MusicInfoHelper.cs b/MusicNodes/MusicInfoHelper.cs index 2ce00a62..7b3ec44e 100644 --- a/MusicNodes/MusicInfoHelper.cs +++ b/MusicNodes/MusicInfoHelper.cs @@ -85,7 +85,7 @@ namespace FileFlows.MusicNodes continue; if(line.Trim().ToLower().StartsWith("language")) mi.Language = line.Substring(colonIndex + 1).Trim(); - else if (line.Trim().StartsWith("track")) + else if (line.Trim().ToLower().StartsWith("track")) { if (int.TryParse(line.Substring(colonIndex + 1).Trim(), out int value)) mi.Track = value; @@ -96,6 +96,16 @@ namespace FileFlows.MusicNodes mi.Title = line.Substring(colonIndex + 1).Trim(); else if (line.Trim().ToLower().StartsWith("album")) mi.Album = line.Substring(colonIndex + 1).Trim(); + else if (line.Trim().ToLower().StartsWith("disc")) + { + if (int.TryParse(line.Substring(colonIndex + 1).Trim(), out int value)) + mi.Disc = value; + } + else if (line.Trim().ToLower().StartsWith("disctotal") || line.Trim().ToLower().StartsWith("totaldiscs")) + { + if (int.TryParse(line.Substring(colonIndex + 1).Trim(), out int value)) + mi.TotalDiscs = value; + } else if (line.Trim().ToLower().StartsWith("date") && mi.Date < new DateTime(1900, 1, 1)) { if (int.TryParse(line.Substring(colonIndex + 1).Trim(), out int value)) diff --git a/MusicNodes/Nodes/MusicNode.cs b/MusicNodes/Nodes/MusicNode.cs index d6fd7a3f..85a8dba7 100644 --- a/MusicNodes/Nodes/MusicNode.cs +++ b/MusicNodes/Nodes/MusicNode.cs @@ -61,6 +61,9 @@ namespace FileFlows.MusicNodes variables.AddOrUpdate("mi.Title", musicInfo.Title); variables.AddOrUpdate("mi.Track", musicInfo.Track); variables.AddOrUpdate("mi.TrackPad", musicInfo.Track.ToString("D2")); + variables.AddOrUpdate("mi.Disc", musicInfo.Disc < 1 ? 1 : musicInfo.Disc); + variables.AddOrUpdate("mi.DiscPad", musicInfo.Disc.ToString("D2")); + variables.AddOrUpdate("mi.TotalDiscs", musicInfo.TotalDiscs < 1 ? 1 : musicInfo.TotalDiscs); args.UpdateVariables(variables); }