From 48bb25106f7bc38df2ce5fdbc0a5ef0e6db077f5 Mon Sep 17 00:00:00 2001 From: Steven Hildreth Date: Sat, 16 Feb 2019 15:08:20 -0600 Subject: [PATCH] Beta v20180216.1 --- Inspector/Inspector.csproj | 28 ++ Inspector/Program.cs | 29 ++ Inspector/Properties/launchSettings.json | 8 + Inspector/appsettings.json | 104 +++++++ .../ID3TagsHelperTests.cs | 264 ++++++++++++++++++ Roadie.Api.Library.Tests/InspectorTests.cs | 53 ++++ Roadie.Api.Library.Tests/RenumberTests.cs | 204 ++++++++++++++ .../StringExtensionTests.cs | 85 +++++- .../appsettings.test.json | 2 +- .../Configuration/Processing.cs | 6 + Roadie.Api.Library/Extensions/StringExt.cs | 14 +- Roadie.Api.Library/Inspect/Inspector.cs | 238 ++++++++++++++++ .../Inspect/Plugins/CleanMetaData.cs | 42 +++ .../Inspect/Plugins/IInspectorPlugin.cs | 14 + .../Inspect/Plugins/PluginBase.cs | 31 ++ .../Inspect/Plugins/Renumber.cs | 55 ++++ Roadie.Api.Library/Roadie.Library.csproj | 5 + .../MetaData/Audio/AudioMetaData.cs | 36 ++- .../MetaData/Audio/AudioMetaDataImageType.cs | 3 + .../MetaData/Audio/AudoMetaDataWeights.cs | 7 +- .../MetaData/ID3Tags/ID3TagsHelper.cs | 203 ++++++++++++-- Roadie.sln | 10 + libraries/IdSharp.AudioInfo-core.dll | Bin 48128 -> 47616 bytes libraries/IdSharp.Common-core.dll | Bin 23552 -> 23552 bytes libraries/IdSharp.Tagging-core.dll | Bin 193536 -> 193536 bytes 25 files changed, 1397 insertions(+), 44 deletions(-) create mode 100644 Inspector/Inspector.csproj create mode 100644 Inspector/Program.cs create mode 100644 Inspector/Properties/launchSettings.json create mode 100644 Inspector/appsettings.json create mode 100644 Roadie.Api.Library.Tests/InspectorTests.cs create mode 100644 Roadie.Api.Library.Tests/RenumberTests.cs create mode 100644 Roadie.Api.Library/Inspect/Inspector.cs create mode 100644 Roadie.Api.Library/Inspect/Plugins/CleanMetaData.cs create mode 100644 Roadie.Api.Library/Inspect/Plugins/IInspectorPlugin.cs create mode 100644 Roadie.Api.Library/Inspect/Plugins/PluginBase.cs create mode 100644 Roadie.Api.Library/Inspect/Plugins/Renumber.cs diff --git a/Inspector/Inspector.csproj b/Inspector/Inspector.csproj new file mode 100644 index 0000000..d1a5e8d --- /dev/null +++ b/Inspector/Inspector.csproj @@ -0,0 +1,28 @@ + + + + Exe + netcoreapp2.2 + + + + + + + + + Always + + + + + + + + + + + + + + diff --git a/Inspector/Program.cs b/Inspector/Program.cs new file mode 100644 index 0000000..bdbedc5 --- /dev/null +++ b/Inspector/Program.cs @@ -0,0 +1,29 @@ +using System; +using System.ComponentModel.DataAnnotations; +using McMaster.Extensions.CommandLineUtils; + +namespace Inspector +{ + public class Program + { + public static int Main(string[] args) + => CommandLineApplication.Execute(args); + + [Option(ShortName = "f", Description = "Folder To Inspect")] + [Required] + public string Folder { get; } + + [Option(ShortName = "d", Description = "Destination Folder")] + public string Destination { get; } + + [Option("-c", "Copy Dont Move Originals", CommandOptionType.NoValue)] + public bool DoCopy { get; } + + private void OnExecute() + { + var inspector = new Roadie.Library.Inspect.Inspector(); + inspector.Inspect(this.DoCopy, this.Folder, this.Destination ?? this.Folder); + + } + } +} diff --git a/Inspector/Properties/launchSettings.json b/Inspector/Properties/launchSettings.json new file mode 100644 index 0000000..d3d2a19 --- /dev/null +++ b/Inspector/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Inspector": { + "commandName": "Project", + "commandLineArgs": "-f \"C:\\roadie_dev_root\\inbound\"" + } + } +} \ No newline at end of file diff --git a/Inspector/appsettings.json b/Inspector/appsettings.json new file mode 100644 index 0000000..38a0675 --- /dev/null +++ b/Inspector/appsettings.json @@ -0,0 +1,104 @@ +{ + "RoadieSettings": { + "SiteName": "Roadie", + "DefaultTimeZone": "US/Central", + "DiagnosticsPassword": "RoadieDiagPassword", + "InboundFolder": "C:\\roadie_dev_root\\inbound", + "LibraryFolder": "C:\\\\roadie_dev_root\\\\library", + "Thumbnails": { + "Height": 80, + "Width": 80 + }, + "MediumThumbnails": { + "Height": 160, + "Width": 160 + }, + "LargeThumbnails": { + "Height": 320, + "Width": 320 + }, + "DontDoMetaDataProvidersSearchArtists": [ "Various Artists", "Sound Tracks" ], + "FileExtenionsToDelete": [ ".cue", ".db", ".gif", ".html", ".ini", ".jpg", ".jpeg", ".log", ".mpg", ".m3u", ".png", ".nfo", ".nzb", ".sfv", ".srr", ".txt", ".url" ], + "RecordNoResultSearches": true, + "SingleArtistHoldingFolder": "C:\\roadie_dev_root\\single_holding", + "ArtistNameReplace": { + "AC/DC": [ "AC; DC", "AC;DC", "AC/ DC", "AC DC" ], + "Love/Hate": [ "Love; Hate", "Love;Hate", "Love/ Hate", "Love Hate" ] + }, + "Integrations": { + "ITunesProviderEnabled": true, + "MusicBrainzProviderEnabled": true, + "SpotifyProviderEnabled": true, + "ApiKeys": [ + { + "ApiName": "BingImageSearch", + "Key": "" + }, + { + "ApiName": "LastFMApiKey", + "Key": "", + "KeySecret": "" + }, + { + "ApiName": "DiscogsConsumerKey", + "Key": "", + "KeySecret": "" + } + ] + }, + "Processing": { + "DoAudioCleanup": true, + "DoSaveEditsToTags": true, + "DoClearComments": true, + "DoParseFromFileName": true, + "DoParseFromDiscogsDBFindingTrackForArtist": true, + "DoParseFromDiscogsDB": true, + "DoParseFromMusicBrainz": true, + "DoParseFromLastFM": true, + "MaximumArtistImagesToAdd": 12, + "MaximumReleaseImagesToAdd": 12, + "MaxImageWidth": 2048, + "ReleaseRemoveStringsRegex": "(\\s*(-\\s)*((CD[0-9][0-9]*)))|((\\(|\\[)+([0-9]|,|self|bonus|released|th|anniversary|re|release|cd|disc|deluxe|digipack|vinyl|japanese|asian|remastered|limited|expanded|edition|\\s)+(]|\\)))", + "TrackRemoveStringsRegex": "^([0-9]+)(\\.|-|\\s)*", + "ReplaceStrings": [ + { + "order": 1, + "key": "-OBSERVER", + "replaceWith": "" + }, + { + "order": 2, + "key": "[Torrent Tatty]", + "replaceWith": "" + }, + { + "order": 3, + "key": "_", + "replaceWith": " " + }, + { + "order": 4, + "key": "-", + "replaceWith": " " + }, + { + "order": 5, + "key": "~", + "replaceWith": " " + }, + { + "order": 6, + "key": "^", + "replaceWith": " " + }, + { + "order": 7, + "key": "#", + "replaceWith": " " + } + ] + } + } +} + + diff --git a/Roadie.Api.Library.Tests/ID3TagsHelperTests.cs b/Roadie.Api.Library.Tests/ID3TagsHelperTests.cs index 2f90afa..d489fe2 100644 --- a/Roadie.Api.Library.Tests/ID3TagsHelperTests.cs +++ b/Roadie.Api.Library.Tests/ID3TagsHelperTests.cs @@ -179,6 +179,158 @@ namespace Roadie.Library.Tests Assert.Null(dn); } + [Fact] + public void ReadTotalTrackNumbersFromCue_Should_Be_Five() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\cues1"; + var directory = new DirectoryInfo(cuesDir); + if(directory.Exists) + { + foreach(var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(5, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromCue_Should_Be_Eight() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\cues2"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(8, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromCue_Should_Be_Six() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\cues3"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(6, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromCue_Should_Be_Nine() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\cues4"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(9, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromM3u_Should_Be_Eleven() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\m3u1"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(11, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromM3u_Should_Be_Four() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\m3u2"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(4, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromM3u_Should_Be_Eight() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\m3u3"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(8, t.Value); + } + } + else + { + Assert.True(true); + } + } + + [Fact] + public void ReadTotalTrackNumbersFromM3u_Should_Be_Fourteen() + { + var cuesDir = @"C:\roadie_dev_root\test_cue_and_playlists\m3u4"; + var directory = new DirectoryInfo(cuesDir); + if (directory.Exists) + { + foreach (var file in Directory.GetFiles(cuesDir)) + { + var t = ID3TagsHelper.DetermineTotalTrackNumbers(file); + Assert.Equal(14, t.Value); + } + } + else + { + Assert.True(true); + } + } + [Fact] public void ReadID3TagsMultipleMediasWithMax() @@ -481,6 +633,40 @@ namespace Roadie.Library.Tests } } + [Fact] + public void Write_Tags() + { + var file = new FileInfo(@"C:\roadie_dev_root\inbound\temp\01. Re1nstall 0verture.mp3"); + if (file.Exists) + { + short trackNumber = 15; + var numberOfTracks = 25; + + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + metaData.TrackNumber = trackNumber; + metaData.TotalTrackNumbers = numberOfTracks; + this.TagsHelper.WriteTags(metaData, file.FullName); + + var tagLibAfterWrite = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + Assert.Equal(metaData.Artist, tagLibAfterWrite.Data.Artist); + Assert.Equal(metaData.Release, tagLibAfterWrite.Data.Release); + Assert.Equal(metaData.Title, tagLibAfterWrite.Data.Title); + Assert.Equal(trackNumber, tagLibAfterWrite.Data.TrackNumber); + Assert.Equal(numberOfTracks, tagLibAfterWrite.Data.TotalTrackNumbers); + + + + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + [Fact] public void ReadID3TagsFromFile2() { @@ -613,5 +799,83 @@ namespace Roadie.Library.Tests } } + [Fact] + public void ReadID3TagsFromFile7() + { + var file = new FileInfo(@"C:\roadie_dev_root\1985 - Sacred Heart\Dio - Sacred Heart (1).mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.Equal(1, metaData.TrackNumber.Value); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + Assert.True(metaData.IsValid); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFile8() + { + var file = new FileInfo(@"C:\roadie_dev_root\Grift\2017 Arvet\01 - Flyktfast.mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.Equal(1, metaData.TrackNumber.Value); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + Assert.True(metaData.IsValid); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFile9() + { + var file = new FileInfo(@"C:\roadie_dev_root\Distorted Harmony - A Way Out - 2018\kWlZr0N_o72dwo0_CD001_0001.mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.Equal(1, metaData.TrackNumber.Value); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + Assert.True(metaData.IsValid); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + } } diff --git a/Roadie.Api.Library.Tests/InspectorTests.cs b/Roadie.Api.Library.Tests/InspectorTests.cs new file mode 100644 index 0000000..31d6bea --- /dev/null +++ b/Roadie.Api.Library.Tests/InspectorTests.cs @@ -0,0 +1,53 @@ +using Roadie.Library.Inspect; +using System; +using System.Collections.Generic; +using System.Text; +using Xunit; + +namespace Roadie.Library.Tests +{ + public class InspectorTests + { + + [Theory] + [InlineData("Bob Jones")] + [InlineData("Nancy Jones")] + public void Generate_Inspector_Artist_Token(string artist) + { + var token = Inspector.ArtistInspectorToken(new MetaData.Audio.AudioMetaData { Artist = artist }); + Assert.NotNull(token); + } + + [Fact] + public void Should_Generate_Same_Token_Value() + { + var md = new MetaData.Audio.AudioMetaData { Artist = "Omniversum Fractum", Release = "Paradigm Of The Elementals Essence" }; + var artistToken = Inspector.ArtistInspectorToken(md); + Assert.NotNull(artistToken); + + var releaseToken = Inspector.ReleaseInspectorToken(md); + Assert.NotNull(releaseToken); + Assert.NotEqual(artistToken, releaseToken); + + var secondReleaseToken = Inspector.ReleaseInspectorToken(md); + Assert.NotNull(releaseToken); + Assert.NotEqual(artistToken, releaseToken); + Assert.Equal(secondReleaseToken, releaseToken); + } + + [Fact] + public void Generate_Inspector_Tokens_Artist_And_Release_Unique() + { + var md = new MetaData.Audio.AudioMetaData { Artist = "Bob Jones", Release = "Bob's First Release" }; + var artistToken = Inspector.ArtistInspectorToken(md); + Assert.NotNull(artistToken); + + var releaseToken = Inspector.ReleaseInspectorToken(md); + Assert.NotNull(releaseToken); + + Assert.NotEqual(artistToken, releaseToken); + + + } + } +} diff --git a/Roadie.Api.Library.Tests/RenumberTests.cs b/Roadie.Api.Library.Tests/RenumberTests.cs new file mode 100644 index 0000000..a3c17cb --- /dev/null +++ b/Roadie.Api.Library.Tests/RenumberTests.cs @@ -0,0 +1,204 @@ +using Roadie.Library.MetaData.Audio; +using Roadie.Library.MetaData.ID3Tags; +using System.Collections.Generic; +using Xunit; + +namespace Roadie.Library.Tests +{ + public class RenumberTests + { + [Theory] + [InlineData(@"2003 - Accelerated Evolution\01 - Depth Charge.mp3")] + [InlineData(@"01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD1\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD01\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD001\01 - Depth Charge.mp3")] + [InlineData(@"CD 1\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD 01\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD 001\01 - Depth Charge.mp3")] + [InlineData(@"Accelerated Evolution CD01\22 - Depth Charge.mp3")] + [InlineData(@"Accelerated Evolution CD1\22 - Depth Charge.mp3")] + public void Find_Disc_Number_Should_Be_One(string filename) + { + var n = ID3TagsHelper.DetermineDiscNumber(new AudioMetaData { Filename = filename }); + Assert.Equal(1, n); + } + + [Theory] + [InlineData(@"2003 - Accelerated Evolution\CD2\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD02\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD002\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD 2\02 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD 02\01 - Depth Charge.mp3")] + [InlineData(@"2003 - Accelerated Evolution\CD 002\22 - Depth Charge.mp3")] + [InlineData(@"Accelerated Evolution CD2\22 - Depth Charge.mp3")] + [InlineData(@"Accelerated Evolution CD02\22 - Depth Charge.mp3")] + public void Find_Disc_Number_Should_Be_Two(string filename) + { + var n = ID3TagsHelper.DetermineDiscNumber(new AudioMetaData { Filename = filename }); + Assert.Equal(2, n); + } + + [Fact] + public void Find_Total_Discs_Should_Be_One() + { + var three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\02 - Not A Depth Charge.mp3" + } + }; + var n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(1, n); + + three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD1\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD1\02 - Not A Depth Charge.mp3" + } + }; + n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(1, n); + } + + [Fact] + public void Find_Total_Discs_Should_Be_Ten() + { + var three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 02\02 - Not A Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 04\01 - First.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 06\02 - Second.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 10\01 - Depth Charge.mp3" + } + }; + var n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(10, n); + } + + [Fact] + public void Find_Total_Discs_Should_Be_Three() + { + var three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\02 - Not A Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 02\01 - First.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 02\02 - Second.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 03\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 03\02 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 03\03 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 03\04 - Depth Charge.mp3" + } + }; + var n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(3, n); + } + + [Fact] + public void Find_Total_Discs_Should_Be_Two() + { + var three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\02 - Not A Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\01 - First.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 02\02 - Second.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 01\01 - Depth Charge.mp3" + } + }; + var n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(2, n); + + three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD0\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD2\02 - Not A Depth Charge.mp3" + } + }; + n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(2, n); + + three = new List + { + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 1\01 - Depth Charge.mp3" + }, + new AudioMetaData + { + Filename = @"N:\Devin Townsend (1996 - 2016)\The Devin Townsend Band (2003 - 2006)\2003 - Accelerated Evolution\CD 2\02 - Not A Depth Charge.mp3" + } + }; + n = ID3TagsHelper.DetermineTotalDiscNumbers(three); + Assert.Equal(2, n); + } + } +} \ No newline at end of file diff --git a/Roadie.Api.Library.Tests/StringExtensionTests.cs b/Roadie.Api.Library.Tests/StringExtensionTests.cs index 9b0851b..dcc82ef 100644 --- a/Roadie.Api.Library.Tests/StringExtensionTests.cs +++ b/Roadie.Api.Library.Tests/StringExtensionTests.cs @@ -6,6 +6,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Text; +using System.Text.RegularExpressions; using Xunit; namespace Roadie.Library.Tests @@ -143,12 +144,90 @@ namespace Roadie.Library.Tests t = "[1970] 022 # Plastic Ono Band"; Assert.Equal("[1970] 022 Plastic Ono Band", t.CleanString(this.Configuration)); - t = "11 Love_.Mp3".CleanString(this.Configuration); - Assert.Equal("11 Love.Mp3", t); + } - t = "Love_.Mp3".CleanString(this.Configuration); + [Fact] + public void CleanString_Track() + { + + var t = "11 Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); Assert.Equal("Love.Mp3", t); + t = "99 -Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "99_Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "99 _ Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "001 Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "01 - Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "01. Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + t = "Love.Mp3".CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex); + Assert.Equal("Love.Mp3", t); + + } + + [Theory] + [InlineData("Angie (Limited)")] + [InlineData("Angie CD1")] + [InlineData("Angie CD2")] + [InlineData("Angie CD23")] + [InlineData("Angie - CD1")] + [InlineData("Angie (Limited Edition)")] + [InlineData("Angie (Deluxe)")] + [InlineData("Angie (Deluxe")] + [InlineData("Angie (Remastered Deluxe Edition)")] + [InlineData("Angie (Remastered Deluxe)")] + [InlineData("Angie ( Deluxe )")] + [InlineData("Angie (Deluxe Edition)")] + [InlineData("Angie (Deluxe Expanded Edition)")] + [InlineData("Angie (2CD Deluxe Edition)")] + [InlineData("Angie (3CD Deluxe Edition)")] + [InlineData("Angie [2008 Remastered Edition]")] + [InlineData("Angie (Bonus CD)")] + [InlineData("Angie (DELUXE)")] + [InlineData("Angie (2013, Deluxe Expanded Edition, Disc 1)")] + [InlineData("Angie (Deluxe Edition, CD1)")] + [InlineData("Angie (20Th Anniversary Deluxe Edition Remastered)")] + [InlineData("Angie (Japanese Edition)")] + [InlineData("Angie (Asian Edition)")] + [InlineData("Angie (2008 Remastered Edition Digipack)")] + [InlineData("Angie (Re Release 2003)")] + [InlineData("Angie [2006, Self Released]")] + [InlineData("Angie (2002 Expanded Edition)")] + [InlineData("Angie (Japan Ltd Dig")] + public void CleanString_Release_Should_Be_Angie(string input) + { + var r = @"(\\s*(-\\s)*((CD[0-9][0-9]*)))|((\\(|\\[)+([0-9]|,|self|bonus|released|th|anniversary|re|release|cd|disc|deluxe|digipack|vinyl|japanese|asian|remastered|limited|expanded|edition|\\s)+(]|\\)))"; + var cleaned = input.CleanString(this.Configuration, r); + Assert.Equal("Angie", cleaned); + } + + + [Theory] + [InlineData("01 Batman Loves Robin")] + [InlineData("01 Batman Loves Robin")] + [InlineData("01 -Batman Loves Robin")] + [InlineData("01 - Batman Loves Robin")] + [InlineData("14 Batman Loves Robin")] + [InlineData("49 Batman Loves Robin")] + [InlineData("54 Batman Loves Robin")] + [InlineData("348 Batman Loves Robin")] + public void Test_Regex_String(string input) + { + var t1 = Regex.Replace(input, "^([0-9]+)(\\.|-|\\s)*", ""); + Assert.NotNull(t1); + Assert.Equal("Batman Loves Robin", t1); + } [Fact] diff --git a/Roadie.Api.Library.Tests/appsettings.test.json b/Roadie.Api.Library.Tests/appsettings.test.json index be913a8..652ab24 100644 --- a/Roadie.Api.Library.Tests/appsettings.test.json +++ b/Roadie.Api.Library.Tests/appsettings.test.json @@ -58,7 +58,7 @@ "MaximumArtistImagesToAdd": 12, "MaximumReleaseImagesToAdd": 12, "MaxImageWidth": 800, - "RemoveStringsRegex": "\\b[0-9]+\\s#\\s\\b", + "TrackRemoveStringsRegex": "^([0-9]+)(\\.|-|\\s)*", "ReplaceStrings": [ { "order": 1, diff --git a/Roadie.Api.Library/Configuration/Processing.cs b/Roadie.Api.Library/Configuration/Processing.cs index ab815f2..f06c281 100644 --- a/Roadie.Api.Library/Configuration/Processing.cs +++ b/Roadie.Api.Library/Configuration/Processing.cs @@ -21,12 +21,18 @@ namespace Roadie.Library.Configuration public int MaximumArtistImagesToAdd { get; set; } public int MaximumReleaseImagesToAdd { get; set; } public string RemoveStringsRegex { get; set; } + public string ArtistRemoveStringsRegex { get; set; } + public string ReleaseRemoveStringsRegex { get; set; } + public string TrackRemoveStringsRegex { get; set; } + public List ReplaceStrings { get; set; } public string UnknownFolder { get; set; } public Processing() { this.ReplaceStrings = new List(); + this.DoAudioCleanup = true; + this.DoClearComments = true; } } } \ No newline at end of file diff --git a/Roadie.Api.Library/Extensions/StringExt.cs b/Roadie.Api.Library/Extensions/StringExt.cs index 8fb95e8..c58e002 100644 --- a/Roadie.Api.Library/Extensions/StringExt.cs +++ b/Roadie.Api.Library/Extensions/StringExt.cs @@ -43,9 +43,9 @@ namespace Roadie.Library.Extensions return input; } - public static string CleanString(this string input, IRoadieSettings settings) + public static string CleanString(this string input, IRoadieSettings settings, string removeStringsRegex = null) { - if (string.IsNullOrEmpty(input) || settings == null) + if (string.IsNullOrEmpty(input) || settings == null) { return input; } @@ -55,14 +55,10 @@ namespace Roadie.Library.Extensions result = result.Replace(kvp.Key, kvp.ReplaceWith, StringComparison.OrdinalIgnoreCase); } result = result.Trim().ToTitleCase(false); - var removeStringsRegex = settings.Processing.RemoveStringsRegex; - if (!string.IsNullOrEmpty(removeStringsRegex)) + var rs = removeStringsRegex ?? settings.Processing.RemoveStringsRegex; + if (!string.IsNullOrEmpty(rs)) { - var regexParts = removeStringsRegex.Split('|'); - foreach (var regexPart in regexParts) - { - result = Regex.Replace(result, regexPart, ""); - } + result = Regex.Replace(result, rs, "", RegexOptions.IgnoreCase); } if (result.Length > 5) { diff --git a/Roadie.Api.Library/Inspect/Inspector.cs b/Roadie.Api.Library/Inspect/Inspector.cs new file mode 100644 index 0000000..db476d5 --- /dev/null +++ b/Roadie.Api.Library/Inspect/Inspector.cs @@ -0,0 +1,238 @@ +using HashidsNet; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using Roadie.Library.Caching; +using Roadie.Library.Configuration; +using Roadie.Library.Extensions; +using Roadie.Library.Inspect.Plugins; +using Roadie.Library.MetaData.Audio; +using Roadie.Library.MetaData.ID3Tags; +using Roadie.Library.Processors; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; + +namespace Roadie.Library.Inspect +{ + public class Inspector + { + private static readonly string Salt = "6856F2EE-5965-4345-884B-2CCA457AAF59"; + + private IEnumerable _plugins = null; + + public IEnumerable Plugins + { + get + { + if (this._plugins == null) + { + var plugins = new List(); + try + { + var type = typeof(IInspectorPlugin); + var types = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => type.IsAssignableFrom(p)); + foreach (Type t in types) + { + if (t.GetInterface("IInspectorPlugin") != null && !t.IsAbstract && !t.IsInterface) + { + IInspectorPlugin plugin = Activator.CreateInstance(t, new object[] { this.Configuration, this.CacheManager, this.Logger }) as IInspectorPlugin; + plugins.Add(plugin); + } + } + } + catch (Exception ex) + { + this.Logger.LogError(ex); + } + this._plugins = plugins.ToArray(); + } + return this._plugins; + } + } + + private IEventMessageLogger MessageLogger { get; } + private ILogger Logger + { + get + { + return this.MessageLogger as ILogger; + } + } + + private ID3TagsHelper TagsHelper { get; } + + private IRoadieSettings Configuration { get; } + + public DictionaryCacheManager CacheManager { get; } + + + public Inspector() + { + Console.WriteLine("Roadie Media Inspector"); + + + this.MessageLogger = new EventMessageLogger(); + this.MessageLogger.Messages += MessageLogger_Messages; + + var settings = new RoadieSettings(); + IConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); + configurationBuilder.AddJsonFile("appsettings.json"); + IConfiguration configuration = configurationBuilder.Build(); + configuration.GetSection("RoadieSettings").Bind(settings); + settings.ConnectionString = configuration.GetConnectionString("RoadieDatabaseConnection"); + this.Configuration = settings; + this.CacheManager = new DictionaryCacheManager(this.Logger, new CachePolicy(TimeSpan.FromHours(4))); + this.TagsHelper = new ID3TagsHelper(this.Configuration, this.CacheManager, this.Logger); + + } + + private void MessageLogger_Messages(object sender, EventMessage e) + { + Console.WriteLine($"Log Level [{ e.Level }] Log Message [{ e.Message }] "); + } + + public static string ArtistInspectorToken(AudioMetaData metaData) + { + var hashids = new Hashids(Inspector.Salt); + var artistId = 0; + var bytes = System.Text.Encoding.ASCII.GetBytes(metaData.Artist); + var looper = bytes.Length / 4; + for(var i = 0; i < looper; i++) + { + artistId += BitConverter.ToInt32(bytes, i * 4); + } + if (artistId < 0) + { + artistId = artistId * -1; + } + var token = hashids.Encode(artistId); + return token; + } + + public static string ReleaseInspectorToken(AudioMetaData metaData) + { + var hashids = new Hashids(Inspector.Salt); + var releaseId = 0; + var bytes = System.Text.Encoding.ASCII.GetBytes(metaData.Artist + metaData.Release); + var looper = bytes.Length / 4; + for (var i = 0; i < looper; i++) + { + releaseId += BitConverter.ToInt32(bytes, i * 4); + } + if (releaseId < 0) + { + releaseId = releaseId * -1; + } + var token = hashids.Encode(releaseId); + return token; + } + + public void Inspect(bool doCopy, string folder, string destination) + { + // Get all the directorys in the directory + var folderDirectories = Directory.GetDirectories(folder, "*.*", SearchOption.AllDirectories); + var directories = new List + { + folder + }; + directories.AddRange(folderDirectories); + foreach (var directory in directories) + { + Console.WriteLine($"╔ ░▒▓ Inspecting [{ directory }] ▓▒░"); + Console.WriteLine("╠═╗"); + // Get all the MP3 files in the folder + var files = Directory.GetFiles(directory, "*.mp3", SearchOption.TopDirectoryOnly); + if (files == null || !files.Any()) + { + continue; + } + Console.WriteLine($"Found [{ files.Length }] mp3 Files"); + Console.WriteLine("╠═╣"); + // Get audiometadata and output details including weight/validity + foreach (var file in files) + { + var tagLib = this.TagsHelper.MetaDataForFile(file); + Console.WriteLine(tagLib.Data); + } + Console.WriteLine("╠═╣"); + List fileMetaDatas = new List(); + List fileInfos = new List(); + foreach (var file in files) + { + var fileInfo = new FileInfo(file); + var tagLib = this.TagsHelper.MetaDataForFile(fileInfo.FullName); + var artistToken = ArtistInspectorToken(tagLib.Data); + var releaseToken = ReleaseInspectorToken(tagLib.Data); + var newFileName = $"{artistToken}_{releaseToken}_CD{ (tagLib.Data.Disk ?? ID3TagsHelper.DetermineDiscNumber(tagLib.Data)).ToString("000") }_{ tagLib.Data.TrackNumber.Value.ToString("0000") }.mp3"; + var subFolder = folder == destination ? fileInfo.DirectoryName : destination; + var newPath = Path.Combine(destination, subFolder, newFileName.ToFileNameFriendly()); + if (!doCopy) + { + if (fileInfo.FullName != newPath) + { + if (File.Exists(newPath)) + { + File.Delete(newPath); + } + fileInfo.MoveTo(newPath); + } + } + else + { + fileInfo.CopyTo(newPath, true); + } + tagLib.Data.Filename = fileInfo.FullName; + fileMetaDatas.Add(tagLib.Data); + fileInfos.Add(fileInfo); + } + // Perform InspectorPlugins + IEnumerable pluginMetaData = fileMetaDatas.OrderBy(x => x.Filename); + foreach (var plugin in this.Plugins.OrderBy(x => x.Order)) + { + Console.WriteLine($"╟ Running Plugin { plugin.Description }"); + OperationResult> pluginResult = null; + try + { + pluginResult = plugin.Process(pluginMetaData); + } + catch (Exception ex) + { + Console.WriteLine($"Plugin Error: [{ ex.ToString() }]"); + } + if (!pluginResult.IsSuccess) + { + Console.WriteLine($"Plugin Failed. Error [{ JsonConvert.SerializeObject(pluginResult)}]"); + } + pluginMetaData = pluginResult.Data; + } + // Save all plugin modifications to the MetaData + foreach (var metadata in pluginMetaData) + { + this.TagsHelper.WriteTags(metadata, metadata.Filename); + } + Console.WriteLine("╠═╣"); + // Get audiometadata and output details including weight/validity + foreach (var fileInfo in fileInfos) + { + var tagLib = this.TagsHelper.MetaDataForFile(fileInfo.FullName); + if (!tagLib.IsSuccess || !tagLib.Data.IsValid) + { + Console.WriteLine($"■■ INVALID: {tagLib.Data }"); + } + else + { + Console.WriteLine(tagLib.Data); + } + } + Console.WriteLine("╚═╝"); + } + } + + + } +} diff --git a/Roadie.Api.Library/Inspect/Plugins/CleanMetaData.cs b/Roadie.Api.Library/Inspect/Plugins/CleanMetaData.cs new file mode 100644 index 0000000..1a90f44 --- /dev/null +++ b/Roadie.Api.Library/Inspect/Plugins/CleanMetaData.cs @@ -0,0 +1,42 @@ +using Microsoft.Extensions.Logging; +using Roadie.Library.Caching; +using Roadie.Library.Configuration; +using Roadie.Library.Extensions; +using Roadie.Library.MetaData.Audio; +using Roadie.Library.MetaData.ID3Tags; +using System.Collections.Generic; +using System.Linq; + + +namespace Roadie.Library.Inspect.Plugins +{ + public class CleanMetaData : PluginBase + { + public override int Order => 2; + + public override string Description => "Clean: Clean the primary elements of MetaData"; + + public CleanMetaData(IRoadieSettings configuration, ICacheManager cacheManager, ILogger logger) + : base(configuration, cacheManager, logger) + { + } + + public override OperationResult> Process(IEnumerable metaDatas) + { + var result = new OperationResult>(); + if (this.Configuration.Processing.DoAudioCleanup) + { + foreach (var metaData in metaDatas) + { + metaData.Artist = metaData.Artist.CleanString(this.Configuration, this.Configuration.Processing.ArtistRemoveStringsRegex).ToTitleCase(doPutTheAtEnd: false); + metaData.Release = metaData.Release.CleanString(this.Configuration, this.Configuration.Processing.ReleaseRemoveStringsRegex).ToTitleCase(doPutTheAtEnd: false); + metaData.TrackArtist = metaData.TrackArtist.CleanString(this.Configuration, this.Configuration.Processing.ReleaseRemoveStringsRegex).ToTitleCase(doPutTheAtEnd: false); + metaData.Title = metaData.Title.CleanString(this.Configuration, this.Configuration.Processing.TrackRemoveStringsRegex).ToTitleCase(doPutTheAtEnd: false); + } + } + result.Data = metaDatas; + result.IsSuccess = true; + return result; + } + } +} diff --git a/Roadie.Api.Library/Inspect/Plugins/IInspectorPlugin.cs b/Roadie.Api.Library/Inspect/Plugins/IInspectorPlugin.cs new file mode 100644 index 0000000..0adbad3 --- /dev/null +++ b/Roadie.Api.Library/Inspect/Plugins/IInspectorPlugin.cs @@ -0,0 +1,14 @@ +using Roadie.Library.MetaData.Audio; +using System.Collections.Generic; +using System.IO; + +namespace Roadie.Library.Inspect.Plugins +{ + public interface IInspectorPlugin + { + string Description { get; } + int Order { get; } + + OperationResult> Process(IEnumerable metaDatas); + } +} \ No newline at end of file diff --git a/Roadie.Api.Library/Inspect/Plugins/PluginBase.cs b/Roadie.Api.Library/Inspect/Plugins/PluginBase.cs new file mode 100644 index 0000000..32c28b0 --- /dev/null +++ b/Roadie.Api.Library/Inspect/Plugins/PluginBase.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.Logging; +using Roadie.Library.Caching; +using Roadie.Library.Configuration; +using Roadie.Library.MetaData.Audio; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Roadie.Library.Inspect.Plugins +{ + public abstract class PluginBase : IInspectorPlugin + { + protected IRoadieSettings Configuration { get; } + protected ICacheManager CacheManager { get; } + protected ILogger Logger { get; } + + public abstract int Order { get; } + public abstract string Description { get; } + + public PluginBase(IRoadieSettings configuration, ICacheManager cacheManager, ILogger logger) + { + this.Configuration = configuration; + this.CacheManager = cacheManager; + this.Logger = logger; + } + + public abstract OperationResult> Process(IEnumerable metaDatas); + + } +} diff --git a/Roadie.Api.Library/Inspect/Plugins/Renumber.cs b/Roadie.Api.Library/Inspect/Plugins/Renumber.cs new file mode 100644 index 0000000..155a8c1 --- /dev/null +++ b/Roadie.Api.Library/Inspect/Plugins/Renumber.cs @@ -0,0 +1,55 @@ +using Microsoft.Extensions.Logging; +using Roadie.Library.Caching; +using Roadie.Library.Configuration; +using Roadie.Library.MetaData.Audio; +using Roadie.Library.MetaData.ID3Tags; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; + +namespace Roadie.Library.Inspect.Plugins +{ + public class Renumber : PluginBase + { + public override string Description + { + get + { + return "Renumber: Renumber all given tracks sequentially and set maximum number of tracks"; + } + } + + public override int Order { get; } = 1; + + public Renumber(IRoadieSettings configuration, ICacheManager cacheManager, ILogger logger) + : base(configuration, cacheManager, logger) + { + } + + public override OperationResult> Process(IEnumerable metaDatas) + { + var result = new OperationResult>(); + var totalNumberOfMedia = ID3TagsHelper.DetermineTotalDiscNumbers(metaDatas); + var folders = metaDatas.GroupBy(x => x.FileInfo.DirectoryName); + foreach(var folder in folders) + { + short looper = 0; + foreach(var metaData in folder) + { + looper++; + metaData.TrackNumber = looper; + metaData.TotalTrackNumbers = ID3TagsHelper.DetermineTotalTrackNumbers(metaData.Filename) ?? folder.Count(); + metaData.Disk = ID3TagsHelper.DetermineDiscNumber(metaData); + metaData.TotalDiscCount = totalNumberOfMedia; + } + } + result.Data = metaDatas; + result.IsSuccess = true; + return result; + } + + + } +} \ No newline at end of file diff --git a/Roadie.Api.Library/Roadie.Library.csproj b/Roadie.Api.Library/Roadie.Library.csproj index 459ea1e..55005a2 100644 --- a/Roadie.Api.Library/Roadie.Library.csproj +++ b/Roadie.Api.Library/Roadie.Library.csproj @@ -11,6 +11,7 @@ + @@ -19,6 +20,7 @@ + @@ -27,8 +29,11 @@ + + + diff --git a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaData.cs b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaData.cs index 090329c..aea3ab3 100644 --- a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaData.cs +++ b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaData.cs @@ -106,6 +106,10 @@ namespace Roadie.Library.MetaData.Audio { result |= AudioMetaDataWeights.TrackNumber; } + if ((this.TotalTrackNumbers ?? 0) > 1) + { + result |= AudioMetaDataWeights.TrackTotalNumber; + } if (this.TotalSeconds > 1) { result |= AudioMetaDataWeights.Time; @@ -136,11 +140,25 @@ namespace Roadie.Library.MetaData.Audio /// public int? Disk { get; set; } + /// + /// TSST + /// + public string DiskSubTitle { get; set; } + /// /// Full filename to the file used to get this AudioMetaData /// public string Filename { get; set; } + private FileInfo _fileInfo = null; + public FileInfo FileInfo + { + get + { + return this._fileInfo ?? (this._fileInfo = new FileInfo(this.Filename)); + } + } + public ICollection Genres { get; set; } public IEnumerable Images { get; set; } @@ -228,6 +246,11 @@ namespace Roadie.Library.MetaData.Audio } } + /// + /// Total number of Discs for Media + /// + public int? TotalDiscCount { get; set; } + public double TotalSeconds { get @@ -288,7 +311,7 @@ namespace Roadie.Library.MetaData.Audio } if (!this._trackArtist.Contains(AudioMetaData.ArtistSplitCharacter.ToString())) { - if(string.IsNullOrEmpty(this.TrackArtist)) + if (string.IsNullOrEmpty(this.TrackArtist)) { return new string[0]; } @@ -375,16 +398,7 @@ namespace Roadie.Library.MetaData.Audio public override string ToString() { - return string.Format("IsValid: {0}{7}, ValidWeight {1}, Artist: {2}, Release: {3}, TrackNumber: {4}, Title: {5}, Year: {6}, Duration: {8}", - this.IsValid, - this.ValidWeight, - this.Artist, - this.Release, - this.TrackNumber, - this.Title, - this.Year, - this.IsSoundTrack ? " [SoundTrack ]" : string.Empty, - this.Time == null ? "-" : this.Time.Value.ToString()); + return string.Format($"IsValid: {this.IsValid}{ (this.IsSoundTrack ? " [SoundTrack ]" : string.Empty)}, ValidWeight {this.ValidWeight}, Artist: {this.Artist}, Release: {this.Release}, TrackNumber: {this.TrackNumber}, TrackTotal: {this.TotalTrackNumbers}, Title: {this.Title}, Year: {this.Year}, Duration: {(this.Time == null ? "-" : this.Time.Value.ToString())}"); } } } \ No newline at end of file diff --git a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaDataImageType.cs b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaDataImageType.cs index d5b8bc3..5c0f55d 100644 --- a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaDataImageType.cs +++ b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudioMetaDataImageType.cs @@ -24,4 +24,7 @@ BandLogo = 19, PublisherLogo = 20, } + + + } \ No newline at end of file diff --git a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudoMetaDataWeights.cs b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudoMetaDataWeights.cs index df77d22..b882ae6 100644 --- a/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudoMetaDataWeights.cs +++ b/Roadie.Api.Library/SearchEngines/MetaData/Audio/AudoMetaDataWeights.cs @@ -9,9 +9,10 @@ namespace Roadie.Library.MetaData.Audio Year = 1, Time = 2, TrackNumber = 4, - Release = 8, - Title = 16, - Artist = 32 + TrackTotalNumber = 8, + Release = 16, + Title = 32, + Artist = 64 } //Artist + Release + TrackTitle 56 diff --git a/Roadie.Api.Library/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs b/Roadie.Api.Library/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs index 456b420..79a41f0 100644 --- a/Roadie.Api.Library/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs +++ b/Roadie.Api.Library/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs @@ -15,6 +15,12 @@ using IdSharp.Tagging.ID3v1; using IdSharp.Tagging.ID3v2; using Newtonsoft.Json; +using ATL.AudioData; +using ATL; +using System.Text.RegularExpressions; +using ATL.CatalogDataReaders; +using ATL.PlaylistReaders; + namespace Roadie.Library.MetaData.ID3Tags { public class ID3TagsHelper : MetaDataProviderBase, IID3TagsHelper @@ -31,6 +37,11 @@ namespace Roadie.Library.MetaData.ID3Tags { return result; } + result = this.MetaDataForFileFromATL(fileName); + if (result.IsSuccess) + { + return result; + } return new OperationResult(); } @@ -61,22 +72,57 @@ namespace Roadie.Library.MetaData.ID3Tags { try { - // TODO + if(!metaData.IsValid) + { + this.Logger.LogWarning($"Invalid MetaData `{ metaData }` to save to file [{ filename }]"); + return false; + } + ID3v1Tag.RemoveTag(filename); + + var trackNumber = metaData.TrackNumber ?? 1; + var totalTrackNumber = metaData.TotalTrackNumbers ?? trackNumber; + + var disc = metaData.Disk ?? 1; + var discCount = metaData.TotalDiscCount ?? disc; + + IID3v2Tag id3v2 = new ID3v2Tag(filename) + { + Artist = metaData.Artist, + Album = metaData.Release, + Title = metaData.Title, + Year = metaData.Year.Value.ToString(), + TrackNumber = totalTrackNumber < 99 ? $"{trackNumber.ToString("00")}/{totalTrackNumber.ToString("00")}" : $"{trackNumber.ToString()}/{totalTrackNumber.ToString()}", + DiscNumber = discCount < 99 ? $"{disc.ToString("00")}/{discCount.ToString("00")}" : $"{disc.ToString()}/{discCount.ToString()}" + }; + if (metaData.TrackArtists.Any()) + { + id3v2.OriginalArtist = string.Join("/", metaData.TrackArtists); + } + if (this.Configuration.Processing.DoClearComments) + { + if (id3v2.CommentsList.Any()) + { + for (var i = 0; i < id3v2.CommentsList.Count; i++) + { + id3v2.CommentsList[i].Description = null; + id3v2.CommentsList[i].Value = null; + } + } + } + id3v2.Save(filename); + + //// Delete first embedded picture (let's say it exists) + //theTrack.EmbeddedPictures.RemoveAt(0); + + //// Add 'CD' embedded picture + //PictureInfo newPicture = new PictureInfo(Commons.ImageFormat.Gif, PictureInfo.PIC_TYPE.CD); + //newPicture.PictureData = System.IO.File.ReadAllBytes("E:/temp/_Images/pic1.gif"); + //theTrack.EmbeddedPictures.Add(newPicture); + + //// Save modifications on the disc + //theTrack.Save(); + - //var tagFile = TagLib.File.Create(filename); - //tagFile.Tag.AlbumArtists = null; - //tagFile.Tag.AlbumArtists = new[] { metaData.Artist }; - //tagFile.Tag.Performers = null; - //if (metaData.TrackArtists.Any()) - //{ - // tagFile.Tag.Performers = metaData.TrackArtists.ToArray(); - //} - //tagFile.Tag.Album = metaData.Release; - //tagFile.Tag.Title = metaData.Title; - //tagFile.Tag.Year = force ? (uint)(metaData.Year ?? 0) : tagFile.Tag.Year > 0 ? tagFile.Tag.Year : (uint)(metaData.Year ?? 0); - //tagFile.Tag.Track = force ? (uint)(metaData.TrackNumber ?? 0) : tagFile.Tag.Track > 0 ? tagFile.Tag.Track : (uint)(metaData.TrackNumber ?? 0); - //tagFile.Tag.TrackCount = force ? (uint)(metaData.TotalTrackNumbers ?? 0) : tagFile.Tag.TrackCount > 0 ? tagFile.Tag.TrackCount : (uint)(metaData.TotalTrackNumbers ?? 0); - //tagFile.Tag.Disc = force ? (uint)(metaData.Disk ?? 0) : tagFile.Tag.Disc > 0 ? tagFile.Tag.Disc : (uint)(metaData.Disk ?? 0); //tagFile.Tag.Pictures = metaData.Images == null ? null : metaData.Images.Select(x => new TagLib.Picture //{ // Data = new TagLib.ByteVector(x.Data), @@ -94,6 +140,54 @@ namespace Roadie.Library.MetaData.ID3Tags return false; } + private OperationResult MetaDataForFileFromATL(string fileName) + { + var sw = new Stopwatch(); + sw.Start(); + AudioMetaData result = new AudioMetaData(); + var isSuccess = false; + try + { + result.Filename = fileName; + var theTrack = new ATL.Track(fileName); + result.Release = theTrack.Album; + result.Artist = theTrack.AlbumArtist ?? theTrack.Artist; + result.ArtistRaw = theTrack.AlbumArtist ?? theTrack.Artist; + result.Genres = theTrack.Genre?.Split(new char[] { ',', '\\' }); + result.TrackArtist = theTrack.OriginalArtist ?? theTrack.Artist ?? theTrack.AlbumArtist; + result.TrackArtistRaw = theTrack.OriginalArtist; + result.AudioBitrate = (int?)theTrack.Bitrate; + result.AudioSampleRate = (int)theTrack.Bitrate; + result.Disk = theTrack.DiscNumber; + result.DiskSubTitle = theTrack.AdditionalFields["TSST"]; + result.Images = theTrack.EmbeddedPictures?.Select(x => new AudioMetaDataImage + { + Data = x.PictureData, + Description = x.Description, + MimeType = "image/jpg", + Type = x.PicType == PictureInfo.PIC_TYPE.Front || x.PicType == PictureInfo.PIC_TYPE.Generic ? AudioMetaDataImageType.FrontCover : AudioMetaDataImageType.Other + }).ToArray(); + result.Time = theTrack.DurationMs > 0 ? ((decimal?)theTrack.DurationMs).ToTimeSpan() : null; + result.Title = theTrack.Title.ToTitleCase(false); + result.TrackNumber = (short)theTrack.TrackNumber; + result.Year = theTrack.Year; + isSuccess = result.IsValid; + } + catch (Exception ex) + { + this.Logger.LogError(ex, "MetaDataForFileFromTagLib Filename [" + fileName + "] Error [" + ex.Serialize() + "]"); + } + sw.Stop(); + return new OperationResult + { + IsSuccess = isSuccess, + OperationTime = sw.ElapsedMilliseconds, + Data = result + }; + } + + + private OperationResult MetaDataForFileFromIdSharp(string fileName) { @@ -103,6 +197,7 @@ namespace Roadie.Library.MetaData.ID3Tags var isSuccess = false; try { + result.Filename = fileName; IAudioFile audioFile = AudioFile.Create(fileName, true); if (ID3v2Tag.DoesTagExist(fileName)) { @@ -117,6 +212,7 @@ namespace Roadie.Library.MetaData.ID3Tags result.AudioChannels = audioFile.Channels; result.AudioSampleRate = (int)audioFile.Bitrate; result.Disk = ID3TagsHelper.ParseDiscNumber(id3v2.DiscNumber); + result.DiskSubTitle = id3v2.SetSubtitle; result.Images = id3v2.PictureList?.Select(x => new AudioMetaDataImage { Data = x.PictureData, @@ -130,7 +226,7 @@ namespace Roadie.Library.MetaData.ID3Tags result.TotalTrackNumbers = ID3TagsHelper.ParseTotalTrackNumber(id3v2.TrackNumber); var year = id3v2.Year ?? id3v2.RecordingTimestamp ?? id3v2.ReleaseTimestamp ?? id3v2.OriginalReleaseTimestamp; result.Year = ID3TagsHelper.ParseYear(year); - isSuccess = true; + isSuccess = result.IsValid; } if (!isSuccess) @@ -149,7 +245,7 @@ namespace Roadie.Library.MetaData.ID3Tags result.TrackNumber = SafeParser.ToNumber(id3v1.TrackNumber); var date = SafeParser.ToDateTime(id3v1.Year); result.Year = date?.Year ?? SafeParser.ToNumber(id3v1.Year); - isSuccess = true; + isSuccess = result.IsValid; } } @@ -167,6 +263,79 @@ namespace Roadie.Library.MetaData.ID3Tags }; } + public static short? DetermineTotalTrackNumbers(string filename, string trackNumber = null) + { + short? result = null; + if(!string.IsNullOrEmpty(filename)) + { + var fileInfo = new FileInfo(filename); + var directoryName = fileInfo.DirectoryName; + + // See if CUE sheet exists if so read tracks from that and return latest track number + var cueFiles = Directory.GetFiles(directoryName, ("*.cue")); + if(cueFiles != null && cueFiles.Any()) + { + try + { + ICatalogDataReader theReader = CatalogDataReaderFactory.GetInstance().GetCatalogDataReader(cueFiles.First()); + result = (short)theReader.Tracks.Max(x => x.TrackNumber); + } + catch (Exception ex) + { + Trace.Write("Error Reading Cue: " + ex.ToString()); + } + } + if(!result.HasValue) + { + // See if M3U sheet exists if so read tracks from that and return latest track number + var m3uFiles = Directory.GetFiles(directoryName, ("*.m3u")); + if (m3uFiles != null && m3uFiles.Any()) + { + try + { + IPlaylistReader theReader = PlaylistReaderFactory.GetInstance().GetPlaylistReader(m3uFiles.First()); + result = (short)theReader.GetFiles().Count(); + + } + catch (Exception ex) + { + Trace.Write("Error Reading m3u: " + ex.ToString()); + } + } + } + } + // Try to parse from TrackNumber + if (!result.HasValue) + { + result = ID3TagsHelper.ParseTotalTrackNumber(trackNumber); + } + return result; + } + + public static int DetermineTotalDiscNumbers(IEnumerable metaDatas) + { + var result = 1; + foreach (var metaData in metaDatas.OrderBy(x => x.Filename)) + { + var n = DetermineDiscNumber(metaData); + result = result > n ? result : n; + } + return result; + } + + public static int DetermineDiscNumber(AudioMetaData metaData) + { + var maxDiscNumber = 500; // Damnit Karajan + for (var i = maxDiscNumber; i > 0; i--) + { + if (Regex.IsMatch(metaData.Filename, @"(cd\s*(0*" + i + "))", RegexOptions.IgnoreCase)) + { + return i; + } + } + return 1; + } + public static short? ParseYear(string input) { if(string.IsNullOrEmpty(input)) diff --git a/Roadie.sln b/Roadie.sln index a9b7be3..5b12482 100644 --- a/Roadie.sln +++ b/Roadie.sln @@ -18,6 +18,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Roadie.Api.Services", "Road EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Roadie.Api.Hubs", "Roadie.Api.Hubs\Roadie.Api.Hubs.csproj", "{E740C89E-3363-4577-873B-0871823E252C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Inspector", "Inspector\Inspector.csproj", "{9A0831DC-343A-4E0C-8617-AF62426F3BA8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -66,6 +68,14 @@ Global {E740C89E-3363-4577-873B-0871823E252C}.Release|Any CPU.Build.0 = Release|Any CPU {E740C89E-3363-4577-873B-0871823E252C}.Release|x64.ActiveCfg = Release|x64 {E740C89E-3363-4577-873B-0871823E252C}.Release|x64.Build.0 = Release|x64 + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Debug|x64.ActiveCfg = Debug|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Debug|x64.Build.0 = Debug|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Release|Any CPU.Build.0 = Release|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Release|x64.ActiveCfg = Release|Any CPU + {9A0831DC-343A-4E0C-8617-AF62426F3BA8}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/libraries/IdSharp.AudioInfo-core.dll b/libraries/IdSharp.AudioInfo-core.dll index 3c98b40c43c4888c458c92bdf0c6408de3399732..213db7f33821b2c40437933cbe70e3d762426e96 100644 GIT binary patch delta 347 zcmZqp!PM}DX+no$QV7Ef1}J#IprpXfXu!a*2`In@5oDUUGMsVUWJbn%t`8f5LJB~< zX>u2%HshAb+ZfducTB#=sKoeaGb58>MJUGw1_n(=4Irt-m;fZT88d*S4r2$9)MY#X zB=s0i07-qu7eLa0QQ;y3gCU~>kThcS0FuUx4M5U_aR-nzWxN3-%@`kSZm*iDBVfNq zv3K>?i=Jy89$WRg-DKNruzU(9@6`&EFAR*n0Zc$w6;HmnL7uh!JOe}fweHGd2K89mWMfQkU@t zkkn&*03`Jp87?v~7%*A@Nkhg6AZf&y03?kWX8=hP#tT5wl<@YaRXgFNfP^9&3NCx6|b?C?~1 z+mf=yw_O{BFa8Vp&}hpDRO4(F6Iz^FR2&mrl3JFU7vqv&o|luKm{J_$nG&3lSXAJg zUzDnwn^;_uS~S^iV}KFVkkErrLx2|MDBV|i_hHRl`@NO_RX+f&g8?p}&lnUYDvB}w mnS6bt=4Pf%JWQJvc06F5Xuz?VZ_6)cCK-dxf;-*=`RoARqJfV9 diff --git a/libraries/IdSharp.Common-core.dll b/libraries/IdSharp.Common-core.dll index ff46f36b9f567f4889eff18ab0a257a438a08538..6f158b98eeae712e8709654879e3025c57cbc546 100644 GIT binary patch delta 226 zcmZqJ!Pu~aaY6@6;rmyYC-%rN@=aVB&bVhXBV#>d$mB-GdZrJBo0*vSj2J~W3!2!A z3#`!9i@7`{&uzkLvso!U<#n4AyerswGacE#GcfuFFflMN;Q+IQ0M>v delta 249 zcmZqJ!Pu~aaY6^n!R7vUC-%rNYE4`j&UkGyBV#>d!Q@89dM2)-%}h*uMvMlV1x@V5 z1vZ_~&bhJus_(4j_ushR2|Tko!MlQ;*HUoaO9n>Y044?ohW5!%gXCG)7cwxcpUfGo z?7(8){NWz+M%R|EpE8S$zA-Wa)i_(lgche36~_dZq?V=T#kk~`=jG%lrWD6`rUYjs z78N+>7p3avCKi{Z7EKNc_A-JRQpy4~1ZZI<@9YywtNf?Eyua!H=6^uzU_hb>$WoZ7 iCF>dAy`^C(pW3*W?>OJE`19kvYEn1lX diff --git a/libraries/IdSharp.Tagging-core.dll b/libraries/IdSharp.Tagging-core.dll index 01d3d5392fc0f87db8879af4ad16d23833fd420f..0c40417e0833894c41e6f948291a37dd7693331d 100644 GIT binary patch literal 193536 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

V3n*=T-7LT+KtMKNF=@?A@n zzaF}P@ha}{#Mi#KfyYla+ii>o#Ocq_BZQTfq=!Z!UFL{F34AK@xrznH5$Gg7AWq

Z=$)J{dd}fI$U3yA9)nsYJCX{#>g+Q*nuva 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%0D6sNMg1E~u6_z&;nurJ3YjTjztkX9oH( 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

{A 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

H#_|%hh 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