mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-11-15 09:59:06 -07:00
normalize session object
This commit is contained in:
parent
d76bcd8473
commit
282dce7f10
@ -123,7 +123,7 @@ namespace Emby.Server.Implementations.Activity
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.IsThemeMedia)
|
||||
if (e.Item != null && e.Item.IsThemeMedia)
|
||||
{
|
||||
// Don't report theme song or local trailer playback
|
||||
return;
|
||||
@ -155,7 +155,7 @@ namespace Emby.Server.Implementations.Activity
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.IsThemeMedia)
|
||||
if (e.Item != null && e.Item.IsThemeMedia)
|
||||
{
|
||||
// Don't report theme song or local trailer playback
|
||||
return;
|
||||
|
@ -23,6 +23,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Model.Threading;
|
||||
using MediaBrowser.Model.Dto;
|
||||
|
||||
namespace Emby.Server.Implementations.Notifications
|
||||
{
|
||||
@ -260,7 +261,7 @@ namespace Emby.Server.Implementations.Notifications
|
||||
|
||||
var item = e.MediaInfo;
|
||||
|
||||
if ( item.IsThemeMedia)
|
||||
if (e.Item != null && e.Item.IsThemeMedia)
|
||||
{
|
||||
// Don't report theme song or local trailer playback
|
||||
return;
|
||||
@ -430,7 +431,7 @@ namespace Emby.Server.Implementations.Notifications
|
||||
return name;
|
||||
}
|
||||
|
||||
public static string GetItemName(BaseItemInfo item)
|
||||
public static string GetItemName(BaseItemDto item)
|
||||
{
|
||||
var name = item.Name;
|
||||
|
||||
|
@ -338,7 +338,7 @@ namespace Emby.Server.Implementations.Session
|
||||
}
|
||||
}
|
||||
|
||||
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
|
||||
info.Item = GetItemInfo(libraryItem, mediaSource);
|
||||
|
||||
info.Item.RunTimeTicks = runtimeTicks;
|
||||
}
|
||||
@ -813,7 +813,7 @@ namespace Emby.Server.Implementations.Session
|
||||
mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId, info.LiveStreamId).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
|
||||
info.Item = GetItemInfo(libraryItem, mediaSource);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1637,165 +1637,65 @@ namespace Emby.Server.Implementations.Session
|
||||
return dto;
|
||||
}
|
||||
|
||||
private DtoOptions _itemInfoDtoOptions;
|
||||
|
||||
/// <summary>
|
||||
/// Converts a BaseItem to a BaseItemInfo
|
||||
/// </summary>
|
||||
/// <param name="item">The item.</param>
|
||||
/// <param name="chapterOwner">The chapter owner.</param>
|
||||
/// <param name="mediaSource">The media source.</param>
|
||||
/// <returns>BaseItemInfo.</returns>
|
||||
/// <exception cref="System.ArgumentNullException">item</exception>
|
||||
private BaseItemInfo GetItemInfo(BaseItem item, BaseItem chapterOwner, MediaSourceInfo mediaSource)
|
||||
private BaseItemDto GetItemInfo(BaseItem item, MediaSourceInfo mediaSource)
|
||||
{
|
||||
if (item == null)
|
||||
{
|
||||
throw new ArgumentNullException("item");
|
||||
}
|
||||
|
||||
var info = new BaseItemInfo
|
||||
{
|
||||
Id = GetDtoId(item),
|
||||
Name = item.Name,
|
||||
MediaType = item.MediaType,
|
||||
Type = item.GetClientTypeName(),
|
||||
RunTimeTicks = item.RunTimeTicks,
|
||||
IndexNumber = item.IndexNumber,
|
||||
ParentIndexNumber = item.ParentIndexNumber,
|
||||
PremiereDate = item.PremiereDate,
|
||||
ProductionYear = item.ProductionYear,
|
||||
IsThemeMedia = item.IsThemeMedia
|
||||
};
|
||||
var dtoOptions = _itemInfoDtoOptions;
|
||||
|
||||
info.PrimaryImageTag = GetImageCacheTag(item, ImageType.Primary);
|
||||
if (info.PrimaryImageTag != null)
|
||||
if (_itemInfoDtoOptions == null)
|
||||
{
|
||||
info.PrimaryImageItemId = GetDtoId(item);
|
||||
}
|
||||
|
||||
var episode = item as Episode;
|
||||
if (episode != null)
|
||||
{
|
||||
info.IndexNumberEnd = episode.IndexNumberEnd;
|
||||
}
|
||||
|
||||
var hasSeries = item as IHasSeries;
|
||||
if (hasSeries != null)
|
||||
{
|
||||
info.SeriesName = hasSeries.SeriesName;
|
||||
}
|
||||
|
||||
var recording = item as ILiveTvRecording;
|
||||
if (recording != null)
|
||||
{
|
||||
if (recording.IsSeries)
|
||||
dtoOptions = new DtoOptions
|
||||
{
|
||||
info.Name = recording.EpisodeTitle;
|
||||
info.SeriesName = recording.Name;
|
||||
AddProgramRecordingInfo = false
|
||||
};
|
||||
|
||||
if (string.IsNullOrWhiteSpace(info.Name))
|
||||
{
|
||||
info.Name = recording.Name;
|
||||
}
|
||||
}
|
||||
dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
|
||||
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
|
||||
dtoOptions.Fields.Remove(ItemFields.CanDelete);
|
||||
dtoOptions.Fields.Remove(ItemFields.CanDownload);
|
||||
dtoOptions.Fields.Remove(ItemFields.ChildCount);
|
||||
dtoOptions.Fields.Remove(ItemFields.CustomRating);
|
||||
dtoOptions.Fields.Remove(ItemFields.DateLastMediaAdded);
|
||||
dtoOptions.Fields.Remove(ItemFields.DateLastRefreshed);
|
||||
dtoOptions.Fields.Remove(ItemFields.DateLastSaved);
|
||||
dtoOptions.Fields.Remove(ItemFields.DisplayMediaType);
|
||||
dtoOptions.Fields.Remove(ItemFields.DisplayPreferencesId);
|
||||
dtoOptions.Fields.Remove(ItemFields.Etag);
|
||||
dtoOptions.Fields.Remove(ItemFields.ExternalEtag);
|
||||
dtoOptions.Fields.Remove(ItemFields.IndexOptions);
|
||||
dtoOptions.Fields.Remove(ItemFields.InheritedParentalRatingValue);
|
||||
dtoOptions.Fields.Remove(ItemFields.ItemCounts);
|
||||
dtoOptions.Fields.Remove(ItemFields.Keywords);
|
||||
dtoOptions.Fields.Remove(ItemFields.MediaSourceCount);
|
||||
dtoOptions.Fields.Remove(ItemFields.MediaStreams);
|
||||
dtoOptions.Fields.Remove(ItemFields.MediaSources);
|
||||
dtoOptions.Fields.Remove(ItemFields.People);
|
||||
dtoOptions.Fields.Remove(ItemFields.PlayAccess);
|
||||
dtoOptions.Fields.Remove(ItemFields.People);
|
||||
dtoOptions.Fields.Remove(ItemFields.ProductionLocations);
|
||||
dtoOptions.Fields.Remove(ItemFields.RecursiveItemCount);
|
||||
dtoOptions.Fields.Remove(ItemFields.RemoteTrailers);
|
||||
dtoOptions.Fields.Remove(ItemFields.SeasonUserData);
|
||||
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
|
||||
dtoOptions.Fields.Remove(ItemFields.Settings);
|
||||
dtoOptions.Fields.Remove(ItemFields.SortName);
|
||||
dtoOptions.Fields.Remove(ItemFields.Tags);
|
||||
dtoOptions.Fields.Remove(ItemFields.ThemeSongIds);
|
||||
dtoOptions.Fields.Remove(ItemFields.ThemeVideoIds);
|
||||
|
||||
_itemInfoDtoOptions = dtoOptions;
|
||||
}
|
||||
|
||||
var audio = item as Audio;
|
||||
if (audio != null)
|
||||
{
|
||||
info.Album = audio.Album;
|
||||
info.Artists = audio.Artists;
|
||||
|
||||
if (info.PrimaryImageTag == null)
|
||||
{
|
||||
var album = audio.AlbumEntity;
|
||||
|
||||
if (album != null && album.HasImage(ImageType.Primary))
|
||||
{
|
||||
info.PrimaryImageTag = GetImageCacheTag(album, ImageType.Primary);
|
||||
if (info.PrimaryImageTag != null)
|
||||
{
|
||||
info.PrimaryImageItemId = GetDtoId(album);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var musicVideo = item as MusicVideo;
|
||||
if (musicVideo != null)
|
||||
{
|
||||
info.Album = musicVideo.Album;
|
||||
info.Artists = musicVideo.Artists.ToList();
|
||||
}
|
||||
|
||||
var backropItem = item.HasImage(ImageType.Backdrop) ? item : null;
|
||||
var thumbItem = item.HasImage(ImageType.Thumb) ? item : null;
|
||||
var logoItem = item.HasImage(ImageType.Logo) ? item : null;
|
||||
|
||||
if (thumbItem == null)
|
||||
{
|
||||
if (episode != null)
|
||||
{
|
||||
var series = episode.Series;
|
||||
|
||||
if (series != null && series.HasImage(ImageType.Thumb))
|
||||
{
|
||||
thumbItem = series;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (backropItem == null)
|
||||
{
|
||||
if (episode != null)
|
||||
{
|
||||
var series = episode.Series;
|
||||
|
||||
if (series != null && series.HasImage(ImageType.Backdrop))
|
||||
{
|
||||
backropItem = series;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (backropItem == null)
|
||||
{
|
||||
backropItem = item.GetParents().FirstOrDefault(i => i.HasImage(ImageType.Backdrop));
|
||||
}
|
||||
|
||||
if (thumbItem == null)
|
||||
{
|
||||
thumbItem = item.GetParents().FirstOrDefault(i => i.HasImage(ImageType.Thumb));
|
||||
}
|
||||
|
||||
if (logoItem == null)
|
||||
{
|
||||
logoItem = item.GetParents().FirstOrDefault(i => i.HasImage(ImageType.Logo));
|
||||
}
|
||||
|
||||
if (thumbItem != null)
|
||||
{
|
||||
info.ThumbImageTag = GetImageCacheTag(thumbItem, ImageType.Thumb);
|
||||
info.ThumbItemId = GetDtoId(thumbItem);
|
||||
}
|
||||
|
||||
if (backropItem != null)
|
||||
{
|
||||
info.BackdropImageTag = GetImageCacheTag(backropItem, ImageType.Backdrop);
|
||||
info.BackdropItemId = GetDtoId(backropItem);
|
||||
}
|
||||
|
||||
if (logoItem != null)
|
||||
{
|
||||
info.LogoImageTag = GetImageCacheTag(logoItem, ImageType.Logo);
|
||||
info.LogoItemId = GetDtoId(logoItem);
|
||||
}
|
||||
|
||||
if (chapterOwner != null)
|
||||
{
|
||||
info.ChapterImagesItemId = chapterOwner.Id.ToString("N");
|
||||
|
||||
info.Chapters = _dtoService.GetChapterInfoDtos(chapterOwner).ToList();
|
||||
}
|
||||
var info = _dtoService.GetBaseItemDto(item, dtoOptions);
|
||||
|
||||
if (mediaSource != null)
|
||||
{
|
||||
@ -1837,7 +1737,7 @@ namespace Emby.Server.Implementations.Session
|
||||
//ReportNowViewingItem(sessionId, info);
|
||||
}
|
||||
|
||||
public void ReportNowViewingItem(string sessionId, BaseItemInfo item)
|
||||
public void ReportNowViewingItem(string sessionId, BaseItemDto item)
|
||||
{
|
||||
//var session = GetSession(sessionId);
|
||||
|
||||
|
@ -98,7 +98,7 @@ namespace MediaBrowser.Api.Session
|
||||
|
||||
[Route("/Sessions/{Id}/Playing/{Command}", "POST", Summary = "Issues a playstate command to a client")]
|
||||
[Authenticated]
|
||||
public class SendPlaystateCommand : IReturnVoid
|
||||
public class SendPlaystateCommand : PlaystateRequest, IReturnVoid
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the id.
|
||||
@ -106,19 +106,6 @@ namespace MediaBrowser.Api.Session
|
||||
/// <value>The id.</value>
|
||||
[ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the position to seek to
|
||||
/// </summary>
|
||||
[ApiMember(Name = "SeekPositionTicks", Description = "The position to seek to.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||
public long? SeekPositionTicks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the play command.
|
||||
/// </summary>
|
||||
/// <value>The play command.</value>
|
||||
[ApiMember(Name = "Command", Description = "The command to send - stop, pause, unpause, nexttrack, previoustrack, seek, fullscreen.", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||
public PlaystateCommand Command { get; set; }
|
||||
}
|
||||
|
||||
[Route("/Sessions/{Id}/System/{Command}", "POST", Summary = "Issues a system command to a client")]
|
||||
@ -414,13 +401,7 @@ namespace MediaBrowser.Api.Session
|
||||
|
||||
public void Post(SendPlaystateCommand request)
|
||||
{
|
||||
var command = new PlaystateRequest
|
||||
{
|
||||
Command = request.Command,
|
||||
SeekPositionTicks = request.SeekPositionTicks
|
||||
};
|
||||
|
||||
var task = _sessionManager.SendPlaystateCommand(GetSession(_sessionContext).Result.Id, request.Id, command, CancellationToken.None);
|
||||
var task = _sessionManager.SendPlaystateCommand(GetSession(_sessionContext).Result.Id, request.Id, request, CancellationToken.None);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
|
@ -149,6 +149,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public string[] PresetViews { get; set; }
|
||||
public TrailerType[] TrailerTypes { get; set; }
|
||||
public SourceType[] SourceTypes { get; set; }
|
||||
|
||||
public DayOfWeek[] AirDays { get; set; }
|
||||
public SeriesStatus[] SeriesStatuses { get; set; }
|
||||
@ -214,6 +215,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
ExcludeInheritedTags = new string[] { };
|
||||
PresetViews = new string[] { };
|
||||
TrailerTypes = new TrailerType[] { };
|
||||
SourceTypes = new SourceType[] { };
|
||||
AirDays = new DayOfWeek[] { };
|
||||
SeriesStatuses = new SeriesStatus[] { };
|
||||
OrderBy = new List<Tuple<string, SortOrder>>();
|
||||
|
@ -1,5 +1,5 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Library
|
||||
public List<User> Users { get; set; }
|
||||
public long? PlaybackPositionTicks { get; set; }
|
||||
public BaseItem Item { get; set; }
|
||||
public BaseItemInfo MediaInfo { get; set; }
|
||||
public BaseItemDto MediaInfo { get; set; }
|
||||
public string MediaSourceId { get; set; }
|
||||
public bool IsPaused { get; set; }
|
||||
public bool IsAutomated { get; set; }
|
||||
|
@ -1604,7 +1604,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
}
|
||||
|
||||
// Only do this for video files due to sometimes unpredictable codec names coming from BDInfo
|
||||
if (state.VideoType == VideoType.VideoFile && string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType))
|
||||
if (state.VideoType == VideoType.VideoFile && state.RunTimeTicks.HasValue && string.IsNullOrWhiteSpace(encodingOptions.HardwareAccelerationType))
|
||||
{
|
||||
foreach (var stream in state.MediaSource.MediaStreams)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Security;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Events;
|
||||
using MediaBrowser.Model.Session;
|
||||
using MediaBrowser.Model.Users;
|
||||
@ -249,7 +249,7 @@ namespace MediaBrowser.Controller.Session
|
||||
/// </summary>
|
||||
/// <param name="sessionId">The session identifier.</param>
|
||||
/// <param name="item">The item.</param>
|
||||
void ReportNowViewingItem(string sessionId, BaseItemInfo item);
|
||||
void ReportNowViewingItem(string sessionId, BaseItemDto item);
|
||||
|
||||
/// <summary>
|
||||
/// Authenticates the new session.
|
||||
|
@ -1,4 +1,4 @@
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Session;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -100,13 +100,13 @@ namespace MediaBrowser.Controller.Session
|
||||
/// Gets or sets the name of the now viewing item.
|
||||
/// </summary>
|
||||
/// <value>The name of the now viewing item.</value>
|
||||
public BaseItemInfo NowViewingItem { get; set; }
|
||||
public BaseItemDto NowViewingItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the now playing item.
|
||||
/// </summary>
|
||||
/// <value>The now playing item.</value>
|
||||
public BaseItemInfo NowPlayingItem { get; set; }
|
||||
public BaseItemDto NowPlayingItem { get; set; }
|
||||
|
||||
public BaseItem FullNowPlayingItem { get; set; }
|
||||
|
||||
|
@ -1,178 +0,0 @@
|
||||
using MediaBrowser.Model.Dto;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
|
||||
namespace MediaBrowser.Model.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// This is a stub class containing only basic information about an item
|
||||
/// </summary>
|
||||
[DebuggerDisplay("Name = {Name}, ID = {Id}, Type = {Type}")]
|
||||
public class BaseItemInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id.
|
||||
/// </summary>
|
||||
/// <value>The id.</value>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the type.
|
||||
/// </summary>
|
||||
/// <value>The type.</value>
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the type of the media.
|
||||
/// </summary>
|
||||
/// <value>The type of the media.</value>
|
||||
public string MediaType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the run time ticks.
|
||||
/// </summary>
|
||||
/// <value>The run time ticks.</value>
|
||||
public long? RunTimeTicks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the primary image tag.
|
||||
/// </summary>
|
||||
/// <value>The primary image tag.</value>
|
||||
public string PrimaryImageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the primary image item identifier.
|
||||
/// </summary>
|
||||
/// <value>The primary image item identifier.</value>
|
||||
public string PrimaryImageItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the logo image tag.
|
||||
/// </summary>
|
||||
/// <value>The logo image tag.</value>
|
||||
public string LogoImageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the logo item identifier.
|
||||
/// </summary>
|
||||
/// <value>The logo item identifier.</value>
|
||||
public string LogoItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the thumb image tag.
|
||||
/// </summary>
|
||||
/// <value>The thumb image tag.</value>
|
||||
public string ThumbImageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the thumb item identifier.
|
||||
/// </summary>
|
||||
/// <value>The thumb item identifier.</value>
|
||||
public string ThumbItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the thumb image tag.
|
||||
/// </summary>
|
||||
/// <value>The thumb image tag.</value>
|
||||
public string BackdropImageTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the thumb item identifier.
|
||||
/// </summary>
|
||||
/// <value>The thumb item identifier.</value>
|
||||
public string BackdropItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the premiere date.
|
||||
/// </summary>
|
||||
/// <value>The premiere date.</value>
|
||||
public DateTime? PremiereDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the production year.
|
||||
/// </summary>
|
||||
/// <value>The production year.</value>
|
||||
public int? ProductionYear { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the index number.
|
||||
/// </summary>
|
||||
/// <value>The index number.</value>
|
||||
public int? IndexNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the index number end.
|
||||
/// </summary>
|
||||
/// <value>The index number end.</value>
|
||||
public int? IndexNumberEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the parent index number.
|
||||
/// </summary>
|
||||
/// <value>The parent index number.</value>
|
||||
public int? ParentIndexNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the series.
|
||||
/// </summary>
|
||||
/// <value>The name of the series.</value>
|
||||
public string SeriesName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the album.
|
||||
/// </summary>
|
||||
/// <value>The album.</value>
|
||||
public string Album { get; set; }
|
||||
|
||||
public bool IsThemeMedia { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the artists.
|
||||
/// </summary>
|
||||
/// <value>The artists.</value>
|
||||
public List<string> Artists { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the media streams.
|
||||
/// </summary>
|
||||
/// <value>The media streams.</value>
|
||||
public List<MediaStream> MediaStreams { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the chapter images item identifier.
|
||||
/// </summary>
|
||||
/// <value>The chapter images item identifier.</value>
|
||||
public string ChapterImagesItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the chapters.
|
||||
/// </summary>
|
||||
/// <value>The chapters.</value>
|
||||
public List<ChapterInfoDto> Chapters { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this instance has primary image.
|
||||
/// </summary>
|
||||
/// <value><c>true</c> if this instance has primary image; otherwise, <c>false</c>.</value>
|
||||
[IgnoreDataMember]
|
||||
public bool HasPrimaryImage
|
||||
{
|
||||
get { return PrimaryImageTag != null; }
|
||||
}
|
||||
|
||||
public BaseItemInfo()
|
||||
{
|
||||
Artists = new List<string>();
|
||||
MediaStreams = new List<MediaStream>();
|
||||
Chapters = new List<ChapterInfoDto>();
|
||||
}
|
||||
}
|
||||
}
|
@ -322,7 +322,6 @@
|
||||
<Compile Include="Querying\EpisodeQuery.cs" />
|
||||
<Compile Include="Querying\ItemCountsQuery.cs" />
|
||||
<Compile Include="Querying\ItemsByNameQuery.cs" />
|
||||
<Compile Include="Entities\BaseItemInfo.cs" />
|
||||
<Compile Include="Querying\LatestItemsQuery.cs" />
|
||||
<Compile Include="Querying\MovieRecommendationQuery.cs" />
|
||||
<Compile Include="Querying\NextUpQuery.cs" />
|
||||
|
@ -1,4 +1,4 @@
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
|
||||
namespace MediaBrowser.Model.Session
|
||||
{
|
||||
@ -17,7 +17,7 @@ namespace MediaBrowser.Model.Session
|
||||
/// Gets or sets the item.
|
||||
/// </summary>
|
||||
/// <value>The item.</value>
|
||||
public BaseItemInfo Item { get; set; }
|
||||
public BaseItemDto Item { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the item identifier.
|
||||
@ -67,6 +67,8 @@ namespace MediaBrowser.Model.Session
|
||||
/// <value>The position ticks.</value>
|
||||
public long? PositionTicks { get; set; }
|
||||
|
||||
public long? playbackStartTimeTicks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the volume level.
|
||||
/// </summary>
|
||||
|
@ -1,4 +1,4 @@
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
|
||||
namespace MediaBrowser.Model.Session
|
||||
{
|
||||
@ -11,7 +11,7 @@ namespace MediaBrowser.Model.Session
|
||||
/// Gets or sets the item.
|
||||
/// </summary>
|
||||
/// <value>The item.</value>
|
||||
public BaseItemInfo Item { get; set; }
|
||||
public BaseItemDto Item { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the item identifier.
|
||||
/// </summary>
|
||||
|
@ -1,4 +1,4 @@
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@ -72,7 +72,7 @@ namespace MediaBrowser.Model.Session
|
||||
/// Gets or sets the now viewing item.
|
||||
/// </summary>
|
||||
/// <value>The now viewing item.</value>
|
||||
public BaseItemInfo NowViewingItem { get; set; }
|
||||
public BaseItemDto NowViewingItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the device.
|
||||
@ -84,7 +84,7 @@ namespace MediaBrowser.Model.Session
|
||||
/// Gets or sets the now playing item.
|
||||
/// </summary>
|
||||
/// <value>The now playing item.</value>
|
||||
public BaseItemInfo NowPlayingItem { get; set; }
|
||||
public BaseItemDto NowPlayingItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the device id.
|
||||
|
@ -2,7 +2,7 @@
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>MediaBrowser.Common</id>
|
||||
<version>3.0.702</version>
|
||||
<version>3.0.703</version>
|
||||
<title>Emby.Common</title>
|
||||
<authors>Emby Team</authors>
|
||||
<owners>ebr,Luke,scottisafool</owners>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>MediaBrowser.Server.Core</id>
|
||||
<version>3.0.702</version>
|
||||
<version>3.0.703</version>
|
||||
<title>Emby.Server.Core</title>
|
||||
<authors>Emby Team</authors>
|
||||
<owners>ebr,Luke,scottisafool</owners>
|
||||
@ -12,7 +12,7 @@
|
||||
<description>Contains core components required to build plugins for Emby Server.</description>
|
||||
<copyright>Copyright © Emby 2013</copyright>
|
||||
<dependencies>
|
||||
<dependency id="MediaBrowser.Common" version="3.0.702" />
|
||||
<dependency id="MediaBrowser.Common" version="3.0.703" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
|
Loading…
Reference in New Issue
Block a user