fixes #627 - Populate album release date with id3 info, when availalbe

This commit is contained in:
Luke Pulverenti 2013-11-15 10:10:56 -05:00
parent 340c80bcec
commit ad3e4dee0e
3 changed files with 29 additions and 24 deletions

View file

@ -69,6 +69,24 @@ namespace MediaBrowser.Providers.Music
.Distinct(StringComparer.OrdinalIgnoreCase) .Distinct(StringComparer.OrdinalIgnoreCase)
.ToList(); .ToList();
var date = songs.Select(i => i.PremiereDate)
.FirstOrDefault(i => i.HasValue);
if (date.HasValue)
{
album.PremiereDate = date.Value;
album.ProductionYear = date.Value.Year;
}
else
{
var year = songs.Select(i => i.ProductionYear ?? 1800).FirstOrDefault(i => i != 1800);
if (year != 1800)
{
album.ProductionYear = year;
}
}
// Don't save to the db // Don't save to the db
return FalseTaskResult; return FalseTaskResult;
} }

View file

@ -107,23 +107,6 @@ namespace MediaBrowser.Providers.Music
} }
} }
var date = songs.Select(i => i.PremiereDate).FirstOrDefault(i => i.HasValue);
if (date != null)
{
album.PremiereDate = date.Value;
album.ProductionYear = date.Value.Year;
}
else
{
var year = songs.Select(i => i.ProductionYear ?? 1800).FirstOrDefault(i => i != 1800);
if (year != 1800)
{
album.ProductionYear = year;
}
}
if (!item.LockedFields.Contains(MetadataFields.Studios)) if (!item.LockedFields.Contains(MetadataFields.Studios))
{ {
album.Studios = songs.SelectMany(i => i.Studios) album.Studios = songs.SelectMany(i => i.Studios)

View file

@ -103,6 +103,9 @@ namespace MediaBrowser.Providers.Music
item.Overview = overview; item.Overview = overview;
} }
// Only grab the date here if the album doesn't already have one, since id3 tags are preferred
if (!item.PremiereDate.HasValue)
{
DateTime release; DateTime release;
if (DateTime.TryParse(data.releasedate, out release)) if (DateTime.TryParse(data.releasedate, out release))
@ -114,6 +117,7 @@ namespace MediaBrowser.Providers.Music
item.ProductionYear = release.Year; item.ProductionYear = release.Year;
} }
} }
}
if (data.toptags != null && !item.LockedFields.Contains(MetadataFields.Tags)) if (data.toptags != null && !item.LockedFields.Contains(MetadataFields.Tags))
{ {