aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/VideosService.cs44
-rw-r--r--MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj6
-rw-r--r--MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj6
-rw-r--r--MediaBrowser.Model/Dto/MediaVersionInfo.cs (renamed from MediaBrowser.Model/Dto/AlternateVersionInfo.cs)2
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj2
-rw-r--r--MediaBrowser.Server.Implementations/Library/SearchEngine.cs2
-rw-r--r--MediaBrowser.ServerApplication/LibraryViewer.cs4
7 files changed, 44 insertions, 22 deletions
diff --git a/MediaBrowser.Api/VideosService.cs b/MediaBrowser.Api/VideosService.cs
index 7d7baa576..476ea405c 100644
--- a/MediaBrowser.Api/VideosService.cs
+++ b/MediaBrowser.Api/VideosService.cs
@@ -31,9 +31,9 @@ namespace MediaBrowser.Api
public string Id { get; set; }
}
- [Route("/Videos/{Id}/AlternateVersions", "GET")]
- [Api(Description = "Gets alternate versions of a video.")]
- public class GetAlternateVersions : IReturn<List<AlternateVersionInfo>>
+ [Route("/Videos/{Id}/Versions", "GET")]
+ [Api(Description = "Gets all versions of a video.")]
+ public class GetMediaVersions : IReturn<List<MediaVersionInfo>>
{
/// <summary>
/// Gets or sets the id.
@@ -113,32 +113,54 @@ namespace MediaBrowser.Api
return ToOptimizedSerializedResultUsingCache(result);
}
- public object Get(GetAlternateVersions request)
+ public object Get(GetMediaVersions request)
{
var item = _libraryManager.GetItemById(new Guid(request.Id));
var video = (Video)item;
- var items = video.GetAlternateVersions();
+ var result = video.GetAlternateVersions().Select(GetVersionInfo).ToList();
- var result = items.Select(i => new AlternateVersionInfo
+ result.Add(GetVersionInfo(video));
+
+ result = result.OrderBy(i =>
+ {
+ if (video.VideoType == VideoType.VideoFile)
+ {
+ return 0;
+ }
+
+ return 1;
+
+ }).ThenBy(i => i.Video3DFormat.HasValue ? 1 : 0)
+ .ThenByDescending(i =>
+ {
+ var stream = i.MediaStreams.FirstOrDefault(m => m.Type == MediaStreamType.Video);
+
+ return stream == null || stream.Width == null ? 0 : stream.Width.Value;
+ })
+ .ToList();
+
+ return ToOptimizedSerializedResultUsingCache(result);
+ }
+
+ private MediaVersionInfo GetVersionInfo(Video i)
+ {
+ return new MediaVersionInfo
{
Chapters = _itemRepo.GetChapters(i.Id).Select(c => _dtoService.GetChapterInfoDto(c, i)).ToList(),
Id = i.Id.ToString("N"),
IsoType = i.IsoType,
LocationType = i.LocationType,
- MediaStreams = _itemRepo.GetMediaStreams(new MediaStreamQuery { ItemId = i.Id }).ToList(),
+ MediaStreams = _itemRepo.GetMediaStreams(new MediaStreamQuery {ItemId = i.Id}).ToList(),
Name = GetAlternateVersionName(i),
Path = GetMappedPath(i),
RunTimeTicks = i.RunTimeTicks,
Video3DFormat = i.Video3DFormat,
VideoType = i.VideoType,
IsHD = i.IsHD
-
- }).ToList();
-
- return ToOptimizedSerializedResultUsingCache(result);
+ };
}
private string GetMappedPath(Video video)
diff --git a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
index acfaaed28..2b32dc1d8 100644
--- a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
+++ b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
@@ -107,9 +107,6 @@
<Compile Include="..\MediaBrowser.Model\Drawing\ImageOutputFormat.cs">
<Link>Drawing\ImageOutputFormat.cs</Link>
</Compile>
- <Compile Include="..\MediaBrowser.Model\Dto\AlternateVersionInfo.cs">
- <Link>Dto\AlternateVersionInfo.cs</Link>
- </Compile>
<Compile Include="..\MediaBrowser.Model\Dto\BaseItemDto.cs">
<Link>Dto\BaseItemDto.cs</Link>
</Compile>
@@ -140,6 +137,9 @@
<Compile Include="..\MediaBrowser.Model\Dto\ItemIndex.cs">
<Link>Dto\ItemIndex.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\Dto\MediaVersionInfo.cs">
+ <Link>Dto\MediaVersionInfo.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\Dto\RecommendationDto.cs">
<Link>Dto\RecommendationDto.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
index c956dad00..baf1fc451 100644
--- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
+++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
@@ -94,9 +94,6 @@
<Compile Include="..\MediaBrowser.Model\Drawing\ImageOutputFormat.cs">
<Link>Drawing\ImageOutputFormat.cs</Link>
</Compile>
- <Compile Include="..\MediaBrowser.Model\Dto\AlternateVersionInfo.cs">
- <Link>Dto\AlternateVersionInfo.cs</Link>
- </Compile>
<Compile Include="..\MediaBrowser.Model\Dto\BaseItemDto.cs">
<Link>Dto\BaseItemDto.cs</Link>
</Compile>
@@ -127,6 +124,9 @@
<Compile Include="..\MediaBrowser.Model\Dto\ItemIndex.cs">
<Link>Dto\ItemIndex.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\Dto\MediaVersionInfo.cs">
+ <Link>Dto\MediaVersionInfo.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\Dto\RecommendationDto.cs">
<Link>Dto\RecommendationDto.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model/Dto/AlternateVersionInfo.cs b/MediaBrowser.Model/Dto/MediaVersionInfo.cs
index 0cc41d6e4..809a1e3d9 100644
--- a/MediaBrowser.Model/Dto/AlternateVersionInfo.cs
+++ b/MediaBrowser.Model/Dto/MediaVersionInfo.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
namespace MediaBrowser.Model.Dto
{
- public class AlternateVersionInfo
+ public class MediaVersionInfo
{
public string Id { get; set; }
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 47db8f7f2..12a462589 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -76,7 +76,7 @@
<Compile Include="Dto\ItemCounts.cs" />
<Compile Include="Dto\ItemIndex.cs" />
<Compile Include="Dto\RecommendationDto.cs" />
- <Compile Include="Dto\AlternateVersionInfo.cs" />
+ <Compile Include="Dto\MediaVersionInfo.cs" />
<Compile Include="Entities\PackageReviewInfo.cs" />
<Compile Include="FileOrganization\FileOrganizationResult.cs" />
<Compile Include="FileOrganization\FileOrganizationQuery.cs" />
diff --git a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
index aaafd35a9..f48a4430f 100644
--- a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
+++ b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs
@@ -35,6 +35,8 @@ namespace MediaBrowser.Server.Implementations.Library
var inputItems = user.RootFolder.GetRecursiveChildren(user, null).Where(i => !(i is ICollectionFolder));
+ inputItems = _libraryManager.ReplaceVideosWithPrimaryVersions(inputItems);
+
var results = await GetSearchHints(inputItems, query).ConfigureAwait(false);
// Include item types
diff --git a/MediaBrowser.ServerApplication/LibraryViewer.cs b/MediaBrowser.ServerApplication/LibraryViewer.cs
index a8eda801b..6c40b549b 100644
--- a/MediaBrowser.ServerApplication/LibraryViewer.cs
+++ b/MediaBrowser.ServerApplication/LibraryViewer.cs
@@ -119,11 +119,9 @@ namespace MediaBrowser.ServerApplication
var subFolder = item as Folder;
if (subFolder != null)
{
- var prefs = _displayPreferencesManager.GetDisplayPreferences(subFolder.DisplayPreferencesId, user.Id, "LibraryExplorer");
-
var subChildren = isPhysical ? subFolder.Children : subFolder.GetChildren(_currentUser, true);
- AddChildren(node, OrderBy(subChildren, user, prefs.SortBy), user, isPhysical);
+ AddChildren(node, OrderBy(subChildren, user, ItemSortBy.SortName), user, isPhysical);
node.Text = item.Name + " (" + node.Nodes.Count + ")";
}
else