diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-26 11:47:15 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-26 11:47:15 -0500 |
| commit | 63f3cf97dada179fc6e9e3a177504d3e7b36321c (patch) | |
| tree | b6810d34b9bc46d61e8565ec4fc0f0c178cd0b35 /MediaBrowser.Server.Implementations/Session/SessionManager.cs | |
| parent | 91416cb8a83eadde908e810afea981b6e4bed234 (diff) | |
add option to merge metadata and IBN paths
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/SessionManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Session/SessionManager.cs | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index b4be3d788..0613cda30 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -870,14 +870,14 @@ namespace MediaBrowser.Server.Implementations.Session { if (items.Any(i => !session.QueueableMediaTypes.Contains(i.MediaType, StringComparer.OrdinalIgnoreCase))) { - throw new ArgumentException(string.Format("{0} is unable to queue the requested media type.", session.DeviceName ?? session.Id.ToString())); + throw new ArgumentException(string.Format("{0} is unable to queue the requested media type.", session.DeviceName ?? session.Id)); } } else { if (items.Any(i => !session.PlayableMediaTypes.Contains(i.MediaType, StringComparer.OrdinalIgnoreCase))) { - throw new ArgumentException(string.Format("{0} is unable to play the requested media type.", session.DeviceName ?? session.Id.ToString())); + throw new ArgumentException(string.Format("{0} is unable to play the requested media type.", session.DeviceName ?? session.Id)); } } @@ -895,6 +895,19 @@ namespace MediaBrowser.Server.Implementations.Session { var item = _libraryManager.GetItemById(new Guid(id)); + var byName = item as IItemByName; + + if (byName != null) + { + var items = user == null ? + _libraryManager.RootFolder.GetRecursiveChildren(i => !i.IsFolder && byName.ItemFilter(i)) : + user.RootFolder.GetRecursiveChildren(user, i => !i.IsFolder && byName.ItemFilter(i)); + + items = items.OrderBy(i => i.SortName); + + return items; + } + if (item.IsFolder) { var folder = (Folder)item; @@ -913,37 +926,9 @@ namespace MediaBrowser.Server.Implementations.Session private IEnumerable<BaseItem> TranslateItemForInstantMix(string id, User user) { - var item = _libraryManager.GetItemById(new Guid(id)); - - var audio = item as Audio; - - if (audio != null) - { - return _musicManager.GetInstantMixFromSong(audio, user); - } - - var artist = item as MusicArtist; - - if (artist != null) - { - return _musicManager.GetInstantMixFromArtist(artist.Name, user); - } - - var album = item as MusicAlbum; - - if (album != null) - { - return _musicManager.GetInstantMixFromAlbum(album, user); - } - - var genre = item as MusicGenre; - - if (genre != null) - { - return _musicManager.GetInstantMixFromGenres(new[] { genre.Name }, user); - } + var item = _libraryManager.GetItemById(id); - return new BaseItem[] { }; + return _musicManager.GetInstantMixFromItem(item, user); } public Task SendBrowseCommand(string controllingSessionId, string sessionId, BrowseRequest command, CancellationToken cancellationToken) |
