aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
authorTim Hobbs <jesus.tesh@gmail.com>2014-03-24 05:22:11 -0700
committerTim Hobbs <jesus.tesh@gmail.com>2014-03-24 05:22:11 -0700
commit543ce24c1051d10b32c0dae5277ee37c27daceae (patch)
treea45f20a51af3842097e1ca98ff7653a6a8523675 /MediaBrowser.Api
parentcf5e89d045c616db8a4e83beae0a38c94fcb3e42 (diff)
parent9b294c8bc96b31f6c458cc47fa8d330be2df086a (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/ItemUpdateService.cs2
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs4
-rw-r--r--MediaBrowser.Api/Playback/StreamRequest.cs3
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs18
-rw-r--r--MediaBrowser.Api/UserLibrary/YearsService.cs6
-rw-r--r--MediaBrowser.Api/VideosService.cs36
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))