Medium Support (Multi-disc Albums), Quality Grouping (#121)

* Multi Disc Stage 1 - Backend Work

* Quality Group Functionality

* Fixed: Only show wanted album types on ArtistDetail page

* Add Media Count Column to ArtistDetail Page

* Parser updates for multidisc cases, other usenet release title formats

* Search for Tracks by Medium Number in Addition to Title and TrackNumber

* Medium Renaming Token for Track Naming

* fixup Codacy and Comment Cleanup

* fixup remove comments
This commit is contained in:
Qstick 2017-11-15 21:24:33 -05:00 committed by GitHub
parent e1e7cad951
commit 21428cba6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
154 changed files with 2946 additions and 701 deletions

View file

@ -16,8 +16,8 @@ namespace NzbDrone.Core.Music
{
Track GetTrack(int id);
List<Track> GetTracks(IEnumerable<int> ids);
Track FindTrack(int artistId, int albumId, int trackNumber);
Track FindTrackByTitle(int artistId, int albumId, string releaseTitle);
Track FindTrack(int artistId, int albumId, int mediumNumber, int trackNumber);
Track FindTrackByTitle(int artistId, int albumId, int mediumNumber, string releaseTitle);
List<Track> GetTracksByArtist(int artistId);
List<Track> GetTracksByAlbum(int albumId);
//List<Track> GetTracksByAlbumTitle(string artistId, string albumTitle);
@ -59,9 +59,9 @@ namespace NzbDrone.Core.Music
return _trackRepository.Get(ids).ToList();
}
public Track FindTrack(int artistId, int albumId, int trackNumber)
public Track FindTrack(int artistId, int albumId, int mediumNumber, int trackNumber)
{
return _trackRepository.Find(artistId, albumId, trackNumber);
return _trackRepository.Find(artistId, albumId, mediumNumber, trackNumber);
}
public List<Track> GetTracksByArtist(int artistId)
@ -75,11 +75,11 @@ namespace NzbDrone.Core.Music
return _trackRepository.GetTracksByAlbum(albumId);
}
public Track FindTrackByTitle(int artistId, int albumId, string releaseTitle)
public Track FindTrackByTitle(int artistId, int albumId, int mediumNumber, string releaseTitle)
{
// TODO: can replace this search mechanism with something smarter/faster/better
var normalizedReleaseTitle = Parser.Parser.NormalizeEpisodeTitle(releaseTitle).Replace(".", " ");
var tracks = _trackRepository.GetTracksByAlbum(albumId);
var tracks = _trackRepository.GetTracksByMedium(albumId, mediumNumber);
var matches = tracks.Select(
track => new