Skip to content

Commit

Permalink
support parent item images for unattached items
Browse files Browse the repository at this point in the history
  • Loading branch information
LukePulverenti committed Jul 30, 2013
1 parent c0d1330 commit c737eb9
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 16 deletions.
4 changes: 2 additions & 2 deletions MediaBrowser.Api/LibraryService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ private async Task<ThemeMediaResult> GetThemeSongs(GetThemeSongs request)

var tasks = item.ThemeSongIds.Select(_itemRepo.RetrieveItem)
.OrderBy(i => i.SortName)
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user));
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user, item));

var items = await Task.WhenAll(tasks).ConfigureAwait(false);

Expand Down Expand Up @@ -445,7 +445,7 @@ public async Task<ThemeMediaResult> GetThemeVideos(GetThemeVideos request)

var tasks = item.ThemeVideoIds.Select(_itemRepo.RetrieveItem)
.OrderBy(i => i.SortName)
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user));
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user, item));

var items = await Task.WhenAll(tasks).ConfigureAwait(false);

Expand Down
14 changes: 12 additions & 2 deletions MediaBrowser.Api/UserLibrary/UserLibraryService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,12 @@ public object Get(GetSpecialFeatures request)

var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);

var items = movie.SpecialFeatureIds.Select(_itemRepo.RetrieveItem).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
var items = movie.SpecialFeatureIds
.Select(_itemRepo.RetrieveItem)
.OrderBy(i => i.SortName)
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user, movie))
.Select(t => t.Result)
.ToList();

return ToOptimizedResult(items);
}
Expand All @@ -420,7 +425,12 @@ public object Get(GetLocalTrailers request)

var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);

var items = item.LocalTrailerIds.Select(_itemRepo.RetrieveItem).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
var items = item.LocalTrailerIds
.Select(_itemRepo.RetrieveItem)
.OrderBy(i => i.SortName)
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user, item))
.Select(t => t.Result)
.ToList();

return ToOptimizedResult(items);
}
Expand Down
2 changes: 1 addition & 1 deletion MediaBrowser.Api/VideosService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public object Get(GetAdditionalParts request)

var items = video.AdditionalPartIds.Select(_itemRepo.RetrieveItem)
.OrderBy(i => i.SortName)
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user))
.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user, video))
.Select(t => t.Result)
.ToArray();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,6 @@ public async Task<IEnumerable<PackageVersionInfo>> GetAvailablePluginUpdatesWith

protected IEnumerable<PackageVersionInfo> FilterCatalog(IEnumerable<PackageInfo> catalog, bool withAutoUpdateEnabled)
{

var plugins = ApplicationHost.Plugins;

if (withAutoUpdateEnabled)
Expand Down
24 changes: 14 additions & 10 deletions MediaBrowser.Controller/Dto/DtoBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,10 @@ public DtoBuilder(ILogger logger, ILibraryManager libraryManager, IUserDataRepos
/// <param name="item">The item.</param>
/// <param name="fields">The fields.</param>
/// <param name="user">The user.</param>
/// <param name="owner">The owner.</param>
/// <returns>Task{DtoBaseItem}.</returns>
/// <exception cref="System.ArgumentNullException">item</exception>
public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fields, User user = null)
public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fields, User user = null, BaseItem owner = null)
{
if (item == null)
{
Expand Down Expand Up @@ -93,7 +94,7 @@ public async Task<BaseItemDto> GetBaseItemDto(BaseItem item, List<ItemFields> fi
AttachUserSpecificInfo(dto, item, user, fields);
}

AttachBasicFields(dto, item, fields);
AttachBasicFields(dto, item, owner, fields);

if (fields.Contains(ItemFields.SoundtrackIds))
{
Expand Down Expand Up @@ -378,8 +379,9 @@ internal static async Task AttachPrimaryImageAspectRatio(IItemDto dto, BaseItem
/// </summary>
/// <param name="dto">The dto.</param>
/// <param name="item">The item.</param>
/// <param name="owner">The owner.</param>
/// <param name="fields">The fields.</param>
private void AttachBasicFields(BaseItemDto dto, BaseItem item, List<ItemFields> fields)
private void AttachBasicFields(BaseItemDto dto, BaseItem item, BaseItem owner, List<ItemFields> fields)
{
if (fields.Contains(ItemFields.DateCreated))
{
Expand Down Expand Up @@ -495,7 +497,7 @@ private void AttachBasicFields(BaseItemDto dto, BaseItem item, List<ItemFields>
// If there are no backdrops, indicate what parent has them in case the Ui wants to allow inheritance
if (dto.BackdropImageTags.Count == 0)
{
var parentWithBackdrop = GetParentBackdropItem(item);
var parentWithBackdrop = GetParentBackdropItem(item, owner);

if (parentWithBackdrop != null)
{
Expand All @@ -514,7 +516,7 @@ private void AttachBasicFields(BaseItemDto dto, BaseItem item, List<ItemFields>
// If there is no logo, indicate what parent has one in case the Ui wants to allow inheritance
if (!dto.HasLogo)
{
var parentWithLogo = GetParentImageItem(item, ImageType.Logo);
var parentWithLogo = GetParentImageItem(item, ImageType.Logo, owner);

if (parentWithLogo != null)
{
Expand All @@ -527,7 +529,7 @@ private void AttachBasicFields(BaseItemDto dto, BaseItem item, List<ItemFields>
// If there is no art, indicate what parent has one in case the Ui wants to allow inheritance
if (!dto.HasArtImage)
{
var parentWithImage = GetParentImageItem(item, ImageType.Art);
var parentWithImage = GetParentImageItem(item, ImageType.Art, owner);

if (parentWithImage != null)
{
Expand Down Expand Up @@ -936,10 +938,11 @@ private async Task AttachStudios(BaseItemDto dto, BaseItem item)
/// If an item does not any backdrops, this can be used to find the first parent that does have one
/// </summary>
/// <param name="item">The item.</param>
/// <param name="owner">The owner.</param>
/// <returns>BaseItem.</returns>
private BaseItem GetParentBackdropItem(BaseItem item)
private BaseItem GetParentBackdropItem(BaseItem item, BaseItem owner)
{
var parent = item.Parent;
var parent = item.Parent ?? owner;

while (parent != null)
{
Expand All @@ -959,10 +962,11 @@ private BaseItem GetParentBackdropItem(BaseItem item)
/// </summary>
/// <param name="item">The item.</param>
/// <param name="type">The type.</param>
/// <param name="owner">The owner.</param>
/// <returns>BaseItem.</returns>
private BaseItem GetParentImageItem(BaseItem item, ImageType type)
private BaseItem GetParentImageItem(BaseItem item, ImageType type, BaseItem owner)
{
var parent = item.Parent;
var parent = item.Parent ?? owner;

while (parent != null)
{
Expand Down

0 comments on commit c737eb9

Please sign in to comment.