From 304c808acd2f68ca54fef62e9388c16fb2d80ffc Mon Sep 17 00:00:00 2001 From: Steven Hildreth Date: Fri, 14 Dec 2018 17:38:48 -0600 Subject: [PATCH] Scan work --- Roadie.Library.Tests/ID3TagsHelperTests.cs | 370 ++++++++++++++++++ Roadie.Library.Tests/appsettings.test.json | 22 +- RoadieApi/Controllers/AdminController.cs | 2 +- RoadieApi/Services/AdminService.cs | 21 +- RoadieLibrary/EventMessage.cs | 14 + RoadieLibrary/Extensions/DecimalExt.cs | 9 + RoadieLibrary/Factories/ArtistFactory.cs | 4 +- .../Processors/EventMessageLogger.cs | 34 ++ RoadieLibrary/Processors/FileProcessor.cs | 5 +- RoadieLibrary/Processors/FolderProcessor.cs | 38 +- .../Processors/IEventMessageLogger.cs | 14 + RoadieLibrary/Roadie.Library.csproj | 11 +- .../MetaData/ID3Tags/ID3TagsHelper.cs | 147 +++---- libraries/IdSharp.AudioInfo-core.dll | Bin 0 -> 48128 bytes libraries/IdSharp.Common-core.dll | Bin 0 -> 23552 bytes libraries/IdSharp.Tagging-core.dll | Bin 0 -> 193536 bytes 16 files changed, 548 insertions(+), 143 deletions(-) create mode 100644 Roadie.Library.Tests/ID3TagsHelperTests.cs create mode 100644 RoadieLibrary/EventMessage.cs create mode 100644 RoadieLibrary/Processors/EventMessageLogger.cs create mode 100644 RoadieLibrary/Processors/IEventMessageLogger.cs create mode 100644 libraries/IdSharp.AudioInfo-core.dll create mode 100644 libraries/IdSharp.Common-core.dll create mode 100644 libraries/IdSharp.Tagging-core.dll diff --git a/Roadie.Library.Tests/ID3TagsHelperTests.cs b/Roadie.Library.Tests/ID3TagsHelperTests.cs new file mode 100644 index 0000000..5fd6a54 --- /dev/null +++ b/Roadie.Library.Tests/ID3TagsHelperTests.cs @@ -0,0 +1,370 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Roadie.Library.Caching; +using Roadie.Library.Configuration; +using Roadie.Library.MetaData.ID3Tags; +using Roadie.Library.Processors; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Xunit; + +namespace Roadie.Library.Tests +{ + public class ID3TagsHelperTests + { + 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 ID3TagsHelperTests() + { + this.MessageLogger = new EventMessageLogger(); + this.MessageLogger.Messages += MessageLogger_Messages; + + var settings = new RoadieSettings(); + IConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); + configurationBuilder.AddJsonFile("appsettings.test.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 }] "); + } + + [Fact] + public void ReadID3TagsFromFileWithTrackArtists() + { + var file = new FileInfo(@"E:\Roadie_Test_Files\13-anna_kendrick-true_colors-a57e270d\01-justin_timberlake-hair_up-ef53c026.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.TrackArtist); + Assert.NotEqual(metaData.Artist, metaData.TrackArtist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Theory] + [InlineData(@"N:\Rita Ora - Phoenix (Deluxe) (2018) Mp3 (320kbps) [Hunter]\Rita Ora - Phoenix (Deluxe) (2018)")] + [InlineData(@"N:\Travis Scott - ASTROWORLD (2018) Mp3 (320kbps) [Hunter]")] + [InlineData(@"N:\Lil Wayne - Tha Carter V (2018) Mp3 (320kbps) [Hunter]")] + [InlineData(@"N:\Beyonce & JAY-Z - EVERYTHING IS LOVE (2018) Mp3 (320kbps) [Hunter]")] + public void ReadFolderTestAllFiles(string folderName) + { + if (!Directory.Exists(folderName)) + { + Assert.True(true); + } + else + { + var folderFiles = Directory.GetFiles(folderName, "*.mp3", SearchOption.AllDirectories); + foreach(var file in folderFiles) + { + var tagLib = this.TagsHelper.MetaDataForFile(file); + 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.True(metaData.ValidWeight > 30); + } + } + + } + + [Fact] + public void ReadID3TagsFromFileSoundtrackInTitleNotSoundtrack() + { + var file = new FileInfo(@"E:\Roadie_Test_Files\01 01 Angel Of Death.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.True(metaData.TotalSeconds > 0); + Assert.False(metaData.IsSoundTrack); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFileIsSoundtrack() + { + var file = new FileInfo(@"E:\Roadie_Test_Files\06 You'Re Sensational.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.True(metaData.TotalSeconds > 0); + Assert.True(metaData.IsSoundTrack); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFileWithAlbumNoTrackSet() + { + var file = new FileInfo(@"Z:\inbound\MEGAPACK ---METAL-DEATH-BLACK---\ebony_tears-evil_as_hell-2001-ss\01-deviation-ss.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.TrackArtist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void Read_File_Test_Is_valid() + { + var file = new FileInfo(@"Z:\unknown\2eec19bd-3575-4b7f-84dd-db2a0ec3e2f3~[2009] Dolly - Disc 1 Of 4~06 Nobody But You (Previously Unissued).mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.Null(metaData.TrackArtist); + Assert.False(metaData.TrackArtists.Any()); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void Read_File_Test_Is_valid2() + { + var file = new FileInfo(@"Z:\library_old\Perverse\[2014] Champion Dub\01 Champion Dub (Original Mix).mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.Null(metaData.TrackArtist); + Assert.False(metaData.TrackArtists.Any()); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFileWithTrackAndArtistTheSame() + { + var file = new FileInfo(@"Z:\library\Blind Melon\[1992] Blind Melon\01. Blind Melon - Soak The Sin.mp3"); + if (file.Exists) + { + var tagLib = this.TagsHelper.MetaDataForFile(file.FullName); + Assert.True(tagLib.IsSuccess); + var metaData = tagLib.Data; + Assert.NotNull(metaData.Artist); + Assert.Null(metaData.TrackArtist); + Assert.False(metaData.TrackArtists.Any()); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.True(metaData.Year > 0); + Assert.NotNull(metaData.TrackNumber); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFileWithArtistAndTrackArtist() + { + var file = new FileInfo(@"E:\Roadie_Test_Files\Test.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.TrackArtist); + Assert.Equal("Da Album Artist", metaData.Artist); + Assert.Equal("Da Artist", metaData.TrackArtist); + Assert.NotNull(metaData.Release); + Assert.NotNull(metaData.Title); + Assert.NotNull(metaData.Genres); + Assert.NotNull(metaData.Genres.First()); + Assert.Equal(2011, metaData.Year); + Assert.NotNull(metaData.TrackNumber); + Assert.Equal(6, metaData.TrackNumber.Value); + Assert.Equal(64, metaData.TotalTrackNumbers); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFile2() + { + var file = new FileInfo(@"Z:\library\Denver, John\[1972] Aerie\10 Readjustment Blues.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(metaData.TrackNumber.Value, 10); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFile3() + { + var file = new FileInfo(@"E:\Roadie_Test_Files\01. What's Yesterday.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.Equal(10, metaData.TotalTrackNumbers.Value); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + [Fact] + public void ReadID3TagsFromFile4() + { + var file = new FileInfo(@"Z:\library\Ac Dc\[1975] T.N.T\01 It'S A Long Way To The Top (If You Wanna Rock 'N' Roll).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(metaData.TrackNumber.Value, 10); + Assert.True(metaData.TotalSeconds > 0); + Assert.True(metaData.ValidWeight > 30); + } + else + { + Console.WriteLine($"skipping { file}"); + Assert.True(true); + } + } + + + } +} diff --git a/Roadie.Library.Tests/appsettings.test.json b/Roadie.Library.Tests/appsettings.test.json index 99266f8..be913a8 100644 --- a/Roadie.Library.Tests/appsettings.test.json +++ b/Roadie.Library.Tests/appsettings.test.json @@ -3,38 +3,28 @@ "SiteName": "Roadie", "DefaultTimeZone": "US/Central", "DiagnosticsPassword": "RoadieDiagPassword", - "InboundFolder": "Z:/incoming/", - "LibraryFolder": "Z:/library/", - "ThumbnailImageSize": { + "InboundFolder": "C:\\roadie_dev_root\\inbound", + "LibraryFolder": "C:\\\\roadie_dev_root\\\\library", + "Thumbnails": { "Height": 80, "Width": 80 }, - "SmallImageSize": { + "MediumThumbnails": { "Height": 160, "Width": 160 }, - "MediumImageSize": { + "LargeThumbnails": { "Height": 320, "Width": 320 }, - "LargeImageSize": { - "Height": 500, - "Width": 500 - }, "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": "Z:/single_holding/", + "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" ] }, - "Converting": { - "DoDeleteAfter": true, - "M4AConvertCommand": "ffmpeg -i \"{0}\" -acodec libmp3lame -q:a 0 \"{1}\"", - "OGGConvertCommand": "ffmpeg -i \"{0}\" -acodec libmp3lame -q:a 0 \"{1}\"\"", - "APEConvertCommand": "ffmpeg -i \"{0}\" \"{1}\"" - }, "Integrations": { "ITunesProviderEnabled": true, "MusicBrainzProviderEnabled": true, diff --git a/RoadieApi/Controllers/AdminController.cs b/RoadieApi/Controllers/AdminController.cs index 759e05b..7b200c1 100644 --- a/RoadieApi/Controllers/AdminController.cs +++ b/RoadieApi/Controllers/AdminController.cs @@ -33,7 +33,7 @@ namespace Roadie.Api.Controllers [Authorize("Admin")] public async Task Scan() { - var result = await this.AdminService.ScanInboundFolder(await this.UserManager.GetUserAsync(User)); + var result = await this.AdminService.ScanInboundFolder(await this.UserManager.GetUserAsync(User), true); if (!result.IsSuccess) { return StatusCode((int)HttpStatusCode.InternalServerError); diff --git a/RoadieApi/Services/AdminService.cs b/RoadieApi/Services/AdminService.cs index ae2b559..9a53cdf 100644 --- a/RoadieApi/Services/AdminService.cs +++ b/RoadieApi/Services/AdminService.cs @@ -31,6 +31,16 @@ namespace Roadie.Api.Services { public class AdminService : ServiceBase, IAdminService { + private IEventMessageLogger EventMessageLogger { get; } + + private ILogger MessageLogger + { + get + { + return this.EventMessageLogger as ILogger; + } + } + protected IHubContext ScanActivityHub { get; } public AdminService(IRoadieSettings configuration, @@ -44,6 +54,13 @@ namespace Roadie.Api.Services : base(configuration, httpEncoder, context, cacheManager, logger, httpContext) { this.ScanActivityHub = scanActivityHub; + this.EventMessageLogger = new EventMessageLogger(); + this.EventMessageLogger.Messages += EventMessageLogger_Messages; + } + + private void EventMessageLogger_Messages(object sender, EventMessage e) + { + Task.WaitAll(this.LogAndPublish(e.Message, e.Level)); } public async Task> ScanInboundFolder(ApplicationUser user, bool isReadOnly = false) @@ -58,7 +75,7 @@ namespace Roadie.Api.Services await this.LogAndPublish($"** Processing Folder: [{d.FullName}]"); long processedFolders = 0; - var folderProcessor = new FolderProcessor(this.Configuration, this.HttpEncoder, this.Configuration.LibraryFolder, this.DbContext, this.CacheManager, this.Logger); + var folderProcessor = new FolderProcessor(this.Configuration, this.HttpEncoder, this.Configuration.LibraryFolder, this.DbContext, this.CacheManager, this.MessageLogger); foreach (var folder in Directory.EnumerateDirectories(d.FullName).ToArray()) { await folderProcessor.Process(new DirectoryInfo(folder), isReadOnly); @@ -78,6 +95,8 @@ namespace Roadie.Api.Services }; } + + private async Task LogAndPublish(string message, LogLevel level = LogLevel.Trace) { switch (level) diff --git a/RoadieLibrary/EventMessage.cs b/RoadieLibrary/EventMessage.cs new file mode 100644 index 0000000..e0c8178 --- /dev/null +++ b/RoadieLibrary/EventMessage.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Roadie.Library +{ + [Serializable] + public class EventMessage + { + public Microsoft.Extensions.Logging.LogLevel Level { get; set; } = Microsoft.Extensions.Logging.LogLevel.Trace; + public string Message { get; set; } + } + +} diff --git a/RoadieLibrary/Extensions/DecimalExt.cs b/RoadieLibrary/Extensions/DecimalExt.cs index 81b9669..101c065 100644 --- a/RoadieLibrary/Extensions/DecimalExt.cs +++ b/RoadieLibrary/Extensions/DecimalExt.cs @@ -15,5 +15,14 @@ namespace Roadie.Library.Extensions } return 0; } + + public static TimeSpan? ToTimeSpan(this decimal? value) + { + if(!value.HasValue) + { + return null; + } + return TimeSpan.FromSeconds((double)value); + } } } diff --git a/RoadieLibrary/Factories/ArtistFactory.cs b/RoadieLibrary/Factories/ArtistFactory.cs index d16f369..92413a9 100644 --- a/RoadieLibrary/Factories/ArtistFactory.cs +++ b/RoadieLibrary/Factories/ArtistFactory.cs @@ -1042,7 +1042,7 @@ namespace Roadie.Library.Factories getParams.Add(new MySqlParameter("@sinAlt", string.Format("%|{0}|%", specialSearchName))); getParams.Add(new MySqlParameter("@sendAlt", string.Format("%|{0}", specialSearchName))); return this.DbContext.Artists.FromSql(@"SELECT * - FROM `Artist` + FROM `artist` WHERE LCASE(name) = @isName OR LCASE(sortName) = @isName OR LCASE(sortName) = @isSortName @@ -1053,7 +1053,7 @@ namespace Roadie.Library.Factories OR alternatenames like @sinAlt OR (alternatenames like @endAlt OR alternatenames like @sendAlt) - LIMIT 1;", getParams.ToArray()).FirstOrDefault(); + LIMIT 1", getParams.ToArray()).FirstOrDefault(); } catch (Exception ex) { diff --git a/RoadieLibrary/Processors/EventMessageLogger.cs b/RoadieLibrary/Processors/EventMessageLogger.cs new file mode 100644 index 0000000..f18e1a1 --- /dev/null +++ b/RoadieLibrary/Processors/EventMessageLogger.cs @@ -0,0 +1,34 @@ +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Roadie.Library.Processors +{ + public class EventMessageLogger : ILogger, IEventMessageLogger + { + public event EventHandler Messages; + + public IDisposable BeginScope(TState state) + { + return null; + } + + public bool IsEnabled(LogLevel logLevel) + { + return true; + } + + public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) + { + Messages?.Invoke(this, new EventMessage { Level = logLevel, Message = formatter(state, exception) }); + } + + private void OnEventMessage(EventMessage message) + { + Messages?.Invoke(this, message); + } + + + } +} diff --git a/RoadieLibrary/Processors/FileProcessor.cs b/RoadieLibrary/Processors/FileProcessor.cs index eae4ed9..752c82f 100644 --- a/RoadieLibrary/Processors/FileProcessor.cs +++ b/RoadieLibrary/Processors/FileProcessor.cs @@ -36,13 +36,14 @@ namespace Roadie.Library.Processors { if (t.GetInterface("IFilePlugin") != null && !t.IsAbstract && !t.IsInterface) { - IFilePlugin plugin = Activator.CreateInstance(t, new object[] { this.ArtistFactory, this.ReleaseFactory, this.ImageFactory, this.CacheManager, this.Logger }) as IFilePlugin; + IFilePlugin plugin = Activator.CreateInstance(t, new object[] { this.Configuration, this.HttpEncoder, this.ArtistFactory, this.ReleaseFactory, this.ImageFactory, this.CacheManager, this.Logger }) as IFilePlugin; plugins.Add(plugin); } } } - catch + catch (Exception ex) { + this.Logger.LogError(ex); } this._plugins = plugins.ToArray(); } diff --git a/RoadieLibrary/Processors/FolderProcessor.cs b/RoadieLibrary/Processors/FolderProcessor.cs index ed17909..93c281f 100644 --- a/RoadieLibrary/Processors/FolderProcessor.cs +++ b/RoadieLibrary/Processors/FolderProcessor.cs @@ -49,16 +49,18 @@ namespace Roadie.Library.Processors return result; } - public async Task> Process(DirectoryInfo inboundFolder, bool doJustInfo, int? submissionId = null) + public async Task> Process(DirectoryInfo folder, bool doJustInfo, int? submissionId = null) { var sw = new Stopwatch(); sw.Start(); - this.PrePrecessFolder(inboundFolder, doJustInfo); + await this.PreProcessFolder(folder, doJustInfo); int processedFiles = 0; var pluginResultInfos = new List(); var errors = new List(); + this.FileProcessor.SubmissionId = submissionId; - foreach (var file in Directory.EnumerateFiles(inboundFolder.FullName, "*.*", SearchOption.AllDirectories).ToArray()) + + foreach (var file in Directory.EnumerateFiles(folder.FullName, "*.*", SearchOption.AllDirectories).ToArray()) { var operation = await this.FileProcessor.Process(file, doJustInfo); if (operation != null && operation.AdditionalData != null && operation.AdditionalData.ContainsKey(PluginResultInfo.AdditionalDataKeyPluginResultInfo)) @@ -67,7 +69,7 @@ namespace Roadie.Library.Processors } if (operation == null) { - var fileExtensionsToDelete = this.Configuration.FileExtensionsToDelete; + var fileExtensionsToDelete = this.Configuration.FileExtensionsToDelete ?? new string[0]; if (fileExtensionsToDelete.Any(x => x.Equals(Path.GetExtension(file), StringComparison.OrdinalIgnoreCase))) { if (!doJustInfo) @@ -86,9 +88,9 @@ namespace Roadie.Library.Processors break; } } - await this.PostProcessFolder(inboundFolder, pluginResultInfos, doJustInfo); + await this.PostProcessFolder(folder, pluginResultInfos, doJustInfo); sw.Stop(); - this.Logger.LogInformation("** Completed! Processed Folder [{0}]: Processed Files [{1}] : Elapsed Time [{2}]", inboundFolder.FullName.ToString(), processedFiles, sw.Elapsed); + this.Logger.LogInformation("** Completed! Processed Folder [{0}]: Processed Files [{1}] : Elapsed Time [{2}]", folder.FullName.ToString(), processedFiles, sw.Elapsed); return new OperationResult { IsSuccess = !errors.Any(), @@ -98,7 +100,6 @@ namespace Roadie.Library.Processors { "newReleases", this.ReleaseFactory.AddedReleaseIds.Count() }, { "newTracks", this.ReleaseFactory.AddedTrackIds.Count() } }, - OperationTime = sw.ElapsedMilliseconds }; } @@ -131,29 +132,8 @@ namespace Roadie.Library.Processors /// /// Perform any operations to the given folder before processing /// - private bool PrePrecessFolder(DirectoryInfo inboundFolder, bool doJustInfo = false) + private async Task PreProcessFolder(DirectoryInfo inboundFolder, bool doJustInfo = false) { - // If Folder name starts with "~" then remove the tilde and set all files in the folder artist to the folder name - if (this.Configuration.Processing.DoFolderArtistNameSet && inboundFolder.Name.StartsWith("~")) - { - var artist = inboundFolder.Name.Replace("~", ""); - this.Logger.LogInformation("Setting Folder File Tags To [{0}]", artist); - if (!doJustInfo) - { - foreach (var file in inboundFolder.GetFiles("*.*", SearchOption.AllDirectories)) - { - var extension = file.Extension.ToLower(); - if (extension.Equals(".mp3") || extension.Equals(".flac")) - { - // TODO - //var tagFile = TagLib.File.Create(file.FullName); - //tagFile.Tag.Performers = null; - //tagFile.Tag.Performers = new[] { artist }; - //tagFile.Save(); - } - } - } - } return true; } } diff --git a/RoadieLibrary/Processors/IEventMessageLogger.cs b/RoadieLibrary/Processors/IEventMessageLogger.cs new file mode 100644 index 0000000..e3fa15e --- /dev/null +++ b/RoadieLibrary/Processors/IEventMessageLogger.cs @@ -0,0 +1,14 @@ +using System; +using Microsoft.Extensions.Logging; + +namespace Roadie.Library.Processors +{ + public interface IEventMessageLogger + { + event EventHandler Messages; + + IDisposable BeginScope(TState state); + bool IsEnabled(LogLevel logLevel); + void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter); + } +} \ No newline at end of file diff --git a/RoadieLibrary/Roadie.Library.csproj b/RoadieLibrary/Roadie.Library.csproj index 1470319..faa576c 100644 --- a/RoadieLibrary/Roadie.Library.csproj +++ b/RoadieLibrary/Roadie.Library.csproj @@ -9,8 +9,8 @@ - - + + @@ -30,8 +30,13 @@ - + + + ..\libraries\IdSharp.AudioInfo-core.dll + + + diff --git a/RoadieLibrary/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs b/RoadieLibrary/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs index 7d32efe..57fd543 100644 --- a/RoadieLibrary/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs +++ b/RoadieLibrary/SearchEngines/MetaData/ID3Tags/ID3TagsHelper.cs @@ -9,6 +9,11 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using IdSharp.AudioInfo; +using IdSharp.Common.Utils; +using IdSharp.Tagging.ID3v1; +using IdSharp.Tagging.ID3v2; +using Newtonsoft.Json; namespace Roadie.Library.MetaData.ID3Tags { @@ -21,12 +26,7 @@ namespace Roadie.Library.MetaData.ID3Tags public OperationResult MetaDataForFile(string fileName) { - var result = this.MetaDataForFileFromTagLib(fileName); - if (result.IsSuccess) - { - return result; - } - result = this.MetaDataForFileFromNTagLite(fileName); + var result = this.MetaDataForFileFromIdSharp(fileName); if (result.IsSuccess) { return result; @@ -39,19 +39,11 @@ namespace Roadie.Library.MetaData.ID3Tags var result = new List(); foreach (var fileName in fileNames) { - var r = this.MetaDataForFileFromTagLib(fileName); + var r = this.MetaDataForFileFromIdSharp(fileName); if (r.IsSuccess) { result.Add(r.Data); } - else - { - r = this.MetaDataForFileFromNTagLite(fileName); - if (r.IsSuccess) - { - result.Add(r.Data); - } - } } return new OperationResult> { @@ -102,7 +94,8 @@ namespace Roadie.Library.MetaData.ID3Tags return false; } - private OperationResult MetaDataForFileFromNTagLite(string fileName) + + private OperationResult MetaDataForFileFromIdSharp(string fileName) { var sw = new Stopwatch(); sw.Start(); @@ -110,81 +103,57 @@ namespace Roadie.Library.MetaData.ID3Tags var isSuccess = false; try { - // TODO + IAudioFile audioFile = AudioFile.Create(fileName, true); + if (ID3v2Tag.DoesTagExist(fileName)) + { + IID3v2Tag id3v2 = new ID3v2Tag(fileName); + result.Release = id3v2.Album; + result.Artist = id3v2.AlbumArtist ?? id3v2.Artist; + result.ArtistRaw = id3v2.AlbumArtist ?? id3v2.Artist; + result.Genres = id3v2.Genre?.Split(new char[] { ',', '\\' }); + result.TrackArtist = id3v2.OriginalArtist ?? id3v2.Artist ?? id3v2.AlbumArtist; + result.TrackArtistRaw = id3v2.OriginalArtist; + result.AudioBitrate = (int?)audioFile.Bitrate; + result.AudioChannels = audioFile.Channels; + result.AudioSampleRate = (int)audioFile.Bitrate; + result.Disk = SafeParser.ToNumber(id3v2.DiscNumber); + result.Images = id3v2.PictureList?.Select(x => new AudioMetaDataImage + { + Data = x.PictureData, + Description = x.Description, + MimeType = x.MimeType, + Type = (AudioMetaDataImageType)x.PictureType + }).ToArray(); + result.Time = (int)audioFile.TotalSeconds > 0 ? ((decimal?)audioFile.TotalSeconds).ToTimeSpan() : null; + result.Title = id3v2.Title.ToTitleCase(false); - //var file = LiteFile.LoadFromFile(fileName); - //var tpos = file.Tag.FindFirstFrameById(FrameId.TPOS); - //Picture[] pics = file.Tag.FindFramesById(FrameId.APIC).Select(f => f.GetPicture()).ToArray(); - //result.Release = file.Tag.Album; - //result.Artist = file.Tag.Artist; - //result.ArtistRaw = file.Tag.Artist; - //result.Genres = (file.Tag.Genre ?? string.Empty).Split(';'); - //result.TrackArtist = file.Tag.OriginalArtist; - //result.TrackArtistRaw = file.Tag.OriginalArtist; - //result.AudioBitrate = file.Bitrate; - //result.AudioChannels = file.AudioMode.HasValue ? (int?)file.AudioMode.Value : null; - //result.AudioSampleRate = file.Frequency; - //result.Disk = tpos != null ? SafeParser.ToNumber(tpos.Text) : null; - //result.Images = pics.Select(x => new AudioMetaDataImage - //{ - // Data = x.Data, - // Description = x.Description, - // MimeType = x.MimeType, - // Type = (AudioMetaDataImageType)x.PictureType - //}).ToArray(); - //result.Time = file.Duration; - //result.Title = file.Tag.Title.ToTitleCase(false); - //result.TotalTrackNumbers = file.Tag.TrackCount; - //result.TrackNumber = file.Tag.TrackNumber; - //result.Year = file.Tag.Year; - isSuccess = true; - } - 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 - }; - } + var trackparts = id3v2.TrackNumber?.Split('/'); + result.TrackNumber = SafeParser.ToNumber(trackparts[0]); + result.TotalTrackNumbers = trackparts.Length > 1 ? SafeParser.ToNumber(trackparts[1]) : 0; + result.Year = SafeParser.ToNumber(id3v2.Year); + isSuccess = true; + } + + if (!isSuccess) + { + if (ID3v1Tag.DoesTagExist(fileName)) + { + IID3v1Tag id3v1 = new ID3v1Tag(fileName); + result.Release = id3v1.Album; + result.Artist = id3v1.Artist; + result.ArtistRaw = id3v1.Artist; + result.AudioBitrate = (int?)audioFile.Bitrate; + result.AudioChannels = audioFile.Channels; + result.AudioSampleRate = (int)audioFile.Bitrate; + result.Time = (int)audioFile.TotalSeconds > 0 ? ((decimal?)audioFile.TotalSeconds).ToTimeSpan() : null; + result.Title = id3v1.Title.ToTitleCase(false); + + result.TrackNumber = (short?)id3v1.TrackNumber; + result.Year = SafeParser.ToNumber(id3v1.Year); + isSuccess = true; + } + } - private OperationResult MetaDataForFileFromTagLib(string fileName) - { - var sw = new Stopwatch(); - sw.Start(); - AudioMetaData result = new AudioMetaData(); - var isSuccess = false; - try - { - // TODO - //var tagFile = TagLib.File.Create(fileName); - //result.Release = tagFile.Tag.Album; - //result.Artist = !string.IsNullOrEmpty(tagFile.Tag.JoinedAlbumArtists) ? tagFile.Tag.JoinedAlbumArtists : tagFile.Tag.JoinedPerformers; - //result.ArtistRaw = !string.IsNullOrEmpty(tagFile.Tag.JoinedAlbumArtists) ? tagFile.Tag.JoinedAlbumArtists : tagFile.Tag.JoinedPerformers; - //result.Genres = tagFile.Tag.Genres != null ? tagFile.Tag.Genres : new string[0]; - //result.TrackArtist = tagFile.Tag.JoinedPerformers; - //result.TrackArtistRaw = tagFile.Tag.JoinedPerformers; - //result.AudioBitrate = (tagFile.Properties.AudioBitrate > 0 ? (int?)tagFile.Properties.AudioBitrate : null); - //result.AudioChannels = (tagFile.Properties.AudioChannels > 0 ? (int?)tagFile.Properties.AudioChannels : null); - //result.AudioSampleRate = (tagFile.Properties.AudioSampleRate > 0 ? (int?)tagFile.Properties.AudioSampleRate : null); - //result.Disk = (tagFile.Tag.Disc > 0 ? (int?)tagFile.Tag.Disc : null); - //result.Images = (tagFile.Tag.Pictures != null ? tagFile.Tag.Pictures.Select(x => new AudioMetaDataImage - //{ - // Data = x.Data.Data, - // Description = x.Description, - // MimeType = x.MimeType, - // Type = (AudioMetaDataImageType)x.Type - //}).ToArray() : null); - //result.Time = (tagFile.Properties.Duration.TotalMinutes > 0 ? (TimeSpan?)tagFile.Properties.Duration : null); - //result.Title = tagFile.Tag.Title.ToTitleCase(false); - //result.TotalTrackNumbers = (tagFile.Tag.TrackCount > 0 ? (int?)tagFile.Tag.TrackCount : null); - //result.TrackNumber = (tagFile.Tag.Track > 0 ? (short?)tagFile.Tag.Track : null); - //result.Year = (tagFile.Tag.Year > 0 ? (int?)tagFile.Tag.Year : null); - isSuccess = true; } catch (Exception ex) { diff --git a/libraries/IdSharp.AudioInfo-core.dll b/libraries/IdSharp.AudioInfo-core.dll new file mode 100644 index 0000000000000000000000000000000000000000..3c98b40c43c4888c458c92bdf0c6408de3399732 GIT binary patch literal 48128 zcmc${34B}Cl?QzFBt0#*Wk1W-=EPEV;Vri0MJ6nf*EnQxVkfl|sN>j5;$U0m$qodg z)PX`b0(DtRA#H&vEu|Z@Fhh4*x|g;FPG_KSv6Jv;gt(U+amJrT6odE3_k|cdBkc_s5h0uf$xhH)3h0K})D^R!ou39k z8rRjZ8x;RVggDTkXY?^pY}+$HsG@(5Pr=`2G*^S3noL8GY!$-r!RMIBfz3j6>A>iMkTSm)U@}FG{?C@>D&XODR?|r~?wnZdE_WOrZQNCQ%0| z2TOgFr7koR>O-pDmm`p6z$EHiN+v;BYLBZr>MyM#?tbQusrq4)OJ!YV5+s5OAme6L zpD*NAGq*<75rlbl7csZOTBqqZg0DtVYj?&6aHXSWz2fsl(ZVV)tAPnYK1JOqtTk($ zszl+>+Dw3as1*5%YXc7F?KWbnC9XP$>PiQZ=h1lX^Q&;TJe{E(ca_BDs*KE-hNGfvqhe}*dRP#Hk{yXp;>`$p0;bAe0QT3e# z_*?=0#RB}d1^6B%pZ8-0_)qgV99spyz6Y*Hqaof`!X#_Z?~kJG-EK7skE=y$^eEL# zjUJ&EQXNNqX~eU8edrYOTf8<^v-v`4w1|7XW;@}5uIMTd^+meNihi>i_?2qdbJQ=h zsnyXnV0rC|X7??Iiw|mc|6=IikY*1ohQ@}nrBHyRz@mRFIN~45qQem#Tnv|vX!g)z zI6$&hi{UbQu2`(5$I8W_qgnJyo1)CqBf1tvDD$K%x(;Y`JwO)S*`}t^G2LFZwq8>s zuc2k*D@+y`e+DDw1@bbGMt5yVKCLqTeNC;57wPBZYn6_YE{B>%KXz-5Vb{@N=h0!W zQ_-A;1yp1>n}Mg?(OLp*2*wiI({8m+Rnv7~{`~1muS@TSUMn}h=E~HAeI;@wo8@!> zJ>me`X$BuRaPyC*mt){vg%5h7fVV8wvf?#(Qt|Yp0_jQ4ta1AYB{$XVjW$4^o<-5= zjldSD`A{t4!YS@Shec5TZ{tD@aRZ-#Ikr%=5n2%nZ_7JPCVSDSHs7LV^HU3E(HU&Y zJi*BIXtfLPfei+IE9moY0c|Mu+6ppiwt$QT8v+E8;dQB+D_lIBi?*|thF)n?qfIc) zYd4;%B9W}0(h70~U}KPNM1QxLQW)@Ti4r*7F!E|L@+mT!EHZO&IpKf|c&czdiIr)# z5M--3hHWd1iXfJ=q~6dx4b3rEL@d~Z*IwIZaL)sGW5^(Wf>w+9lzA#Hawk&akdIhM z-VqV#3SRpgxlAo=iRBJuf7Gtmzl;Wy#Z997;&1bfoA+P85#c6hfEb*4r7}<6^ABtG zeVRIS)a)55_mhI&;V^m!RkNUfVoHFM%&tRJ%u55g3&qz6&VCJ{ae zSz0lPcLKQ`AG5C@;HfYQd@_-qq@SLoik{RWHEutlC~YQWj&X4fqV<5s6O&Kbl=d#5^U}9mKFjq~R9g6}Sb1 zF$4*oz-Zu(wgA*^gw84GVL6$~W6Ls+@o)nZxjLkmszs{kY4XXe8h4ObWCi)s+vpON z2ygn6W5jE@`lJ1AlIOCS;|7Av7CHroSFQ5}PhqyiGweBqE@oNxc)bM~T46Qj>a#He zIc9TC5~5NM=Jo%V6b8@G)0iu+z_6M;GjCWt$Gm%Cwc(>GwE52vpBRIUF;cN+5vR5@ zr_g1SCYA~2#8T@tF=IYzu+ud2?*vx6u*&kn$8uUQrqY})e@X3Uojy%{^0eyo2h$Na zIM|@++m~f<`WLIlR>oa;(v(_XriTA&4v&es*Is)K2|N=vV9~W0q**t1Bm$NVGSB4hLz*{r!I_i3)l{oZ2D z8EmlnYb_yf3B*EUUXSMS$K0AH>}j-V&ZT-EeO2n!JWW9_v%ceWjXd9e}`9EZGw9?3Cbc2St zrq#JLO|BT$%lul|(IIcSR#xxO%Ke0@TDh?{N~}aFYF^A>OZ`$wGo}(MEsM1SO)HF} z>)GI8WuBOE4c-Wsj41QO2GZa&RH8Jqpa=ho>KN^og{y5uP&;SQEVLXVUSUgRu^z&3 zLa<)bKd~%W6l$jt|ErcPRv>0}WuA0#LuTP~o04loWuEBCeNx}#{w$_@%0==M9|S@C*BD)S^D*OM6KZMM2T$&!=A`OsItLAi?j5xszvW3@o4>&lgR zlFy6Pm8rg?=?fvFs1;E}o?5szt;x-+m^j5}G2T6nk2$Y)oS@NAx!vj?z8w?)%`|sZ zHM+$RrUGnXH7oBS+^Ur~5krI=K>TdvKK&BtaLS#LFOwu=YiO-Ue}nkEh`!o^ zc&h}CkHy=lirc_*qDefqt>^v`e2;yry?QvN_-d>^o5v2a$l)IvbS$1uJS>y_!}WDm z-(vj+kLugKTnGv0zS~d}doFP;P_V+=;vp#8x)>ggYlQfR7Q?&as>k8qO$9B62Tg%w zUZA&7AZZHp=LNd+0!vNxID6|#$UKj$x8CM)lAXrX?V<`^*n&BikT~k;vH1s4dv|Sx zRb8q^^`jq#HmWT7oEmB=qfDd63}nM2c3rYw<2*hfEC+s zxqWcsS&mOFPJBO3MIDMPe4d_fj)*Kh_nt+zBeHrgrJWmj1nOaKWP$o|ZOvI^eGv`A zgS*xfc?NT#yB6kRB@T13{-%ioX7jnsT0CKlCcA3xSmvyQv<0K5B1*9Wltc50GX{B_ zyP-7nSsG4jkWQm+L08SC6ThaXFdYMen~bBWxyBtp=KQo$Z|0M%4nvey50r%_dwS9& zFYDzH`_MQ=RIfmG3)uh5V<+XRE@YDPff|k&d+Tc6YIyCK7-|!m9ScvJ<_PV>?wTIx zmvl_TcmRErj*gfJg21W42Q&-@UWewWjy)<5a~ynayOuyNFq_Qh24w6k(;w{KV}1xmv%;Z84!@H0{fU>cMkFu zEk+g)XP1OGZ!A&t??Q357ujo@6#b_;VlABtNV)nYQbh$)vJhD*slOEGcK(~gWnzt$JHg4t# zSs${RXQjW(HK`i*nY$0UD=1c-OBw!#B0a2{A)v01=WSaHv`ytxb6Xj6kFf)C<}ubq z!1=6`S4G&AV)f^y#q`naP9*ugcAg$JTjaNJ9FBF44u{>;DO620_cSgaYe+|sbv?_W z4_+ykXSFL_=!&kP#S>Il&9&Ho9_p+u(s1rgTgFiA7n-xK7uqz((V-Q&ZH?;kRZE4` zp(6+vG6%XAt2M{IaCqe4(IK`l-*JBitq%V%^BM;5INXlJr-NR%{tIZ=+;XXsKjo$IkIr-H55u*1 z2@~6E_>=;tbqm6W`LBZKDTr5k_Yp-}30gp|cd<}6kKC2;E4kocCv!ki%u-e8NhZ^i ztfMEje~r6}P;zR`hviw$`400ehr_Y~t*Q6scobY@KgIb1o}RPCc{nV$5o%@^W||_! zk$w}N*?!~&j-{HKMFQb_2;WV(3_14hS(k$(BsVz&z?SrKIp>v$)ST?vs1V6e#V8j& zsc3pqu{G`$HRqaVb5Tgh^?_6TNVb7y4Ht7ya;sRm?T%Nf7`*%99u-TPp14EB0do&J z-X8eGIEkrV48JKJP{XdpaFUKp+>7D8ai@wgHQWu!Q#nark<~m=w(_xaF`dVT$KzEz zLyX3~eC#?KFQSv<@aU$m!o^mnoZI;9Hhd`l1(uzPKWNB)oMj{N5BZDeO$xn6!6Zjx z!`G=`9~uygdb~)XmnU?_4yR*sAn1>|Bob&U(uAY4ikm>Jb@*{0R#R{9?3(A4Xj5XA*s3I{scM@jo?vc*|~BTK}wJ3B;%xVW21 zGZ+n567OIMaQWc*P({QE=9navAF= z#12_OF+_#Yll9_Bj;wL7Bo%>-6JD zT;fpJE&FM&82Pa5r`YZKg491lP{%u zpv+QxA+`pjH=mQGB~xZ8FdZ%@;o&liVpPIfzrgQ7tO74mghq9?`iEo#BeZd-Y*+o` zhiU)}-`rs1jTZKQzG9_1OEFQq+bWM>9Ve*2I2Y?Q%|zok8T^Kel5n)Vo{n_^~j6w5>R znwQ%D@@hxJzg@V0LW-79TrSDHUhx}RoW7#k5@n?f*Y(_qHD~NaZ1Lzo5eHIsGpN04 z;_X&AN$qySUG`<4?MPDbS&fgGRu4R}1pvohnp)iuP=c}?F9vh&P z-{`GcvC&;|;3#YU`qeF4R^77yPphjLafG8$v#qq^b8AsE?h~#HZ^Ua0tm};t-dn`| zrpg*UK%G+do1)l@*vMm?i`#JE>82IEX1fIMwEGm-BD*InyU zs*OIWx!0kOxa(iU2vK7S(^4k1dFBaD(7G#>6JL4y-(fD17i{#>)y z$obqMe*Dk!ilA|covyYWENBV1^q>tP~B~NRREWyWRs{Of(;zQaZ#KD8KWD(+!lIem0*|)+)xxEPDisSA& z@*CpoZS-7?m&uHP@phBJ2pI1$8H|AOPLsjNKPgsuE<8d@8%)C{g@Z4}ip31Sf*ipj zUa?{!BdH;>m(I@r9Zw&8W$ZQOgLW`jud2n>n8j>~uRzA?Vvg7D3JsN5UD%RFaem^) z^_!s*dI^Cj<976_R?JC0gC%7Q0)lGDVPr%j*B`=>Pq-{+9|+AfFPcH|NUp|G41Cw( zQ1mizRJnb%xQytN@BDB|RRm5Hs|d9gCo(wDajWTGKxScB8KQec&I{>O02TK(+C`rt zgdg?B$@x&3O};sD+lmq!z_&V#;|?poD=dy~fhuED$7)L)&Z9$W(`wy|Vjb7Fq3NBx zA5s~Q_Ca3mgEC)-O;ormy9v7kyg0CB&jX^&Q&4EO^j3(v^fBo1N3n@_W1;NKQf$;- z;nJt_?4z1(o-zjFSgTUrG`9L~jBfVYt%fpt8oPcsOZnp)molkv{qnrJGN&?sEwnV1 zqc}n^;zAepmW>ab!02P+*KTxgPIKJub-FaCVP2(Tl^Z*9fyWlbaH-aM%z;HyZ9{t7{V`BFteuTJwW8`F z4Cyr_<}Jc&f7cBYq2btL%(s9&lUO;{9LL3jGxu| zzw#4zWnYqrTmNr~6zNtssSX$GB@!vo{e&z~&|o~{4QkCNPrM6ceYL&{X^&%0P@*_~ za;I@b_X4G}P)+E>^)l-MKT(sa#v<`O^ur+eLY}Xl<#x6|do%JWS1kg*S{X$d zIiF{+)yI|AG){=z#=Ta?^M|t0N6;k2QXpF;Q18wTDa0psO9zYz4v|P-jY4=A>IR`x0sUS)|wIq#d|TLH;lb zz1&Q|-v3LeYL>ht(|nJUued#;gK$v(`egLWko3xTJZ?>$Uv1Vh`(ETO-04fN&ub9C z4B8MMSs@312OanZ=_XKtgyvj4jqziM-iw4{&jG~CmnMe~Hhj07t`DKnYx&g`F4%Gt zWN$^uwRrRJU0jD{g4@K%US=Aorx9oJ{n(S)_pUFAhas!@6nYiR>*< zuVfxZy_G1sk!nc!kjX$x^JsY(nW;QRQH$i>$A@cuwfYBIX-do%Rd>8gz z*W-ing8wkJQ*~)oKn|~o875G<#3WMCII0<(T4FyD;+(Vj>Ym*lMm*=BbqQ{Ycc0qk#~?xCN~5zyD)iKKduA@^wz?%D}%TelL$h@t9PYUjOhnQvp062*X_^2ku% zDG5IvLc0-=aic^jvI0zZZCL7%8OluoQp?uxD`eQC2<#)+9u7K`OjgzHJi~(6c}ny~ zBtha79{zZp61{;$y-M`mcV^J}bjk+=GgEQ~&gQ>Bm+!7t4N*L)F=uy{V{p%=1HNF?&A51)gKz2mF3fQ>Q5%~~3 zS2@~$jH)>zw}aaBQ${I)(ZoD3N92=4|A>6+>i2OUzUtp=<6Z%<3X@@l2T?Tv(A8e)tW>$fg6L7hBKR);1^9g*uZhRgp zz)jv4!Am>>p#K2%#|4DJ#5aig6;X-L6Z#UPh4_l11nU-N7ha zF7#SLYp>Fq_&KW&^K()k;pe!1Ek7^T7x_7;f03Wt^k4F`OD`>^{O9T2{A|{b^RrIB zg`aEn&+~JI{xg17=zqY|kw3+!suZ+vD1NbQw}vgUH5)d|#%f47BGgh1jk2{HqOw^U zB8~{PNkhO9p$2IvlMT_}bVR5X;`k=bh7z+wAo{8AD*_jA#R^{YaJXK}!Po6YsvRF{ zEkvhSk53am=i$?f4;B*wJ)L{%VLa3LT#nCM@IhA)N<7ltqAjkd_>NmR&Pd#Qd2KgaaT__<$y2R{c4 zUtgr(#dN3s5I;BR4iDvv>#O)#t8e1x8vUdEtTF~3ITTZWthZYOgSA$4Qne<;s{%Y8 zg)km8_2Kb7Nj*gmm`eL``kK|s+!{)WBF5D>SR-NAPYWjAr)PhIaYWL&<&he>x&*Es zhD@=73I4wz68!*lD$eM~@yPy`#-po#2RQ#KKz&RqQ07S)UaJOsC%c@G>X*GbCq^H%OHRK#xJT1S$cVRzo zu&G~SOg8K}m!UNqj0{2+HE0ENDdI3fz-f zTh2qoqI=RlT$Q%xxpY7D$*fw)pgZzU6hr~8$k8oPx?}Aul#?u1p2c^fN1iMQ8fy^h zgJ9)j2Q2eqb#Y-<^L919qhz!?Ng^wU+I=#<*7>Z;;^}pMtAZW(>2(3Cg6;O{bwR6w zz4mDiG7KElcIUv8VIDU=jHXwj7(r=~b1xo6N)$1Pozp%(aop$F?;Luf=F`wzzm65x zSF_%F6a%&OWmYAGhs&x|4K2cbH9juGA?8s=1ZC*YV!#TWD&~DF)Lf4t-h!Ddb zszFG5B@x|+v8c!q#Za%xO_v)x`}@e;+OQ*v)n@_wW6XAzi&rZtn0fuBh>fsg71ec~ zx^WOUyXL9i1{>_*weDJ9xRTaxITk2uxP(@UC9&W^$MdaN`$K}O5 zH-HP8lA=3|GT9p50(~b=yhOc}jksNk;F7g6Pr>CMzNu#Si5CmgX_&c*?^R-aH|(eQ zs)Mc41X~Dq4gGE$e4Fc9r>H_7S&h1u3xD>{P**O$?ZfWl!`$qDGuNtAeVFtIWo!5fW zPcl@N`-|dgslUicMn#~Ron&|qKFWKKU1WL>J}U48JITlcALa9u6?#uIJ#MU@oZ=ZF z#2V^Hv_W<&H%!p9@ij1)bS%Z;9IhVDd6dYNIWj=xiX0gvvdSdcIVG+r7DYy1+T%Jy zb;y)n=cmlU9LcH!Ig(ZTO_Eg``=e@C6iZ{H1e*(A#+5Tl_3#C8%qc2j-69%Lt+l8t z?hqF&6IRNV$UH?fzTh7HB=>WN62041<|D|v&d5s(mw9S$+^gCzN05B=l%U&D zV2e@(@{XKoAdLeERzm%S&nXIqpmQA3Syj+nx5CiHM5&>P3B~_9n)0KT5((LQn~ z+|_6b(12L4giNo~)KjSyamHygon^(k{a6CsFM4)Z%jGRUZaWC4C7+fe}X(81jsu zxPY_7)eh-g%!#BX7{}t2yj~qU7q>m%OzqyJR+&c;>v3n3c`MbG5~*9ydf!8KNI#QF2S@ zl!~pvI$!A2`K0~v2KdMPvZmzW8<=KdET0%Od9^v-0!>JvQx4V_H1y&GS}Lx~$?=yh z&tTG*EhV!hC&}LemG&8_;N&nf$KCuL(IsN*9{;};hwq3k({oPFm|V&09&gGsO(WJl zzA?wVdx55IENjqy#Uer5R{Ui~5C#jsN6HBTK3@KY&-MF*fynoe?#p}@p_4uUDHiYt z3njkK640_B?+6B<|54=jFV}A-(%i5-F-VDI+1V0FZOBv`Sgw|` zaw=sFWR{xj^UG30kuM=NxGdEu)l6LK51-%AER#c-&o6NX61z~>P~<@5q(nR0a8?Nz zaVO>6!LdyK54)Ec5(r8WS5I2um+ z{m6PzxNKRPKbN-cj5L%PHOlNk;?gb`LK>GDo;V|8FdQ)QMZ?;%0t30U4QHfVP*_BN>W?Lh~xz0LbMr|zb&5zrjz7JKl- z83XQ&E@>r?o7<_#YhDG!IpYv#S2s;Z?WM!yKx@>xZ(Xp<`bM;*4R<@J$DcwO+f z>R6`2QzR{+bwBnE#&;WQHC)rAs;D=|6+f=o;!B>v*spQ8LUKpVvRK4t{eYD9+YBUN z2SSzid2FX8=J(hQEZ|WMEa-6~SDu@uD9cSsSEvPC<(K}>Q5Wo8LWR~7`nv5*HMg>tVWh)AjSe9P6=49zj zD2Skx^%o`u3W=a30#c6N4e04`lY;cu`+j6E)Y}kHJMOTwf-*{%Yf$JD6Wg9(89*| z6OoclK&>)Qu*eY@<}cb7L9c=j23>*UFkkjuq}B#a1i#{e`*&p{;WC_(Qj$Vnzo|T! zZ6{orr-zE)0`uT&ErqPA#g)rAD{!Jh67&k1pIfCR7`~Kw(v0KBg7KkaU~7kkf);

+A0qFBa-co}_-{#0>i$$wO;;=dR^R{Y+|QZazi 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%0AnLMBJchaFSMc_6>u)Vjx)-fZ#N7u0i^Yck z%fv?kE5s)O1L8A)E5yTq5%ER9wc@LQQSnW{I`J4_qj&v@57 z{)RcfXU?BdmP@=Mo&gk=e}(+G<=+91SY860wEP}$#zOYYTBzJB7+z%|s}>l()k1c@ z-9naJ&+y$Avi4?%x3SD=3t4_A;~!#e_j0a}Gv|Jme2`@xX8m8VQ0*RJZC|rc?Y?E9 z+C2umL_BW!Z>wE2zFsocb+JeVkK&#Hl~w)Sn~OA)Z$%0AIjO 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 literal 0 HcmV?d00001 diff --git a/libraries/IdSharp.Tagging-core.dll b/libraries/IdSharp.Tagging-core.dll new file mode 100644 index 0000000000000000000000000000000000000000..01d3d5392fc0f87db8879af4ad16d23833fd420f GIT binary patch literal 193536 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%0D6sNMg1E~u6_z&;nurJ3YjTjztkX9oH( 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

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

H#_|%hh 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 literal 0 HcmV?d00001