improve genre displays

pull/702/head
Luke Pulverenti 8 years ago
parent 4f658db3f1
commit 8508e07bb9

@ -11,6 +11,7 @@ using System.Threading;
using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Api.Library
{

@ -214,6 +214,7 @@ namespace MediaBrowser.Api.UserLibrary
dto.AlbumCount = counts.AlbumCount;
dto.SongCount = counts.SongCount;
dto.GameCount = counts.GameCount;
dto.ArtistCount = counts.ArtistCount;
}
/// <summary>

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Configuration
{
public class LibraryOptions
{
public bool EnableAudioArchiveFiles { get; set; }
public bool EnableVideoArchiveFiles { get; set; }
}
}

@ -10,6 +10,7 @@ using System.Threading;
using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Serialization;
using MoreLinq;

@ -16,6 +16,31 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
public class UserRootFolder : Folder
{
private List<Guid> _childrenIds = null;
private readonly object _childIdsLock = new object();
//protected override IEnumerable<BaseItem> LoadChildren()
//{
// lock (_childIdsLock)
// {
// if (_childrenIds == null)
// {
// var list = base.LoadChildren().ToList();
// _childrenIds = list.Select(i => i.Id).ToList();
// return list;
// }
// return _childrenIds.Select(LibraryManager.GetItemById).Where(i => i != null).ToList();
// }
//}
private void ResetCachedChildren()
{
lock (_childIdsLock)
{
_childrenIds = null;
}
}
protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
if (query.Recursive)
@ -69,6 +94,8 @@ namespace MediaBrowser.Controller.Entities
public override bool BeforeMetadataRefresh()
{
ResetCachedChildren();
var hasChanges = base.BeforeMetadataRefresh();
if (string.Equals("default", Name, StringComparison.OrdinalIgnoreCase))
@ -82,6 +109,8 @@ namespace MediaBrowser.Controller.Entities
protected override async Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
{
ResetCachedChildren();
await base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService)
.ConfigureAwait(false);

@ -12,6 +12,7 @@ using System.Threading;
using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
namespace MediaBrowser.Controller.Library

@ -6,6 +6,7 @@ using System.IO;
using System.Linq;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Controller.Library
{

@ -98,7 +98,6 @@
<Compile Include="Collections\CollectionCreationOptions.cs" />
<Compile Include="Collections\CollectionEvents.cs" />
<Compile Include="Collections\ICollectionManager.cs" />
<Compile Include="Configuration\LibraryOptions.cs" />
<Compile Include="Connect\ConnectSupporterSummary.cs" />
<Compile Include="Connect\IConnectManager.cs" />
<Compile Include="Connect\UserLinkResult.cs" />

@ -205,6 +205,9 @@
<Compile Include="..\MediaBrowser.Model\Configuration\ImageSavingConvention.cs">
<Link>Configuration\ImageSavingConvention.cs</Link>
</Compile>
<Compile Include="..\MediaBrowser.Model\Configuration\LibraryOptions.cs">
<Link>Configuration\LibraryOptions.cs</Link>
</Compile>
<Compile Include="..\MediaBrowser.Model\Configuration\MetadataConfiguration.cs">
<Link>Configuration\MetadataConfiguration.cs</Link>
</Compile>

@ -177,6 +177,9 @@
<Compile Include="..\MediaBrowser.Model\Configuration\ImageSavingConvention.cs">
<Link>Configuration\ImageSavingConvention.cs</Link>
</Compile>
<Compile Include="..\MediaBrowser.Model\Configuration\LibraryOptions.cs">
<Link>Configuration\LibraryOptions.cs</Link>
</Compile>
<Compile Include="..\MediaBrowser.Model\Configuration\MetadataConfiguration.cs">
<Link>Configuration\MetadataConfiguration.cs</Link>
</Compile>

@ -0,0 +1,7 @@
namespace MediaBrowser.Model.Configuration
{
public class LibraryOptions
{
public bool EnableArchiveMediaFiles { get; set; }
}
}

@ -837,6 +837,7 @@ namespace MediaBrowser.Model.Dto
/// </summary>
/// <value>The album count.</value>
public int? AlbumCount { get; set; }
public int? ArtistCount { get; set; }
/// <summary>
/// Gets or sets the music video count.
/// </summary>

@ -25,6 +25,7 @@
/// </summary>
/// <value>The game count.</value>
public int GameCount { get; set; }
public int ArtistCount { get; set; }
/// <summary>
/// Gets or sets the game system count.
/// </summary>

@ -1,4 +1,5 @@
using System.Collections.Generic;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Model.Entities
{
@ -25,6 +26,8 @@ namespace MediaBrowser.Model.Entities
/// <value>The type of the collection.</value>
public string CollectionType { get; set; }
public LibraryOptions LibraryOptions { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="VirtualFolderInfo"/> class.
/// </summary>

@ -95,6 +95,7 @@
<Compile Include="Configuration\CinemaModeConfiguration.cs" />
<Compile Include="Configuration\EncodingOptions.cs" />
<Compile Include="Configuration\FanartOptions.cs" />
<Compile Include="Configuration\LibraryOptions.cs" />
<Compile Include="Configuration\MetadataConfiguration.cs" />
<Compile Include="Configuration\PeopleMetadataOptions.cs" />
<Compile Include="Configuration\XbmcMetadataOptions.cs" />

@ -408,12 +408,19 @@ namespace MediaBrowser.Server.Implementations.Dto
private void SetItemByNameInfo(BaseItem item, BaseItemDto dto, List<BaseItem> taggedItems, User user = null)
{
if (item is MusicArtist || item is MusicGenre)
if (item is MusicArtist)
{
dto.AlbumCount = taggedItems.Count(i => i is MusicAlbum);
dto.MusicVideoCount = taggedItems.Count(i => i is MusicVideo);
dto.SongCount = taggedItems.Count(i => i is Audio);
}
else if (item is MusicGenre)
{
dto.ArtistCount = taggedItems.Count(i => i is MusicArtist);
dto.AlbumCount = taggedItems.Count(i => i is MusicAlbum);
dto.MusicVideoCount = taggedItems.Count(i => i is MusicVideo);
dto.SongCount = taggedItems.Count(i => i is Audio);
}
else if (item is GameGenre)
{
dto.GameCount = taggedItems.Count(i => i is Game);
@ -422,6 +429,7 @@ namespace MediaBrowser.Server.Implementations.Dto
{
// This populates them all and covers Genre, Person, Studio, Year
dto.ArtistCount = taggedItems.Count(i => i is MusicArtist);
dto.AlbumCount = taggedItems.Count(i => i is MusicAlbum);
dto.EpisodeCount = taggedItems.Count(i => i is Episode);
dto.GameCount = taggedItems.Count(i => i is Game);

@ -1223,7 +1223,7 @@ namespace MediaBrowser.Server.Implementations.Library
.Select(dir => GetVirtualFolderInfo(dir, topLibraryFolders));
}
private VirtualFolderInfo GetVirtualFolderInfo(string dir, List<BaseItem> collectionFolders)
private VirtualFolderInfo GetVirtualFolderInfo(string dir, List<BaseItem> allCollectionFolders)
{
var info = new VirtualFolderInfo
{
@ -1237,7 +1237,7 @@ namespace MediaBrowser.Server.Implementations.Library
CollectionType = GetCollectionType(dir)
};
var libraryFolder = collectionFolders.FirstOrDefault(i => string.Equals(i.Path, dir, StringComparison.OrdinalIgnoreCase));
var libraryFolder = allCollectionFolders.FirstOrDefault(i => string.Equals(i.Path, dir, StringComparison.OrdinalIgnoreCase));
if (libraryFolder != null && libraryFolder.HasImage(ImageType.Primary))
{
@ -1249,6 +1249,12 @@ namespace MediaBrowser.Server.Implementations.Library
info.ItemId = libraryFolder.Id.ToString("N");
}
var collectionFolder = libraryFolder as CollectionFolder;
if (collectionFolder != null)
{
info.LibraryOptions = collectionFolder.GetLibraryOptions();
}
return info;
}
@ -2426,13 +2432,13 @@ namespace MediaBrowser.Server.Implementations.Library
options.AudioFileExtensions.Remove(".m3u");
options.AudioFileExtensions.Remove(".wpl");
if (!libraryOptions.EnableAudioArchiveFiles)
if (!libraryOptions.EnableArchiveMediaFiles)
{
options.AudioFileExtensions.Remove(".rar");
options.AudioFileExtensions.Remove(".zip");
}
if (!libraryOptions.EnableVideoArchiveFiles)
if (!libraryOptions.EnableArchiveMediaFiles)
{
options.VideoFileExtensions.Remove(".rar");
options.VideoFileExtensions.Remove(".zip");

@ -11,6 +11,7 @@ using System.Collections.Generic;
using System.IO;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio
{

@ -7,6 +7,7 @@ using System.IO;
using System.Linq;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Server.Implementations.Library.Resolvers
{

@ -13,6 +13,7 @@ using System.IO;
using System.Linq;
using CommonIO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
{

@ -28,6 +28,7 @@ using CommonIO;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Power;
using MediaBrowser.Model.Configuration;
using Microsoft.Win32;
namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV

@ -3975,7 +3975,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
AlbumArtistStartsWithOrGreater = query.AlbumArtistStartsWithOrGreater,
Tags = query.Tags,
OfficialRatings = query.OfficialRatings,
Genres = query.GenreIds,
GenreIds = query.GenreIds,
Genres = query.Genres,
Years = query.Years
};
@ -4128,6 +4129,10 @@ namespace MediaBrowser.Server.Implementations.Persistence
{
counts.AlbumCount = value;
}
else if (string.Equals(typeName, typeof(MusicArtist).FullName, StringComparison.OrdinalIgnoreCase))
{
counts.ArtistCount = value;
}
else if (string.Equals(typeName, typeof(Audio).FullName, StringComparison.OrdinalIgnoreCase))
{
counts.SongCount = value;

Loading…
Cancel
Save