fix season ids

pull/702/head
Luke Pulverenti 9 years ago
parent 674b40af03
commit f952ac0f1f

@ -20,6 +20,7 @@ namespace MediaBrowser.Controller.Entities
[IgnoreDataMember] [IgnoreDataMember]
public string SeriesName { get; set; } public string SeriesName { get; set; }
[IgnoreDataMember]
public Guid? SeriesId { get; set; } public Guid? SeriesId { get; set; }
public string FindSeriesName() public string FindSeriesName()

@ -249,6 +249,7 @@ namespace MediaBrowser.Controller.Entities.TV
[IgnoreDataMember] [IgnoreDataMember]
public Guid? SeasonId { get; set; } public Guid? SeasonId { get; set; }
[IgnoreDataMember]
public Guid? SeriesId { get; set; } public Guid? SeriesId { get; set; }
public Guid? FindSeriesId() public Guid? FindSeriesId()

@ -237,6 +237,7 @@ namespace MediaBrowser.Controller.Entities.TV
[IgnoreDataMember] [IgnoreDataMember]
public string SeriesName { get; set; } public string SeriesName { get; set; }
[IgnoreDataMember]
public Guid? SeriesId { get; set; } public Guid? SeriesId { get; set; }
public string FindSeriesName() public string FindSeriesName()

@ -671,17 +671,6 @@ namespace MediaBrowser.Server.Implementations.Dto
.ToList(); .ToList();
} }
private IEnumerable<string> GetCacheTags(BaseItem item, ImageType type, int limit)
{
return item.GetImages(type)
// Convert to a list now in case GetImageCacheTag is slow
.ToList()
.Select(p => GetImageCacheTag(item, p))
.Where(i => i != null)
.Take(limit)
.ToList();
}
private string GetImageCacheTag(BaseItem item, ImageType type) private string GetImageCacheTag(BaseItem item, ImageType type)
{ {
try try
@ -1458,9 +1447,16 @@ namespace MediaBrowser.Server.Implementations.Dto
while (((!dto.HasLogo && logoLimit > 0) || (!dto.HasArtImage && artLimit > 0) || (!dto.HasThumb && thumbLimit > 0) || parent is Series) && while (((!dto.HasLogo && logoLimit > 0) || (!dto.HasArtImage && artLimit > 0) || (!dto.HasThumb && thumbLimit > 0) || parent is Series) &&
(parent = parent ?? (isFirst ? item.GetParent() ?? owner : parent)) != null) (parent = parent ?? (isFirst ? item.GetParent() ?? owner : parent)) != null)
{ {
if (parent == null)
{
break;
}
var allImages = parent.ImageInfos;
if (logoLimit > 0 && !dto.HasLogo && dto.ParentLogoItemId == null) if (logoLimit > 0 && !dto.HasLogo && dto.ParentLogoItemId == null)
{ {
var image = parent.GetImageInfo(ImageType.Logo, 0); var image = allImages.FirstOrDefault(i => i.Type == ImageType.Logo);
if (image != null) if (image != null)
{ {
@ -1470,7 +1466,7 @@ namespace MediaBrowser.Server.Implementations.Dto
} }
if (artLimit > 0 && !dto.HasArtImage && dto.ParentArtItemId == null) if (artLimit > 0 && !dto.HasArtImage && dto.ParentArtItemId == null)
{ {
var image = parent.GetImageInfo(ImageType.Art, 0); var image = allImages.FirstOrDefault(i => i.Type == ImageType.Art);
if (image != null) if (image != null)
{ {
@ -1480,7 +1476,7 @@ namespace MediaBrowser.Server.Implementations.Dto
} }
if (thumbLimit > 0 && !dto.HasThumb && (dto.ParentThumbItemId == null || parent is Series)) if (thumbLimit > 0 && !dto.HasThumb && (dto.ParentThumbItemId == null || parent is Series))
{ {
var image = parent.GetImageInfo(ImageType.Thumb, 0); var image = allImages.FirstOrDefault(i => i.Type == ImageType.Thumb);
if (image != null) if (image != null)
{ {
@ -1490,7 +1486,7 @@ namespace MediaBrowser.Server.Implementations.Dto
} }
if (backdropLimit > 0 && !dto.HasBackdrop) if (backdropLimit > 0 && !dto.HasBackdrop)
{ {
var images = parent.GetImages(ImageType.Backdrop).Take(backdropLimit).ToList(); var images = allImages.Where(i => i.Type == ImageType.Backdrop).Take(backdropLimit).ToList();
if (images.Count > 0) if (images.Count > 0)
{ {

@ -155,6 +155,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
_logger.Debug("Upgrading schema for {0} items", numItems); _logger.Debug("Upgrading schema for {0} items", numItems);
var list = new List<BaseItem>();
foreach (var itemId in itemIds) foreach (var itemId in itemIds)
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
@ -166,19 +168,26 @@ namespace MediaBrowser.Server.Implementations.Persistence
if (item != null) if (item != null)
{ {
try list.Add(item);
{ }
await _itemRepo.SaveItem(item, cancellationToken).ConfigureAwait(false); }
}
catch (OperationCanceledException) if (list.Count >= 1000)
{ {
throw; try
} {
catch (Exception ex) await _itemRepo.SaveItems(list, cancellationToken).ConfigureAwait(false);
{
_logger.ErrorException("Error saving item", ex);
}
} }
catch (OperationCanceledException)
{
throw;
}
catch (Exception ex)
{
_logger.ErrorException("Error saving item", ex);
}
list.Clear();
} }
numComplete++; numComplete++;
@ -187,6 +196,22 @@ namespace MediaBrowser.Server.Implementations.Persistence
progress.Report(percent * 100); progress.Report(percent * 100);
} }
if (list.Count > 0)
{
try
{
await _itemRepo.SaveItems(list, cancellationToken).ConfigureAwait(false);
}
catch (OperationCanceledException)
{
throw;
}
catch (Exception ex)
{
_logger.ErrorException("Error saving item", ex);
}
}
progress.Report(100); progress.Report(100);
} }

Loading…
Cancel
Save