Skip to content

Commit 223c6a8

Browse files
committed
Fix for Discogs Tracknumber regex
1 parent b9edbef commit 223c6a8

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

MiniMediaMetadataAPI.Application/Helpers/DiscogsHelper.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,16 @@ public static string GetTrackNumber(DiscogsReleaseTrack track)
4646
//try get tracknumber
4747
//try get tracknumber from "xx-yy"
4848
//try get tracknumber that has prefix "Track" before it
49-
string trackRegexPrefix = "^[(]{0,1}(CD|CDR|cd|cdr|CD\\\\-Rom){0,}[ ]*([0-9A-Z]*)[)]{0,1}[ \\\\-\\\\.\\\\\\/]*([0-9]*)[\\- ]*([0-9]*)(Track[ ]*([0-9]*))*";
50-
51-
var prefixMatch = Regex.Match(track.Position, trackRegexPrefix);
49+
string trackRegexPrefix = "^[(]{0,1}(cd-rom|cdr|cd){0,}[ ]*([0-9A-Z]*)[)]{0,1}[ \\-\\.\\\\\\/]*([0-9]*)[\\- ]*([0-9]*)(Track[ ]*([0-9]*))*";
50+
51+
var prefixMatch = Regex.Match(track.Position, trackRegexPrefix, RegexOptions.IgnoreCase);
5252
if (prefixMatch.Success)
5353
{
54-
return int.TryParse(prefixMatch.Groups.Values.LastOrDefault()?.Value, out var trackNumber) ? trackNumber.ToString() : string.Empty;
54+
var valueGroup = prefixMatch.Groups.Values
55+
.LastOrDefault(group => !string.IsNullOrWhiteSpace(group.Value));
56+
57+
return int.TryParse(valueGroup?.Value, out var trackNumber)
58+
? trackNumber.ToString() : string.Empty;
5559
}
5660

5761
return string.Empty;

0 commit comments

Comments
 (0)