aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/VideosService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/VideosService.cs')
-rw-r--r--MediaBrowser.Api/VideosService.cs36
1 files changed, 23 insertions, 13 deletions
diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs
index fa4b22cea..94432871c 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))