From b9feba3311b453e18ce84f72b201a02b207aba7b Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:04:22 +0900 Subject: [PATCH 1/7] Add and use new ignored-directories setting --- src/AudioTagger.Console/Operations/TagUpdater.cs | 12 ++++++++++-- src/AudioTagger.Library/UserSettings/Settings.cs | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index 496e553..aada0a8 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -21,11 +21,19 @@ public void Start( { throw new InvalidOperationException("No tagging regexes found in settings! Cannot continue."); } - RegexCollection regexCollection = new(regexes); printer.Print($"Found {regexCollection.Patterns.Count} regex expression(s)."); - foreach (MediaFile mediaFile in mediaFiles) + var filteredMediaFiles = + settings.Tagging?.IgnoredDirectories is null + ? mediaFiles + : mediaFiles.Where(f => settings.Tagging + .IgnoredDirectories + .Contains(f.FileInfo.DirectoryName!)) + .ToImmutableList(); + printer.Print($"Tagging {filteredMediaFiles.Count} of {mediaFiles.Count} files."); + + foreach (var mediaFile in filteredMediaFiles) { try { diff --git a/src/AudioTagger.Library/UserSettings/Settings.cs b/src/AudioTagger.Library/UserSettings/Settings.cs index b926933..8ef74c7 100644 --- a/src/AudioTagger.Library/UserSettings/Settings.cs +++ b/src/AudioTagger.Library/UserSettings/Settings.cs @@ -89,6 +89,9 @@ public sealed record Tagging { [JsonPropertyName("regexPatterns")] public ImmutableList? RegexPatterns { get; init; } + + [JsonPropertyName("ignoredDirectories")] + public ImmutableList? IgnoredDirectories { get; init; } } public sealed record Renaming From e8fd22b074cbc22c38ef9ce7cae141fff6d4917f Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:05:44 +0900 Subject: [PATCH 2/7] Nomenclature --- src/AudioTagger.Console/Operations/TagUpdater.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index aada0a8..9d25a05 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -24,21 +24,21 @@ public void Start( RegexCollection regexCollection = new(regexes); printer.Print($"Found {regexCollection.Patterns.Count} regex expression(s)."); - var filteredMediaFiles = + var filteredFiles = settings.Tagging?.IgnoredDirectories is null ? mediaFiles : mediaFiles.Where(f => settings.Tagging .IgnoredDirectories .Contains(f.FileInfo.DirectoryName!)) .ToImmutableList(); - printer.Print($"Tagging {filteredMediaFiles.Count} of {mediaFiles.Count} files."); + printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} files."); - foreach (var mediaFile in filteredMediaFiles) + foreach (var file in filteredFiles) { try { var cancelRequested = UpdateTags( - mediaFile, + file, regexCollection, printer, settings, @@ -50,7 +50,7 @@ public void Start( catch (Exception ex) { printer.Error($"Update error: {ex.Message}"); - errorFiles.Add(mediaFile.FileNameOnly); + errorFiles.Add(file.FileNameOnly); } } From f7fb81ae358e6b063df28908e6770ca9175ae02f Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Mon, 7 Sep 2026 22:24:11 +0900 Subject: [PATCH 3/7] Minor tweak for null... --- src/AudioTagger.Console/Operations/TagUpdater.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index 9d25a05..6245b0b 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -27,11 +27,13 @@ public void Start( var filteredFiles = settings.Tagging?.IgnoredDirectories is null ? mediaFiles - : mediaFiles.Where(f => settings.Tagging - .IgnoredDirectories - .Contains(f.FileInfo.DirectoryName!)) - .ToImmutableList(); - printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} files."); + : mediaFiles.Where(f => + f.FileInfo.DirectoryName is not null && + settings.Tagging + .IgnoredDirectories + .Contains(f.FileInfo.DirectoryName)) + .ToImmutableList(); + printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} file{(mediaFiles.Count == 1 ? "" : "s")}."); foreach (var file in filteredFiles) { From 7b7c632f4e3f31e1ca7704d17a4cc5b0bfef9a1a Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Tue, 8 Sep 2026 14:06:29 +0900 Subject: [PATCH 4/7] Fix logic --- src/AudioTagger.Console/Operations/TagUpdater.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index 6245b0b..e656bff 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -27,12 +27,11 @@ public void Start( var filteredFiles = settings.Tagging?.IgnoredDirectories is null ? mediaFiles - : mediaFiles.Where(f => + : mediaFiles + .Where(f => f.FileInfo.DirectoryName is not null && - settings.Tagging - .IgnoredDirectories - .Contains(f.FileInfo.DirectoryName)) - .ToImmutableList(); + !settings.Tagging.IgnoredDirectories.Contains(new DirectoryInfo(f.FileInfo.DirectoryName).Name)) + .ToImmutableList(); printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} file{(mediaFiles.Count == 1 ? "" : "s")}."); foreach (var file in filteredFiles) From 5a3e54bfb173021e4cbbe0a35e2a877d0342c128 Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Tue, 8 Sep 2026 17:31:54 +0900 Subject: [PATCH 5/7] Code layout --- src/AudioTagger.Console/Operations/TagUpdater.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index e656bff..a5a0a72 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -30,7 +30,10 @@ public void Start( : mediaFiles .Where(f => f.FileInfo.DirectoryName is not null && - !settings.Tagging.IgnoredDirectories.Contains(new DirectoryInfo(f.FileInfo.DirectoryName).Name)) + !settings + .Tagging + .IgnoredDirectories + .Contains(new DirectoryInfo(f.FileInfo.DirectoryName).Name)) .ToImmutableList(); printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} file{(mediaFiles.Count == 1 ? "" : "s")}."); From 37d1e8080f147080332efb61d6d4f6ce3806fd99 Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Thu, 10 Sep 2026 16:30:27 +0900 Subject: [PATCH 6/7] Spacing --- src/AudioTagger.Console/Operations/TagUpdater.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index a5a0a72..9b2f75e 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -22,6 +22,7 @@ public void Start( throw new InvalidOperationException("No tagging regexes found in settings! Cannot continue."); } RegexCollection regexCollection = new(regexes); + printer.Print($"Found {regexCollection.Patterns.Count} regex expression(s)."); var filteredFiles = @@ -35,6 +36,7 @@ f.FileInfo.DirectoryName is not null && .IgnoredDirectories .Contains(new DirectoryInfo(f.FileInfo.DirectoryName).Name)) .ToImmutableList(); + printer.Print($"Tagging {filteredFiles.Count} of {mediaFiles.Count} file{(mediaFiles.Count == 1 ? "" : "s")}."); foreach (var file in filteredFiles) From 7d64ffa0da1d161d14c085892f248c4f14e0e6a5 Mon Sep 17 00:00:00 2001 From: CodeConscious <50596087+codeconscious@users.noreply.github.com> Date: Thu, 10 Sep 2026 16:32:23 +0900 Subject: [PATCH 7/7] Spacing --- src/AudioTagger.Console/Operations/TagUpdater.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/AudioTagger.Console/Operations/TagUpdater.cs b/src/AudioTagger.Console/Operations/TagUpdater.cs index 9b2f75e..272b90d 100644 --- a/src/AudioTagger.Console/Operations/TagUpdater.cs +++ b/src/AudioTagger.Console/Operations/TagUpdater.cs @@ -43,12 +43,7 @@ f.FileInfo.DirectoryName is not null && { try { - var cancelRequested = UpdateTags( - file, - regexCollection, - printer, - settings, - ref doConfirm); + var cancelRequested = UpdateTags(file, regexCollection, printer, settings, ref doConfirm); if (cancelRequested) break;