update live stream sharing

This commit is contained in:
Luke Pulverenti 2016-10-11 17:33:38 -04:00
parent d54f03514d
commit 2c6fc11dcf
13 changed files with 90 additions and 47 deletions

View file

@ -59,6 +59,15 @@ namespace MediaBrowser.Controller.Entities.Audio
AlbumArtists = new List<string>(); AlbumArtists = new List<string>();
} }
[IgnoreDataMember]
public override bool SupportsPlayedStatus
{
get
{
return true;
}
}
[IgnoreDataMember] [IgnoreDataMember]
public override bool SupportsAddingToPlaylist public override bool SupportsAddingToPlaylist
{ {

View file

@ -807,18 +807,6 @@ namespace MediaBrowser.Controller.Entities
return true; return true;
} }
if (query.HasThemeSong.HasValue)
{
Logger.Debug("Query requires post-filtering due to HasThemeSong");
return true;
}
if (query.HasThemeVideo.HasValue)
{
Logger.Debug("Query requires post-filtering due to HasThemeVideo");
return true;
}
// Filter by VideoType // Filter by VideoType
if (query.VideoTypes.Length > 0) if (query.VideoTypes.Length > 0)
{ {

View file

@ -16,8 +16,6 @@ namespace MediaBrowser.Controller.Entities
RemoteTrailers = new List<MediaUrl>(); RemoteTrailers = new List<MediaUrl>();
LocalTrailerIds = new List<Guid>(); LocalTrailerIds = new List<Guid>();
RemoteTrailerIds = new List<Guid>(); RemoteTrailerIds = new List<Guid>();
ThemeSongIds = new List<Guid>();
ThemeVideoIds = new List<Guid>();
} }
public List<Guid> LocalTrailerIds { get; set; } public List<Guid> LocalTrailerIds { get; set; }

View file

@ -168,6 +168,8 @@ namespace MediaBrowser.Controller.Entities
switch (name) switch (name)
{ {
case ItemFields.ThemeSongIds:
case ItemFields.ThemeVideoIds:
case ItemFields.ProductionLocations: case ItemFields.ProductionLocations:
case ItemFields.Keywords: case ItemFields.Keywords:
case ItemFields.Taglines: case ItemFields.Taglines:

View file

@ -68,6 +68,15 @@ namespace MediaBrowser.Controller.Entities.Movies
set { TmdbCollectionName = value; } set { TmdbCollectionName = value; }
} }
[IgnoreDataMember]
protected override bool SupportsIsInMixedFolderDetection
{
get
{
return false;
}
}
protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken) protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken)
{ {
var hasChanges = await base.RefreshedOwnedItems(options, fileSystemChildren, cancellationToken).ConfigureAwait(false); var hasChanges = await base.RefreshedOwnedItems(options, fileSystemChildren, cancellationToken).ConfigureAwait(false);

View file

@ -53,6 +53,15 @@ namespace MediaBrowser.Controller.Entities
} }
} }
[IgnoreDataMember]
protected override bool SupportsIsInMixedFolderDetection
{
get
{
return true;
}
}
public override string CreatePresentationUniqueKey() public override string CreatePresentationUniqueKey()
{ {
if (!string.IsNullOrWhiteSpace(PrimaryVersionId)) if (!string.IsNullOrWhiteSpace(PrimaryVersionId))

View file

@ -54,6 +54,15 @@ namespace MediaBrowser.Controller.LiveTv
} }
} }
[IgnoreDataMember]
protected override bool SupportsIsInMixedFolderDetection
{
get
{
return false;
}
}
[IgnoreDataMember] [IgnoreDataMember]
public override bool SupportsPlayedStatus public override bool SupportsPlayedStatus
{ {

View file

@ -207,15 +207,15 @@ namespace MediaBrowser.Controller.Playlists
public override bool IsVisible(User user) public override bool IsVisible(User user)
{ {
if (base.IsVisible(user)) var userId = user.Id.ToString("N");
{
var userId = user.Id.ToString("N");
return Shares.Any(i => string.Equals(userId, i.UserId, StringComparison.OrdinalIgnoreCase)) || return Shares.Any(i => string.Equals(userId, i.UserId, StringComparison.OrdinalIgnoreCase)) ||
string.Equals(OwnerUserId, userId, StringComparison.OrdinalIgnoreCase); string.Equals(OwnerUserId, userId, StringComparison.OrdinalIgnoreCase);
} }
return false; public override bool IsVisibleStandalone(User user)
{
return IsVisible(user);
} }
} }
} }

View file

@ -260,6 +260,8 @@
/// <summary> /// <summary>
/// The service name /// The service name
/// </summary> /// </summary>
ServiceName ServiceName,
ThemeSongIds,
ThemeVideoIds
} }
} }

View file

@ -274,6 +274,10 @@ namespace MediaBrowser.Server.Implementations.Library
positionTicks = 0; positionTicks = 0;
data.Played = false; data.Played = false;
} }
if (item is Audio)
{
positionTicks = 0;
}
data.PlaybackPositionTicks = positionTicks; data.PlaybackPositionTicks = positionTicks;

View file

@ -512,29 +512,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
if (EnableLocalBuffer()) if (EnableLocalBuffer())
{ {
var liveStream = new HdHomerunLiveStream(mediaSource, streamId, _fileSystem, _httpClient, Logger, Config.ApplicationPaths, _appHost); var liveStream = new HdHomerunLiveStream(mediaSource, streamId, _fileSystem, _httpClient, Logger, Config.ApplicationPaths, _appHost);
if (info.AllowHWTranscoding) liveStream.EnableStreamSharing = true;
{
var model = await GetModelInfo(info, cancellationToken).ConfigureAwait(false);
if ((model ?? string.Empty).IndexOf("hdtc", StringComparison.OrdinalIgnoreCase) != -1)
{
liveStream.EnableStreamSharing = !info.AllowHWTranscoding;
}
else
{
liveStream.EnableStreamSharing = true;
}
}
else
{
liveStream.EnableStreamSharing = true;
}
return liveStream; return liveStream;
} }
else else
{ {
var liveStream = new LiveStream(mediaSource); var liveStream = new LiveStream(mediaSource);
liveStream.EnableStreamSharing = false; liveStream.EnableStreamSharing = true;
//liveStream.EnableStreamSharing = false;
return liveStream; return liveStream;
} }
} }

View file

@ -1875,17 +1875,23 @@ namespace MediaBrowser.Server.Implementations.Persistence
index++; index++;
} }
if (!reader.IsDBNull(index)) if (query.HasField(ItemFields.ThemeSongIds))
{ {
item.ThemeSongIds = reader.GetString(index).Split('|').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList(); if (!reader.IsDBNull(index))
{
item.ThemeSongIds = reader.GetString(index).Split('|').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList();
}
index++;
} }
index++;
if (!reader.IsDBNull(index)) if (query.HasField(ItemFields.ThemeVideoIds))
{ {
item.ThemeVideoIds = reader.GetString(index).Split('|').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList(); if (!reader.IsDBNull(index))
{
item.ThemeVideoIds = reader.GetString(index).Split('|').Where(i => !string.IsNullOrWhiteSpace(i)).Select(i => new Guid(i)).ToList();
}
index++;
} }
index++;
if (string.IsNullOrWhiteSpace(item.Tagline)) if (string.IsNullOrWhiteSpace(item.Tagline))
{ {
@ -3826,6 +3832,28 @@ namespace MediaBrowser.Server.Implementations.Persistence
clause += ")"; clause += ")";
whereClauses.Add(clause); whereClauses.Add(clause);
} }
if (query.HasThemeSong.HasValue)
{
if (query.HasThemeSong.Value)
{
whereClauses.Add("ThemeSongIds not null");
}
else
{
whereClauses.Add("ThemeSongIds is null");
}
}
if (query.HasThemeVideo.HasValue)
{
if (query.HasThemeVideo.Value)
{
whereClauses.Add("ThemeVideoIds not null");
}
else
{
whereClauses.Add("ThemeVideoIds is null");
}
}
//var enableItemsByName = query.IncludeItemsByName ?? query.IncludeItemTypes.Length > 0; //var enableItemsByName = query.IncludeItemsByName ?? query.IncludeItemTypes.Length > 0;
var enableItemsByName = query.IncludeItemsByName ?? false; var enableItemsByName = query.IncludeItemsByName ?? false;

View file

@ -17,7 +17,7 @@ namespace MediaBrowser.Server.Implementations.Playlists
public override bool IsVisible(User user) public override bool IsVisible(User user)
{ {
return base.IsVisible(user); return base.IsVisible(user) && GetChildren(user, true).Any();
} }
protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user) protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user)