From 0f7f4674784ae76ddafc5b83ffd87add824a8191 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 18 Jan 2014 00:55:21 -0500 Subject: [PATCH] center guide grid --- MediaBrowser.Api/Playback/BaseStreamingService.cs | 5 +++++ MediaBrowser.Api/Playback/StreamRequest.cs | 7 ++++++- MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs | 2 +- MediaBrowser.Api/UserLibrary/GenresService.cs | 4 +--- MediaBrowser.Api/UserLibrary/ItemsService.cs | 2 +- MediaBrowser.Controller/Entities/BaseItem.cs | 7 +++++++ MediaBrowser.Controller/Entities/Folder.cs | 6 ++++++ MediaBrowser.Model/Configuration/ServerConfiguration.cs | 2 +- .../Sorting/IsUnplayedComparer.cs | 3 +-- 9 files changed, 29 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 5108087789..680aa50c26 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1002,6 +1002,11 @@ namespace MediaBrowser.Api.Playback /// StreamState. protected async Task GetState(StreamRequest request, CancellationToken cancellationToken) { + if (request.ThrowDebugError) + { + throw new InvalidOperationException("You asked for a debug error, you got one."); + } + var url = Request.PathInfo; if (!request.AudioCodec.HasValue) diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs index 1486c0de7a..b0c5220e35 100644 --- a/MediaBrowser.Api/Playback/StreamRequest.cs +++ b/MediaBrowser.Api/Playback/StreamRequest.cs @@ -17,7 +17,7 @@ namespace MediaBrowser.Api.Playback [ApiMember(Name = "DeviceId", Description = "The device id of the client requesting. Used to stop encoding processes when needed.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string DeviceId { get; set; } - + /// /// Gets or sets the audio codec. /// @@ -65,6 +65,11 @@ namespace MediaBrowser.Api.Playback /// No need to put this in api docs since it's dlna only /// public bool AlbumArt { get; set; } + + /// + /// For testing purposes + /// + public bool ThrowDebugError { get; set; } } public class VideoStreamRequest : StreamRequest diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 922260c07f..c483a4bb72 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -144,7 +144,7 @@ namespace MediaBrowser.Api.UserLibrary { var libraryItems = user.RootFolder.GetRecursiveChildren(user).ToList(); - items = items.Where(i => GetLibraryItems(i, libraryItems).All(l => !l.IsPlayed(user))); + items = items.Where(i => GetLibraryItems(i, libraryItems).All(l => l.IsUnplayed(user))); } return items; diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs index d1f7fab014..ded9544f8e 100644 --- a/MediaBrowser.Api/UserLibrary/GenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GenresService.cs @@ -107,9 +107,7 @@ namespace MediaBrowser.Api.UserLibrary /// IEnumerable{Tuple{System.StringFunc{System.Int32}}}. protected override IEnumerable GetAllItems(GetItemsByName request, IEnumerable items) { - var itemsList = items.Where(i => i.Genres != null).ToList(); - - return itemsList + return items .SelectMany(i => i.Genres) .Distinct(StringComparer.OrdinalIgnoreCase) .Select(name => LibraryManager.GetGenre(name)); diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 22149df861..7f80f75acf 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -446,7 +446,7 @@ namespace MediaBrowser.Api.UserLibrary return items.Where(item => item.IsPlayed(currentUser)); case ItemFilter.IsUnplayed: - return items.Where(item => !item.IsPlayed(currentUser)); + return items.Where(item => item.IsUnplayed(currentUser)); case ItemFilter.IsFolder: return items.Where(item => item.IsFolder); diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 0fc4f10f19..58d5f1b942 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1713,5 +1713,12 @@ namespace MediaBrowser.Controller.Entities return userdata != null && userdata.Played; } + + public virtual bool IsUnplayed(User user) + { + var userdata = UserDataManager.GetUserData(user.Id, GetUserDataKey()); + + return userdata == null || !userdata.Played; + } } } diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 7910e99571..a0fefeac77 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -1090,5 +1090,11 @@ namespace MediaBrowser.Controller.Entities return GetRecursiveChildren(user).Where(i => !i.IsFolder && i.LocationType != LocationType.Virtual) .All(i => i.IsPlayed(user)); } + + public override bool IsUnplayed(User user) + { + return GetRecursiveChildren(user).Where(i => !i.IsFolder && i.LocationType != LocationType.Virtual) + .All(i => i.IsUnplayed(user)); + } } } diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index 281f1350c4..ad65f79b6e 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -233,7 +233,7 @@ namespace MediaBrowser.Model.Configuration public ServerConfiguration() : base() { - MediaEncodingQuality = EncodingQuality.HighSpeed; + MediaEncodingQuality = EncodingQuality.Auto; ImageSavingConvention = ImageSavingConvention.Compatible; HttpServerPortNumber = 8096; LegacyWebSocketPortNumber = 8945; diff --git a/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs b/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs index 6c757a8a3f..e3053155f5 100644 --- a/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs @@ -1,6 +1,5 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Querying; @@ -32,7 +31,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// DateTime. private int GetValue(BaseItem x) { - return x.IsPlayed(User) ? 1 : 0; + return x.IsUnplayed(User) ? 0 : 1; } ///