diff options
| author | Tim Hobbs <jesus.tesh@gmail.com> | 2014-03-24 05:22:11 -0700 |
|---|---|---|
| committer | Tim Hobbs <jesus.tesh@gmail.com> | 2014-03-24 05:22:11 -0700 |
| commit | 543ce24c1051d10b32c0dae5277ee37c27daceae (patch) | |
| tree | a45f20a51af3842097e1ca98ff7653a6a8523675 /MediaBrowser.Api | |
| parent | cf5e89d045c616db8a4e83beae0a38c94fcb3e42 (diff) | |
| parent | 9b294c8bc96b31f6c458cc47fa8d330be2df086a (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Api/Playback/StreamRequest.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/UserLibraryService.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/YearsService.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Api/VideosService.cs | 36 |
6 files changed, 47 insertions, 22 deletions
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index b15e67ffa7..1e9f2f7a2f 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -94,7 +94,7 @@ namespace MediaBrowser.Api var item = _dtoService.GetItemByDtoId(request.ItemId); var newLockData = request.LockData ?? false; - var dontFetchMetaChanged = item.DontFetchMeta != newLockData; + var dontFetchMetaChanged = item.IsLocked != newLockData; UpdateItem(request, item); diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index e1f4799f18..1001980ec1 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1308,7 +1308,9 @@ namespace MediaBrowser.Api.Playback RequestedUrl = url }; - var item = DtoService.GetItemByDtoId(request.Id); + var item = string.IsNullOrEmpty(request.MediaSourceId) ? + DtoService.GetItemByDtoId(request.Id) : + DtoService.GetItemByDtoId(request.MediaSourceId); if (user != null && item.GetPlayAccess(user) != PlayAccess.Full) { diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs index 6b0375e2d2..df52e5e3ee 100644 --- a/MediaBrowser.Api/Playback/StreamRequest.cs +++ b/MediaBrowser.Api/Playback/StreamRequest.cs @@ -15,6 +15,9 @@ namespace MediaBrowser.Api.Playback [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Id { get; set; } + [ApiMember(Name = "MediaSourceId", Description = "The media version id, if playing an alternate version", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string MediaSourceId { get; set; } + [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; } diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index e026aec038..c6051c02cc 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -241,6 +241,9 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public string Id { get; set; } + [ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public string MediaSourceId { get; set; } + /// <summary> /// Gets or sets a value indicating whether this <see cref="UpdateUserItemRating" /> is likes. /// </summary> @@ -277,6 +280,9 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public string Id { get; set; } + [ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public string MediaSourceId { get; set; } + /// <summary> /// Gets or sets the position ticks. /// </summary> @@ -312,6 +318,9 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")] public string Id { get; set; } + [ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")] + public string MediaSourceId { get; set; } + /// <summary> /// Gets or sets the position ticks. /// </summary> @@ -736,7 +745,8 @@ namespace MediaBrowser.Api.UserLibrary CanSeek = request.CanSeek, Item = item, SessionId = GetSession().Id, - QueueableMediaTypes = queueableMediaTypes.Split(',').ToList() + QueueableMediaTypes = queueableMediaTypes.Split(',').ToList(), + MediaSourceId = request.MediaSourceId }; _sessionManager.OnPlaybackStart(info); @@ -758,7 +768,8 @@ namespace MediaBrowser.Api.UserLibrary PositionTicks = request.PositionTicks, IsMuted = request.IsMuted, IsPaused = request.IsPaused, - SessionId = GetSession().Id + SessionId = GetSession().Id, + MediaSourceId = request.MediaSourceId }; var task = _sessionManager.OnPlaybackProgress(info); @@ -782,7 +793,8 @@ namespace MediaBrowser.Api.UserLibrary { Item = item, PositionTicks = request.PositionTicks, - SessionId = session.Id + SessionId = session.Id, + MediaSourceId = request.MediaSourceId }; var task = _sessionManager.OnPlaybackStopped(info); diff --git a/MediaBrowser.Api/UserLibrary/YearsService.cs b/MediaBrowser.Api/UserLibrary/YearsService.cs index b8b0aa9e94..8a3bc12b2b 100644 --- a/MediaBrowser.Api/UserLibrary/YearsService.cs +++ b/MediaBrowser.Api/UserLibrary/YearsService.cs @@ -14,8 +14,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// Class GetYears /// </summary> - [Route("/Years", "GET")] - [Api(Description = "Gets all years from a given item, folder, or the entire library")] + [Route("/Years", "GET", Summary = "Gets all years from a given item, folder, or the entire library")] public class GetYears : GetItemsByName { } @@ -23,8 +22,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// Class GetYear /// </summary> - [Route("/Years/{Year}", "GET")] - [Api(Description = "Gets a year")] + [Route("/Years/{Year}", "GET", Summary = "Gets a year")] public class GetYear : IReturn<BaseItemDto> { /// <summary> diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs index fa4b22cea7..94432871c6 100644 --- a/MediaBrowser.Api/VideosService.cs +++ b/MediaBrowser.Api/VideosService.cs @@ -13,8 +13,7 @@ using System.Threading.Tasks; namespace MediaBrowser.Api { - [Route("/Videos/{Id}/AdditionalParts", "GET")] - [Api(Description = "Gets additional parts for a video.")] + [Route("/Videos/{Id}/AdditionalParts", "GET", Summary = "Gets additional parts for a video.")] public class GetAdditionalParts : IReturn<ItemsResult> { [ApiMember(Name = "UserId", Description = "Optional. Filter by user id, and attach user data", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] @@ -28,16 +27,14 @@ namespace MediaBrowser.Api public string Id { get; set; } } - [Route("/Videos/{Id}/AlternateVersions", "DELETE")] - [Api(Description = "Assigns videos as alternates of antoher.")] - public class DeleteAlternateVersions : IReturnVoid + [Route("/Videos/{Id}/AlternateSources", "DELETE", Summary = "Removes alternate video sources.")] + public class DeleteAlternateSources : IReturnVoid { [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")] public string Id { get; set; } } - [Route("/Videos/MergeVersions", "POST")] - [Api(Description = "Merges videos into a single record")] + [Route("/Videos/MergeVersions", "POST", Summary = "Merges videos into a single record")] public class MergeVersions : IReturnVoid { [ApiMember(Name = "Ids", Description = "Item id list. This allows multiple, comma delimited.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST", AllowMultiple = true)] @@ -98,14 +95,14 @@ namespace MediaBrowser.Api return ToOptimizedSerializedResultUsingCache(result); } - public void Delete(DeleteAlternateVersions request) + public void Delete(DeleteAlternateSources request) { var task = RemoveAlternateVersions(request); Task.WaitAll(task); } - private async Task RemoveAlternateVersions(DeleteAlternateVersions request) + private async Task RemoveAlternateVersions(DeleteAlternateSources request) { var video = (Video)_dtoService.GetItemByDtoId(request.Id); @@ -146,7 +143,7 @@ namespace MediaBrowser.Api var videos = items.Cast<Video>().ToList(); - var videosWithVersions = videos.Where(i => i.AlternateVersionCount > 0) + var videosWithVersions = videos.Where(i => i.MediaSourceCount > 1) .ToList(); if (videosWithVersions.Count > 1) @@ -158,14 +155,27 @@ namespace MediaBrowser.Api if (primaryVersion == null) { - primaryVersion = videos.OrderByDescending(i => + primaryVersion = videos.OrderBy(i => + { + if (i.Video3DFormat.HasValue) + { + return 1; + } + + if (i.VideoType != Model.Entities.VideoType.VideoFile) + { + return 1; + } + + return 0; + }) + .ThenByDescending(i => { var stream = i.GetDefaultVideoStream(); return stream == null || stream.Width == null ? 0 : stream.Width.Value; - }).ThenBy(i => i.Name.Length) - .First(); + }).First(); } foreach (var item in videos.Where(i => i.Id != primaryVersion.Id)) |
