rename MediaVersions to MediaSources
This commit is contained in:
parent
327af0fe62
commit
e2dee00cc0
|
@ -94,7 +94,7 @@ namespace MediaBrowser.Api
|
||||||
var item = _dtoService.GetItemByDtoId(request.ItemId);
|
var item = _dtoService.GetItemByDtoId(request.ItemId);
|
||||||
|
|
||||||
var newLockData = request.LockData ?? false;
|
var newLockData = request.LockData ?? false;
|
||||||
var dontFetchMetaChanged = item.DontFetchMeta != newLockData;
|
var dontFetchMetaChanged = item.IsLocked != newLockData;
|
||||||
|
|
||||||
UpdateItem(request, item);
|
UpdateItem(request, item);
|
||||||
|
|
||||||
|
|
|
@ -1308,9 +1308,9 @@ namespace MediaBrowser.Api.Playback
|
||||||
RequestedUrl = url
|
RequestedUrl = url
|
||||||
};
|
};
|
||||||
|
|
||||||
var item = string.IsNullOrEmpty(request.MediaVersionId) ?
|
var item = string.IsNullOrEmpty(request.MediaSourceId) ?
|
||||||
DtoService.GetItemByDtoId(request.Id) :
|
DtoService.GetItemByDtoId(request.Id) :
|
||||||
DtoService.GetItemByDtoId(request.MediaVersionId);
|
DtoService.GetItemByDtoId(request.MediaSourceId);
|
||||||
|
|
||||||
if (user != null && item.GetPlayAccess(user) != PlayAccess.Full)
|
if (user != null && item.GetPlayAccess(user) != PlayAccess.Full)
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,8 +15,8 @@ namespace MediaBrowser.Api.Playback
|
||||||
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
|
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "MediaVersionId", Description = "The media version id, if playing an alternate version", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
|
[ApiMember(Name = "MediaSourceId", Description = "The media version id, if playing an alternate version", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
|
||||||
public string MediaVersionId { get; set; }
|
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")]
|
[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; }
|
public string DeviceId { get; set; }
|
||||||
|
|
|
@ -241,8 +241,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "MediaVersionId", Description = "The id of the MediaVersion", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
[ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating whether this <see cref="UpdateUserItemRating" /> is likes.
|
/// Gets or sets a value indicating whether this <see cref="UpdateUserItemRating" /> is likes.
|
||||||
|
@ -280,8 +280,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "MediaVersionId", Description = "The id of the MediaVersion", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
[ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the position ticks.
|
/// Gets or sets the position ticks.
|
||||||
|
@ -318,8 +318,8 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
|
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
[ApiMember(Name = "MediaVersionId", Description = "The id of the MediaVersion", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
|
[ApiMember(Name = "MediaSourceId", Description = "The id of the MediaSource", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the position ticks.
|
/// Gets or sets the position ticks.
|
||||||
|
@ -746,7 +746,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
Item = item,
|
Item = item,
|
||||||
SessionId = GetSession().Id,
|
SessionId = GetSession().Id,
|
||||||
QueueableMediaTypes = queueableMediaTypes.Split(',').ToList(),
|
QueueableMediaTypes = queueableMediaTypes.Split(',').ToList(),
|
||||||
MediaVersionId = request.MediaVersionId
|
MediaSourceId = request.MediaSourceId
|
||||||
};
|
};
|
||||||
|
|
||||||
_sessionManager.OnPlaybackStart(info);
|
_sessionManager.OnPlaybackStart(info);
|
||||||
|
@ -769,7 +769,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
IsMuted = request.IsMuted,
|
IsMuted = request.IsMuted,
|
||||||
IsPaused = request.IsPaused,
|
IsPaused = request.IsPaused,
|
||||||
SessionId = GetSession().Id,
|
SessionId = GetSession().Id,
|
||||||
MediaVersionId = request.MediaVersionId
|
MediaSourceId = request.MediaSourceId
|
||||||
};
|
};
|
||||||
|
|
||||||
var task = _sessionManager.OnPlaybackProgress(info);
|
var task = _sessionManager.OnPlaybackProgress(info);
|
||||||
|
@ -794,7 +794,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||||
Item = item,
|
Item = item,
|
||||||
PositionTicks = request.PositionTicks,
|
PositionTicks = request.PositionTicks,
|
||||||
SessionId = session.Id,
|
SessionId = session.Id,
|
||||||
MediaVersionId = request.MediaVersionId
|
MediaSourceId = request.MediaSourceId
|
||||||
};
|
};
|
||||||
|
|
||||||
var task = _sessionManager.OnPlaybackStopped(info);
|
var task = _sessionManager.OnPlaybackStopped(info);
|
||||||
|
|
|
@ -27,8 +27,8 @@ namespace MediaBrowser.Api
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Route("/Videos/{Id}/AlternateVersions", "DELETE", Summary = "Assigns videos as alternates of another.")]
|
[Route("/Videos/{Id}/AlternateSources", "DELETE", Summary = "Removes alternate video sources.")]
|
||||||
public class DeleteAlternateVersions : IReturnVoid
|
public class DeleteAlternateSources : IReturnVoid
|
||||||
{
|
{
|
||||||
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
|
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
@ -95,14 +95,14 @@ namespace MediaBrowser.Api
|
||||||
return ToOptimizedSerializedResultUsingCache(result);
|
return ToOptimizedSerializedResultUsingCache(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Delete(DeleteAlternateVersions request)
|
public void Delete(DeleteAlternateSources request)
|
||||||
{
|
{
|
||||||
var task = RemoveAlternateVersions(request);
|
var task = RemoveAlternateVersions(request);
|
||||||
|
|
||||||
Task.WaitAll(task);
|
Task.WaitAll(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task RemoveAlternateVersions(DeleteAlternateVersions request)
|
private async Task RemoveAlternateVersions(DeleteAlternateSources request)
|
||||||
{
|
{
|
||||||
var video = (Video)_dtoService.GetItemByDtoId(request.Id);
|
var video = (Video)_dtoService.GetItemByDtoId(request.Id);
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ namespace MediaBrowser.Api
|
||||||
|
|
||||||
var videos = items.Cast<Video>().ToList();
|
var videos = items.Cast<Video>().ToList();
|
||||||
|
|
||||||
var videosWithVersions = videos.Where(i => i.AlternateVersionCount > 0)
|
var videosWithVersions = videos.Where(i => i.MediaSourceCount > 1)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
if (videosWithVersions.Count > 1)
|
if (videosWithVersions.Count > 1)
|
||||||
|
@ -155,14 +155,27 @@ namespace MediaBrowser.Api
|
||||||
|
|
||||||
if (primaryVersion == null)
|
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();
|
var stream = i.GetDefaultVideoStream();
|
||||||
|
|
||||||
return stream == null || stream.Width == null ? 0 : stream.Width.Value;
|
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))
|
foreach (var item in videos.Where(i => i.Id != primaryVersion.Id))
|
||||||
|
|
|
@ -37,11 +37,11 @@ namespace MediaBrowser.Controller.Entities
|
||||||
}
|
}
|
||||||
|
|
||||||
[IgnoreDataMember]
|
[IgnoreDataMember]
|
||||||
public int AlternateVersionCount
|
public int MediaSourceCount
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LinkedAlternateVersions.Count + LocalAlternateVersionIds.Count;
|
return LinkedAlternateVersions.Count + LocalAlternateVersionIds.Count + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace MediaBrowser.Controller.Library
|
||||||
public List<User> Users { get; set; }
|
public List<User> Users { get; set; }
|
||||||
public long? PlaybackPositionTicks { get; set; }
|
public long? PlaybackPositionTicks { get; set; }
|
||||||
public BaseItem Item { get; set; }
|
public BaseItem Item { get; set; }
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
public PlaybackProgressEventArgs()
|
public PlaybackProgressEventArgs()
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,6 +39,6 @@ namespace MediaBrowser.Controller.Session
|
||||||
/// Gets or sets the media version identifier.
|
/// Gets or sets the media version identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The media version identifier.</value>
|
/// <value>The media version identifier.</value>
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,6 @@ namespace MediaBrowser.Controller.Session
|
||||||
/// Gets or sets the media version identifier.
|
/// Gets or sets the media version identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The media version identifier.</value>
|
/// <value>The media version identifier.</value>
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,6 @@ namespace MediaBrowser.Controller.Session
|
||||||
/// Gets or sets the media version identifier.
|
/// Gets or sets the media version identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The media version identifier.</value>
|
/// <value>The media version identifier.</value>
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace MediaBrowser.Controller.Session
|
||||||
/// Gets or sets the now playing media version identifier.
|
/// Gets or sets the now playing media version identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The now playing media version identifier.</value>
|
/// <value>The now playing media version identifier.</value>
|
||||||
public string NowPlayingMediaVersionId { get; set; }
|
public string NowPlayingMediaSourceId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace MediaBrowser.Model.Dto
|
||||||
/// Gets or sets the media versions.
|
/// Gets or sets the media versions.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The media versions.</value>
|
/// <value>The media versions.</value>
|
||||||
public List<MediaVersionInfo> MediaVersions { get; set; }
|
public List<MediaSourceInfo> MediaSources { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the critic rating.
|
/// Gets or sets the critic rating.
|
||||||
|
@ -500,7 +500,7 @@ namespace MediaBrowser.Model.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The part count.</value>
|
/// <value>The part count.</value>
|
||||||
public int? PartCount { get; set; }
|
public int? PartCount { get; set; }
|
||||||
public int? MediaVersionCount { get; set; }
|
public int? MediaSourceCount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determines whether the specified type is type.
|
/// Determines whether the specified type is type.
|
||||||
|
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace MediaBrowser.Model.Dto
|
namespace MediaBrowser.Model.Dto
|
||||||
{
|
{
|
||||||
public class MediaVersionInfo
|
public class MediaSourceInfo
|
||||||
{
|
{
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ namespace MediaBrowser.Model.Entities
|
||||||
/// Gets or sets the media version identifier.
|
/// Gets or sets the media version identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The media version identifier.</value>
|
/// <value>The media version identifier.</value>
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a value indicating whether this instance has primary image.
|
/// Gets a value indicating whether this instance has primary image.
|
||||||
|
|
|
@ -84,7 +84,7 @@ namespace MediaBrowser.Model.Querying
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The media versions
|
/// The media versions
|
||||||
/// </summary>
|
/// </summary>
|
||||||
MediaVersions,
|
MediaSources,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The metadata settings
|
/// The metadata settings
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace MediaBrowser.Model.Session
|
||||||
|
|
||||||
public string ItemId { get; set; }
|
public string ItemId { get; set; }
|
||||||
|
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
public bool IsSeekable { get; set; }
|
public bool IsSeekable { get; set; }
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace MediaBrowser.Model.Session
|
||||||
|
|
||||||
public string ItemId { get; set; }
|
public string ItemId { get; set; }
|
||||||
|
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
public long? PositionTicks { get; set; }
|
public long? PositionTicks { get; set; }
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ namespace MediaBrowser.Model.Session
|
||||||
|
|
||||||
public string ItemId { get; set; }
|
public string ItemId { get; set; }
|
||||||
|
|
||||||
public string MediaVersionId { get; set; }
|
public string MediaSourceId { get; set; }
|
||||||
|
|
||||||
public long? PositionTicks { get; set; }
|
public long? PositionTicks { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,7 +213,7 @@ namespace MediaBrowser.Providers.Savers
|
||||||
|
|
||||||
builder.Append("<Added>" + SecurityElement.Escape(item.DateCreated.ToLocalTime().ToString("G")) + "</Added>");
|
builder.Append("<Added>" + SecurityElement.Escape(item.DateCreated.ToLocalTime().ToString("G")) + "</Added>");
|
||||||
|
|
||||||
builder.Append("<LockData>" + item.DontFetchMeta.ToString().ToLower() + "</LockData>");
|
builder.Append("<LockData>" + item.IsLocked.ToString().ToLower() + "</LockData>");
|
||||||
|
|
||||||
if (item.LockedFields.Count > 0)
|
if (item.LockedFields.Count > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -127,7 +127,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
public BaseItemDto GetItemByNameDto<T>(T item, List<ItemFields> fields, User user = null)
|
public BaseItemDto GetItemByNameDto<T>(T item, List<ItemFields> fields, User user = null)
|
||||||
where T : BaseItem, IItemByName
|
where T : BaseItem, IItemByName
|
||||||
{
|
{
|
||||||
var libraryItems = user != null ? user.RootFolder.GetRecursiveChildren(user) :
|
var libraryItems = user != null ? user.RootFolder.GetRecursiveChildren(user) :
|
||||||
_libraryManager.RootFolder.RecursiveChildren;
|
_libraryManager.RootFolder.RecursiveChildren;
|
||||||
|
|
||||||
return GetItemByNameDto(item, fields, item.GetTaggedItems(libraryItems).ToList(), user);
|
return GetItemByNameDto(item, fields, item.GetTaggedItems(libraryItems).ToList(), user);
|
||||||
|
@ -274,7 +274,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
|
|
||||||
if (session.NowPlayingItem != null)
|
if (session.NowPlayingItem != null)
|
||||||
{
|
{
|
||||||
dto.NowPlayingItem = GetNowPlayingInfo(session.NowPlayingItem, session.NowPlayingMediaVersionId, session.NowPlayingRunTimeTicks);
|
dto.NowPlayingItem = GetNowPlayingInfo(session.NowPlayingItem, session.NowPlayingMediaSourceId, session.NowPlayingRunTimeTicks);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session.UserId.HasValue)
|
if (session.UserId.HasValue)
|
||||||
|
@ -290,11 +290,11 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
/// Converts a BaseItem to a BaseItemInfo
|
/// Converts a BaseItem to a BaseItemInfo
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <param name="mediaVersionId">The media version identifier.</param>
|
/// <param name="mediaSourceId">The media version identifier.</param>
|
||||||
/// <param name="nowPlayingRuntimeTicks">The now playing runtime ticks.</param>
|
/// <param name="nowPlayingRuntimeTicks">The now playing runtime ticks.</param>
|
||||||
/// <returns>BaseItemInfo.</returns>
|
/// <returns>BaseItemInfo.</returns>
|
||||||
/// <exception cref="System.ArgumentNullException">item</exception>
|
/// <exception cref="System.ArgumentNullException">item</exception>
|
||||||
private BaseItemInfo GetNowPlayingInfo(BaseItem item, string mediaVersionId, long? nowPlayingRuntimeTicks)
|
private BaseItemInfo GetNowPlayingInfo(BaseItem item, string mediaSourceId, long? nowPlayingRuntimeTicks)
|
||||||
{
|
{
|
||||||
if (item == null)
|
if (item == null)
|
||||||
{
|
{
|
||||||
|
@ -308,7 +308,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
MediaType = item.MediaType,
|
MediaType = item.MediaType,
|
||||||
Type = item.GetClientTypeName(),
|
Type = item.GetClientTypeName(),
|
||||||
RunTimeTicks = nowPlayingRuntimeTicks,
|
RunTimeTicks = nowPlayingRuntimeTicks,
|
||||||
MediaVersionId = mediaVersionId
|
MediaSourceId = mediaSourceId
|
||||||
};
|
};
|
||||||
|
|
||||||
info.PrimaryImageTag = GetImageCacheTag(item, ImageType.Primary);
|
info.PrimaryImageTag = GetImageCacheTag(item, ImageType.Primary);
|
||||||
|
@ -740,7 +740,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
if (fields.Contains(ItemFields.Settings))
|
if (fields.Contains(ItemFields.Settings))
|
||||||
{
|
{
|
||||||
dto.LockedFields = item.LockedFields;
|
dto.LockedFields = item.LockedFields;
|
||||||
dto.LockData = item.DontFetchMeta;
|
dto.LockData = item.IsLocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasBudget = item as IHasBudget;
|
var hasBudget = item as IHasBudget;
|
||||||
|
@ -1046,7 +1046,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
{
|
{
|
||||||
dto.IsPlaceHolder = supportsPlaceHolders.IsPlaceHolder;
|
dto.IsPlaceHolder = supportsPlaceHolders.IsPlaceHolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add audio info
|
// Add audio info
|
||||||
var audio = item as Audio;
|
var audio = item as Audio;
|
||||||
if (audio != null)
|
if (audio != null)
|
||||||
|
@ -1063,8 +1063,8 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
dto.AlbumPrimaryImageTag = GetImageCacheTag(albumParent, ImageType.Primary);
|
dto.AlbumPrimaryImageTag = GetImageCacheTag(albumParent, ImageType.Primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
dto.MediaVersions = GetMediaVersions(audio);
|
dto.MediaSources = GetMediaSources(audio);
|
||||||
dto.MediaVersionCount = 1;
|
dto.MediaSourceCount = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var album = item as MusicAlbum;
|
var album = item as MusicAlbum;
|
||||||
|
@ -1095,18 +1095,18 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
dto.IsHD = video.IsHD;
|
dto.IsHD = video.IsHD;
|
||||||
|
|
||||||
dto.PartCount = video.AdditionalPartIds.Count + 1;
|
dto.PartCount = video.AdditionalPartIds.Count + 1;
|
||||||
dto.MediaVersionCount = video.AlternateVersionCount + 1;
|
dto.MediaSourceCount = video.MediaSourceCount;
|
||||||
|
|
||||||
if (fields.Contains(ItemFields.MediaVersions))
|
if (fields.Contains(ItemFields.MediaSources))
|
||||||
{
|
{
|
||||||
dto.MediaVersions = GetMediaVersions(video);
|
dto.MediaSources = GetMediaSources(video);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fields.Contains(ItemFields.Chapters))
|
if (fields.Contains(ItemFields.Chapters))
|
||||||
{
|
{
|
||||||
List<ChapterInfoDto> chapters;
|
List<ChapterInfoDto> chapters;
|
||||||
|
|
||||||
if (dto.MediaVersions != null && dto.MediaVersions.Count > 0)
|
if (dto.MediaSources != null && dto.MediaSources.Count > 0)
|
||||||
{
|
{
|
||||||
chapters = _itemRepo.GetChapters(item.Id).Select(c => GetChapterInfoDto(c, item)).ToList();
|
chapters = _itemRepo.GetChapters(item.Id).Select(c => GetChapterInfoDto(c, item)).ToList();
|
||||||
}
|
}
|
||||||
|
@ -1130,9 +1130,9 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
{
|
{
|
||||||
List<MediaStream> mediaStreams;
|
List<MediaStream> mediaStreams;
|
||||||
|
|
||||||
if (dto.MediaVersions != null && dto.MediaVersions.Count > 0)
|
if (dto.MediaSources != null && dto.MediaSources.Count > 0)
|
||||||
{
|
{
|
||||||
mediaStreams = dto.MediaVersions.Where(i => i.IsPrimaryVersion)
|
mediaStreams = dto.MediaSources.Where(i => i.IsPrimaryVersion)
|
||||||
.SelectMany(i => i.MediaStreams)
|
.SelectMany(i => i.MediaStreams)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
@ -1267,7 +1267,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MediaVersionInfo> GetMediaVersions(Video item)
|
private List<MediaSourceInfo> GetMediaSources(Video item)
|
||||||
{
|
{
|
||||||
var result = item.GetAlternateVersions().Select(i => GetVersionInfo(i, false)).ToList();
|
var result = item.GetAlternateVersions().Select(i => GetVersionInfo(i, false)).ToList();
|
||||||
|
|
||||||
|
@ -1293,9 +1293,9 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MediaVersionInfo> GetMediaVersions(Audio item)
|
private List<MediaSourceInfo> GetMediaSources(Audio item)
|
||||||
{
|
{
|
||||||
var result = new List<MediaVersionInfo>
|
var result = new List<MediaSourceInfo>
|
||||||
{
|
{
|
||||||
GetVersionInfo(item, true)
|
GetVersionInfo(item, true)
|
||||||
};
|
};
|
||||||
|
@ -1303,17 +1303,17 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private MediaVersionInfo GetVersionInfo(Video i, bool isPrimary)
|
private MediaSourceInfo GetVersionInfo(Video i, bool isPrimary)
|
||||||
{
|
{
|
||||||
var mediaStreams = _itemRepo.GetMediaStreams(new MediaStreamQuery {ItemId = i.Id}).ToList();
|
var mediaStreams = _itemRepo.GetMediaStreams(new MediaStreamQuery { ItemId = i.Id }).ToList();
|
||||||
|
|
||||||
return new MediaVersionInfo
|
return new MediaSourceInfo
|
||||||
{
|
{
|
||||||
Id = i.Id.ToString("N"),
|
Id = i.Id.ToString("N"),
|
||||||
IsoType = i.IsoType,
|
IsoType = i.IsoType,
|
||||||
LocationType = i.LocationType,
|
LocationType = i.LocationType,
|
||||||
MediaStreams = mediaStreams,
|
MediaStreams = mediaStreams,
|
||||||
Name = GetAlternateVersionName(i, mediaStreams),
|
Name = GetMediaSourceName(i, mediaStreams),
|
||||||
Path = GetMappedPath(i),
|
Path = GetMappedPath(i),
|
||||||
RunTimeTicks = i.RunTimeTicks,
|
RunTimeTicks = i.RunTimeTicks,
|
||||||
Video3DFormat = i.Video3DFormat,
|
Video3DFormat = i.Video3DFormat,
|
||||||
|
@ -1322,9 +1322,9 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private MediaVersionInfo GetVersionInfo(Audio i, bool isPrimary)
|
private MediaSourceInfo GetVersionInfo(Audio i, bool isPrimary)
|
||||||
{
|
{
|
||||||
return new MediaVersionInfo
|
return new MediaSourceInfo
|
||||||
{
|
{
|
||||||
Id = i.Id.ToString("N"),
|
Id = i.Id.ToString("N"),
|
||||||
LocationType = i.LocationType,
|
LocationType = i.LocationType,
|
||||||
|
@ -1355,7 +1355,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetAlternateVersionName(Video video, List<MediaStream> mediaStreams)
|
private string GetMediaSourceName(Video video, List<MediaStream> mediaStreams)
|
||||||
{
|
{
|
||||||
var terms = new List<string>();
|
var terms = new List<string>();
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||||
EnsureName(item, args);
|
EnsureName(item, args);
|
||||||
|
|
||||||
item.DontFetchMeta = item.Path.IndexOf("[dontfetchmeta]", StringComparison.OrdinalIgnoreCase) != -1 ||
|
item.DontFetchMeta = item.Path.IndexOf("[dontfetchmeta]", StringComparison.OrdinalIgnoreCase) != -1 ||
|
||||||
item.Parents.Any(i => i.DontFetchMeta);
|
item.Parents.Any(i => i.IsLocked);
|
||||||
|
|
||||||
// Make sure DateCreated and DateModified have values
|
// Make sure DateCreated and DateModified have values
|
||||||
EntityResolutionHelper.EnsureDates(fileSystem, item, args, true);
|
EntityResolutionHelper.EnsureDates(fileSystem, item, args, true);
|
||||||
|
|
|
@ -190,7 +190,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
|
||||||
/// <param name="directoryService">The directory service.</param>
|
/// <param name="directoryService">The directory service.</param>
|
||||||
/// <param name="supportMultiFileItems">if set to <c>true</c> [support multi file items].</param>
|
/// <param name="supportMultiFileItems">if set to <c>true</c> [support multi file items].</param>
|
||||||
/// <returns>Movie.</returns>
|
/// <returns>Movie.</returns>
|
||||||
private T FindMovie<T>(string path, Folder parent, IEnumerable<FileSystemInfo> fileSystemEntries, IDirectoryService directoryService, bool supportMultiFileItems, bool supportsAlternateVersions)
|
private T FindMovie<T>(string path, Folder parent, IEnumerable<FileSystemInfo> fileSystemEntries, IDirectoryService directoryService, bool supportMultiFileItems, bool supportsMultipleSources)
|
||||||
where T : Video, new()
|
where T : Video, new()
|
||||||
{
|
{
|
||||||
var movies = new List<T>();
|
var movies = new List<T>();
|
||||||
|
@ -262,9 +262,9 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (supportsAlternateVersions)
|
if (supportsMultipleSources)
|
||||||
{
|
{
|
||||||
var result = GetMovieWithAlternateVersions(movies);
|
var result = GetMovieWithMultipleSources(movies);
|
||||||
|
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
|
@ -393,7 +393,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private T GetMovieWithAlternateVersions<T>(IEnumerable<T> movies)
|
private T GetMovieWithMultipleSources<T>(IEnumerable<T> movies)
|
||||||
where T : Video, new()
|
where T : Video, new()
|
||||||
{
|
{
|
||||||
var sortedMovies = movies.OrderBy(i => i.Path).ToList();
|
var sortedMovies = movies.OrderBy(i => i.Path).ToList();
|
||||||
|
|
|
@ -218,26 +218,26 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="session">The session.</param>
|
/// <param name="session">The session.</param>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <param name="mediaVersionId">The media version identifier.</param>
|
/// <param name="mediaSourceId">The media version identifier.</param>
|
||||||
/// <param name="isPaused">if set to <c>true</c> [is paused].</param>
|
/// <param name="isPaused">if set to <c>true</c> [is paused].</param>
|
||||||
/// <param name="isMuted">if set to <c>true</c> [is muted].</param>
|
/// <param name="isMuted">if set to <c>true</c> [is muted].</param>
|
||||||
/// <param name="currentPositionTicks">The current position ticks.</param>
|
/// <param name="currentPositionTicks">The current position ticks.</param>
|
||||||
private void UpdateNowPlayingItem(SessionInfo session, BaseItem item, string mediaVersionId, bool isPaused, bool isMuted, long? currentPositionTicks = null)
|
private void UpdateNowPlayingItem(SessionInfo session, BaseItem item, string mediaSourceId, bool isPaused, bool isMuted, long? currentPositionTicks = null)
|
||||||
{
|
{
|
||||||
session.IsMuted = isMuted;
|
session.IsMuted = isMuted;
|
||||||
session.IsPaused = isPaused;
|
session.IsPaused = isPaused;
|
||||||
session.NowPlayingPositionTicks = currentPositionTicks;
|
session.NowPlayingPositionTicks = currentPositionTicks;
|
||||||
session.NowPlayingItem = item;
|
session.NowPlayingItem = item;
|
||||||
session.LastActivityDate = DateTime.UtcNow;
|
session.LastActivityDate = DateTime.UtcNow;
|
||||||
session.NowPlayingMediaVersionId = mediaVersionId;
|
session.NowPlayingMediaSourceId = mediaSourceId;
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(mediaVersionId))
|
if (string.IsNullOrWhiteSpace(mediaSourceId))
|
||||||
{
|
{
|
||||||
session.NowPlayingRunTimeTicks = item.RunTimeTicks;
|
session.NowPlayingRunTimeTicks = item.RunTimeTicks;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var version = _libraryManager.GetItemById(new Guid(mediaVersionId));
|
var version = _libraryManager.GetItemById(new Guid(mediaSourceId));
|
||||||
|
|
||||||
session.NowPlayingRunTimeTicks = version.RunTimeTicks;
|
session.NowPlayingRunTimeTicks = version.RunTimeTicks;
|
||||||
}
|
}
|
||||||
|
@ -261,7 +261,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
session.NowPlayingPositionTicks = null;
|
session.NowPlayingPositionTicks = null;
|
||||||
session.IsPaused = false;
|
session.IsPaused = false;
|
||||||
session.NowPlayingRunTimeTicks = null;
|
session.NowPlayingRunTimeTicks = null;
|
||||||
session.NowPlayingMediaVersionId = null;
|
session.NowPlayingMediaSourceId = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,9 +368,9 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
|
|
||||||
var item = info.Item;
|
var item = info.Item;
|
||||||
|
|
||||||
var mediaVersionId = GetMediaVersionId(item, info.MediaVersionId);
|
var mediaSourceId = GetMediaSourceId(item, info.MediaSourceId);
|
||||||
|
|
||||||
UpdateNowPlayingItem(session, item, mediaVersionId, false, false);
|
UpdateNowPlayingItem(session, item, mediaSourceId, false, false);
|
||||||
|
|
||||||
session.CanSeek = info.CanSeek;
|
session.CanSeek = info.CanSeek;
|
||||||
session.QueueableMediaTypes = info.QueueableMediaTypes;
|
session.QueueableMediaTypes = info.QueueableMediaTypes;
|
||||||
|
@ -390,7 +390,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
{
|
{
|
||||||
Item = item,
|
Item = item,
|
||||||
Users = users,
|
Users = users,
|
||||||
MediaVersionId = info.MediaVersionId
|
MediaSourceId = info.MediaSourceId
|
||||||
|
|
||||||
}, _logger);
|
}, _logger);
|
||||||
}
|
}
|
||||||
|
@ -438,9 +438,9 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
|
|
||||||
var session = Sessions.First(i => i.Id.Equals(info.SessionId));
|
var session = Sessions.First(i => i.Id.Equals(info.SessionId));
|
||||||
|
|
||||||
var mediaVersionId = GetMediaVersionId(info.Item, info.MediaVersionId);
|
var mediaSourceId = GetMediaSourceId(info.Item, info.MediaSourceId);
|
||||||
|
|
||||||
UpdateNowPlayingItem(session, info.Item, mediaVersionId, info.IsPaused, info.IsMuted, info.PositionTicks);
|
UpdateNowPlayingItem(session, info.Item, mediaSourceId, info.IsPaused, info.IsMuted, info.PositionTicks);
|
||||||
|
|
||||||
var key = info.Item.GetUserDataKey();
|
var key = info.Item.GetUserDataKey();
|
||||||
|
|
||||||
|
@ -456,7 +456,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
Item = info.Item,
|
Item = info.Item,
|
||||||
Users = users,
|
Users = users,
|
||||||
PlaybackPositionTicks = info.PositionTicks,
|
PlaybackPositionTicks = info.PositionTicks,
|
||||||
MediaVersionId = mediaVersionId
|
MediaSourceId = mediaSourceId
|
||||||
|
|
||||||
}, _logger);
|
}, _logger);
|
||||||
}
|
}
|
||||||
|
@ -516,7 +516,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
playedToCompletion = await OnPlaybackStopped(user.Id, key, info.Item, info.PositionTicks).ConfigureAwait(false);
|
playedToCompletion = await OnPlaybackStopped(user.Id, key, info.Item, info.PositionTicks).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var mediaVersionId = GetMediaVersionId(info.Item, info.MediaVersionId);
|
var mediaSourceId = GetMediaSourceId(info.Item, info.MediaSourceId);
|
||||||
|
|
||||||
EventHelper.QueueEventIfNotNull(PlaybackStopped, this, new PlaybackStopEventArgs
|
EventHelper.QueueEventIfNotNull(PlaybackStopped, this, new PlaybackStopEventArgs
|
||||||
{
|
{
|
||||||
|
@ -524,22 +524,22 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
Users = users,
|
Users = users,
|
||||||
PlaybackPositionTicks = info.PositionTicks,
|
PlaybackPositionTicks = info.PositionTicks,
|
||||||
PlayedToCompletion = playedToCompletion,
|
PlayedToCompletion = playedToCompletion,
|
||||||
MediaVersionId = mediaVersionId
|
MediaSourceId = mediaSourceId
|
||||||
|
|
||||||
}, _logger);
|
}, _logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetMediaVersionId(BaseItem item, string reportedMediaVersionId)
|
private string GetMediaSourceId(BaseItem item, string reportedMediaSourceId)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(reportedMediaVersionId))
|
if (string.IsNullOrWhiteSpace(reportedMediaSourceId))
|
||||||
{
|
{
|
||||||
if (item is Video || item is Audio)
|
if (item is Video || item is Audio)
|
||||||
{
|
{
|
||||||
reportedMediaVersionId = item.Id.ToString("N");
|
reportedMediaSourceId = item.Id.ToString("N");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return reportedMediaVersionId;
|
return reportedMediaSourceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<bool> OnPlaybackStopped(Guid userId, string userDataKey, BaseItem item, long? positionTicks)
|
private async Task<bool> OnPlaybackStopped(Guid userId, string userDataKey, BaseItem item, long? positionTicks)
|
||||||
|
|
|
@ -225,7 +225,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
|
|
||||||
if (vals.Length > 3)
|
if (vals.Length > 3)
|
||||||
{
|
{
|
||||||
info.MediaVersionId = vals[3];
|
info.MediaSourceId = vals[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
_sessionManager.OnPlaybackStart(info);
|
_sessionManager.OnPlaybackStart(info);
|
||||||
|
@ -272,7 +272,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
|
|
||||||
if (vals.Length > 4)
|
if (vals.Length > 4)
|
||||||
{
|
{
|
||||||
info.MediaVersionId = vals[4];
|
info.MediaSourceId = vals[4];
|
||||||
}
|
}
|
||||||
|
|
||||||
_sessionManager.OnPlaybackProgress(info);
|
_sessionManager.OnPlaybackProgress(info);
|
||||||
|
@ -316,7 +316,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||||
|
|
||||||
if (vals.Length > 2)
|
if (vals.Length > 2)
|
||||||
{
|
{
|
||||||
info.MediaVersionId = vals[2];
|
info.MediaSourceId = vals[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
_sessionManager.OnPlaybackStopped(info);
|
_sessionManager.OnPlaybackStopped(info);
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace MediaBrowser.Server.Implementations.Sorting
|
namespace MediaBrowser.Server.Implementations.Sorting
|
||||||
|
|
|
@ -3791,7 +3791,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
* @param {String} userId
|
* @param {String} userId
|
||||||
* @param {String} itemId
|
* @param {String} itemId
|
||||||
*/
|
*/
|
||||||
self.reportPlaybackStart = function (userId, itemId, mediaVersionId, canSeek, queueableMediaTypes) {
|
self.reportPlaybackStart = function (userId, itemId, mediaSourceId, canSeek, queueableMediaTypes) {
|
||||||
|
|
||||||
if (!userId) {
|
if (!userId) {
|
||||||
throw new Error("null userId");
|
throw new Error("null userId");
|
||||||
|
@ -3810,8 +3810,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
|
|
||||||
var msg = [itemId, canSeek, queueableMediaTypes];
|
var msg = [itemId, canSeek, queueableMediaTypes];
|
||||||
|
|
||||||
if (mediaVersionId) {
|
if (mediaSourceId) {
|
||||||
msg.push(mediaVersionId);
|
msg.push(mediaSourceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.sendWebSocketMessage("PlaybackStart", msg.join('|'));
|
self.sendWebSocketMessage("PlaybackStart", msg.join('|'));
|
||||||
|
@ -3825,8 +3825,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
QueueableMediaTypes: queueableMediaTypes
|
QueueableMediaTypes: queueableMediaTypes
|
||||||
};
|
};
|
||||||
|
|
||||||
if (mediaVersionId) {
|
if (mediaSourceId) {
|
||||||
params.mediaVersionId = mediaVersionId;
|
params.mediaSourceId = mediaSourceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params);
|
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params);
|
||||||
|
@ -3842,7 +3842,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
* @param {String} userId
|
* @param {String} userId
|
||||||
* @param {String} itemId
|
* @param {String} itemId
|
||||||
*/
|
*/
|
||||||
self.reportPlaybackProgress = function (userId, itemId, mediaVersionId, positionTicks, isPaused, isMuted) {
|
self.reportPlaybackProgress = function (userId, itemId, mediaSourceId, positionTicks, isPaused, isMuted) {
|
||||||
|
|
||||||
if (!userId) {
|
if (!userId) {
|
||||||
throw new Error("null userId");
|
throw new Error("null userId");
|
||||||
|
@ -3861,7 +3861,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
msgData += "|" + (positionTicks == null ? "" : positionTicks);
|
msgData += "|" + (positionTicks == null ? "" : positionTicks);
|
||||||
msgData += "|" + (isPaused == null ? "" : isPaused);
|
msgData += "|" + (isPaused == null ? "" : isPaused);
|
||||||
msgData += "|" + (isMuted == null ? "" : isMuted);
|
msgData += "|" + (isMuted == null ? "" : isMuted);
|
||||||
msgData += "|" + (mediaVersionId == null ? "" : mediaVersionId);
|
msgData += "|" + (mediaSourceId == null ? "" : mediaSourceId);
|
||||||
|
|
||||||
self.sendWebSocketMessage("PlaybackProgress", msgData);
|
self.sendWebSocketMessage("PlaybackProgress", msgData);
|
||||||
|
|
||||||
|
@ -3878,8 +3878,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
params.positionTicks = positionTicks;
|
params.positionTicks = positionTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaVersionId) {
|
if (mediaSourceId) {
|
||||||
params.mediaVersionId = mediaVersionId;
|
params.mediaSourceId = mediaSourceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId + "/Progress", params);
|
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId + "/Progress", params);
|
||||||
|
@ -3895,7 +3895,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
* @param {String} userId
|
* @param {String} userId
|
||||||
* @param {String} itemId
|
* @param {String} itemId
|
||||||
*/
|
*/
|
||||||
self.reportPlaybackStopped = function (userId, itemId, mediaVersionId, positionTicks) {
|
self.reportPlaybackStopped = function (userId, itemId, mediaSourceId, positionTicks) {
|
||||||
|
|
||||||
if (!userId) {
|
if (!userId) {
|
||||||
throw new Error("null userId");
|
throw new Error("null userId");
|
||||||
|
@ -3911,7 +3911,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
|
|
||||||
var msg = itemId;
|
var msg = itemId;
|
||||||
msg += "|" + (positionTicks == null ? "" : positionTicks);
|
msg += "|" + (positionTicks == null ? "" : positionTicks);
|
||||||
msg += "|" + (mediaVersionId == null ? "" : mediaVersionId);
|
msg += "|" + (mediaSourceId == null ? "" : mediaSourceId);
|
||||||
|
|
||||||
self.sendWebSocketMessage("PlaybackStopped", msg);
|
self.sendWebSocketMessage("PlaybackStopped", msg);
|
||||||
|
|
||||||
|
@ -3925,8 +3925,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||||
params.positionTicks = positionTicks;
|
params.positionTicks = positionTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaVersionId) {
|
if (mediaSourceId) {
|
||||||
params.mediaVersionId = mediaVersionId;
|
params.mediaSourceId = mediaSourceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params);
|
var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.246" targetFramework="net45" />
|
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.247" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue
Block a user