New: Update DB to store all releases for an album (#517)

* New: Store all releases for an album and track artists

* Add Overview, links and release date by release

* Tidy up

* Fix metadata refresh errors following musicbrainz edits
This commit is contained in:
ta264
2018-12-15 00:02:43 +00:00
committed by Qstick
parent 24bdb5a891
commit c392569a63
136 changed files with 2305 additions and 1120 deletions
@@ -158,7 +158,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
return new List<ImageFileResult>();
}
var image = artist.Images.SingleOrDefault(c => c.CoverType == MediaCoverTypes.Poster) ?? artist.Images.FirstOrDefault();
var image = artist.Metadata.Value.Images.SingleOrDefault(c => c.CoverType == MediaCoverTypes.Poster) ?? artist.Metadata.Value.Images.FirstOrDefault();
if (image == null)
{
_logger.Trace("Failed to find suitable Artist image for artist {0}.", artist.Name);
@@ -111,10 +111,10 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Wdtv
var details = new XElement("details");
details.Add(new XElement("id", artist.Id));
details.Add(new XElement("title", string.Format("{0} - {1} - {2}", artist.Name, track.TrackNumber, track.Title)));
details.Add(new XElement("artist_name", artist.Name));
details.Add(new XElement("artist_name", artist.Metadata.Value.Name));
details.Add(new XElement("track_name", track.Title));
details.Add(new XElement("track_number", track.AbsoluteTrackNumber.ToString("00")));
details.Add(new XElement("member", string.Join(" / ", artist.Members.ConvertAll(c => c.Name + " - " + c.Instrument))));
details.Add(new XElement("member", string.Join(" / ", artist.Metadata.Value.Members.ConvertAll(c => c.Name + " - " + c.Instrument))));
//Todo: get guest stars, writer and director
@@ -113,19 +113,19 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
artistElement.Add(new XElement("title", artist.Name));
if (artist.Ratings != null && artist.Ratings.Votes > 0)
if (artist.Metadata.Value.Ratings != null && artist.Metadata.Value.Ratings.Votes > 0)
{
artistElement.Add(new XElement("rating", artist.Ratings.Value));
artistElement.Add(new XElement("rating", artist.Metadata.Value.Ratings.Value));
}
artistElement.Add(new XElement("musicbrainzartistid", artist.ForeignArtistId));
artistElement.Add(new XElement("biography", artist.Overview));
artistElement.Add(new XElement("outline", artist.Overview));
artistElement.Add(new XElement("musicbrainzartistid", artist.Metadata.Value.ForeignArtistId));
artistElement.Add(new XElement("biography", artist.Metadata.Value.Overview));
artistElement.Add(new XElement("outline", artist.Metadata.Value.Overview));
var doc = new XDocument(artistElement);
doc.Save(xw);
_logger.Debug("Saving artist.nfo for {0}", artist.Name);
_logger.Debug("Saving artist.nfo for {0}", artist.Metadata.Value.Name);
return new MetadataFileResult("artist.nfo", doc.ToString());
}
@@ -156,7 +156,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
}
albumElement.Add(new XElement("musicbrainzalbumid", album.ForeignAlbumId));
albumElement.Add(new XElement("artistdesc", artist.Overview));
albumElement.Add(new XElement("artistdesc", artist.Metadata.Value.Overview));
albumElement.Add(new XElement("releasedate", album.ReleaseDate.Value.ToShortDateString()));
var doc = new XDocument(albumElement);
@@ -203,7 +203,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
private IEnumerable<ImageFileResult> ProcessArtistImages(Artist artist)
{
foreach (var image in artist.Images)
foreach (var image in artist.Metadata.Value.Images)
{
var source = _mediaCoverService.GetCoverPath(artist.Id, image.CoverType);
var destination = image.CoverType.ToString().ToLowerInvariant() + Path.GetExtension(image.Url);