mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 13:33:34 -07:00
* Implemented parsing case for Artist - Year - Album * Enhanced test case to ensure year and artist also parse correctly. Closes #264
This commit is contained in:
parent
226f884233
commit
798e85e4db
2 changed files with 18 additions and 0 deletions
|
@ -7,6 +7,7 @@ using NzbDrone.Core.Music;
|
||||||
using NzbDrone.Core.Parser;
|
using NzbDrone.Core.Parser;
|
||||||
using NzbDrone.Core.Qualities;
|
using NzbDrone.Core.Qualities;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
|
using NzbDrone.Core.Parser.Model;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.ParserTests
|
namespace NzbDrone.Core.Test.ParserTests
|
||||||
{
|
{
|
||||||
|
@ -66,6 +67,16 @@ namespace NzbDrone.Core.Test.ParserTests
|
||||||
Parser.Parser.ParseAlbumTitle(title).Quality.QualitySource.Should().Be(QualitySource.Extension);
|
Parser.Parser.ParseAlbumTitle(title).Quality.QualitySource.Should().Be(QualitySource.Extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase("of Montreal-Hissing Fauna, Are You The Destroyer? 2007", "Hissing Fauna, Are You The Destroyer", "of Montreal", "2007")]
|
||||||
|
[TestCase("of Montreal - 2007 - Hissing Fauna, Are You The Destroyer?", "Hissing Fauna, Are You The Destroyer", "of Montreal", "2007")]
|
||||||
|
public void should_parse_album(string title, string correctAlbum, string correctArtist, string correctYear)
|
||||||
|
{
|
||||||
|
ParsedAlbumInfo result = Parser.Parser.ParseAlbumTitle(title);
|
||||||
|
result.AlbumTitle.Should().Be(correctAlbum);
|
||||||
|
result.ArtistName.Should().Be(correctArtist);
|
||||||
|
result.ReleaseDate.Should().Be(correctYear);
|
||||||
|
}
|
||||||
|
|
||||||
[TestCase("VA - The Best 101 Love Ballads (2017) MP3 [192 kbps]", "VA", "The Best 101 Love Ballads")]
|
[TestCase("VA - The Best 101 Love Ballads (2017) MP3 [192 kbps]", "VA", "The Best 101 Love Ballads")]
|
||||||
[TestCase("ATCQ - The Love Movement 1998 2CD 192kbps RIP", "ATCQ", "The Love Movement")]
|
[TestCase("ATCQ - The Love Movement 1998 2CD 192kbps RIP", "ATCQ", "The Love Movement")]
|
||||||
//[TestCase("A Tribe Called Quest - The Love Movement 1998 2CD [192kbps] RIP", "A Tribe Called Quest", "The Love Movement")]
|
//[TestCase("A Tribe Called Quest - The Love Movement 1998 2CD [192kbps] RIP", "A Tribe Called Quest", "The Love Movement")]
|
||||||
|
|
|
@ -115,10 +115,17 @@ namespace NzbDrone.Core.Parser
|
||||||
new Regex(@"^(?:(?<artist>.+?)(?:-)+)(?<album>.+?)(?:-.+?)(?<releaseyear>\d{4})",
|
new Regex(@"^(?:(?<artist>.+?)(?:-)+)(?<album>.+?)(?:-.+?)(?<releaseyear>\d{4})",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||||
|
|
||||||
|
//Artist - Year - Album
|
||||||
|
// Hypen with no or more spaces between artist/album/year (must be before Artist-Album Year as that catches this case)
|
||||||
|
new Regex(@"^(?:(?<artist>.+?)\s*(?:-)+)\s*(?<releaseyear>\d{4})\s*(?:-+)\s*(?<album>.+)",
|
||||||
|
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||||
|
|
||||||
//Artist-Album Year
|
//Artist-Album Year
|
||||||
//Hyphen no space between artist and album
|
//Hyphen no space between artist and album
|
||||||
new Regex(@"^(?:(?<artist>.+?)(?:-)+)(?<album>.+?)\W*(?<releaseyear>\d{4})",
|
new Regex(@"^(?:(?<artist>.+?)(?:-)+)(?<album>.+?)\W*(?<releaseyear>\d{4})",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
RegexOptions.IgnoreCase | RegexOptions.Compiled),
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private static readonly Regex[] RejectHashedReleasesRegex = new Regex[]
|
private static readonly Regex[] RejectHashedReleasesRegex = new Regex[]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue