mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-05 07:18:47 +01:00
update live stream management
This commit is contained in:
@@ -115,6 +115,22 @@ namespace MediaBrowser.Controller.Entities
|
||||
[IgnoreDataMember]
|
||||
public bool IsInMixedFolder { get; set; }
|
||||
|
||||
[IgnoreDataMember]
|
||||
protected virtual bool SupportsIsInMixedFolderDetection
|
||||
{
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public bool DetectIsInMixedFolder()
|
||||
{
|
||||
if (SupportsIsInMixedFolderDetection)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return IsInMixedFolder;
|
||||
}
|
||||
|
||||
[IgnoreDataMember]
|
||||
public virtual bool SupportsRemoteImageDownloading
|
||||
{
|
||||
@@ -1116,7 +1132,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
var hasThemeMedia = this as IHasThemeMedia;
|
||||
if (hasThemeMedia != null)
|
||||
{
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
themeSongsChanged = await RefreshThemeSongs(hasThemeMedia, options, fileSystemChildren, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -1266,7 +1282,15 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
var current = this;
|
||||
|
||||
return current.IsInMixedFolder == newItem.IsInMixedFolder;
|
||||
if (!SupportsIsInMixedFolderDetection)
|
||||
{
|
||||
if (current.IsInMixedFolder != newItem.IsInMixedFolder)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void AfterMetadataRefresh()
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public override IEnumerable<string> GetDeletePaths()
|
||||
{
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
return new[] { System.IO.Path.GetDirectoryName(Path) };
|
||||
}
|
||||
|
||||
@@ -150,11 +150,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// <value><c>true</c> if [supports local metadata]; otherwise, <c>false</c>.</value>
|
||||
bool SupportsLocalMetadata { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this instance is in mixed folder.
|
||||
/// </summary>
|
||||
/// <value><c>true</c> if this instance is in mixed folder; otherwise, <c>false</c>.</value>
|
||||
bool IsInMixedFolder { get; }
|
||||
bool DetectIsInMixedFolder();
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this instance is locked.
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
|
||||
// Must have a parent to have special features
|
||||
// In other words, it must be part of the Parent/Child tree
|
||||
if (LocationType == LocationType.FileSystem && GetParent() != null && !IsInMixedFolder)
|
||||
if (LocationType == LocationType.FileSystem && GetParent() != null && !DetectIsInMixedFolder())
|
||||
{
|
||||
var specialFeaturesChanged = await RefreshSpecialFeatures(options, fileSystemChildren, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
{
|
||||
var info = GetItemLookupInfo<MovieInfo>();
|
||||
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
info.Name = System.IO.Path.GetFileName(ContainingFolderPath);
|
||||
}
|
||||
@@ -145,7 +145,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
else
|
||||
{
|
||||
// Try to get the year from the folder name
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));
|
||||
|
||||
|
||||
@@ -37,6 +37,15 @@ namespace MediaBrowser.Controller.Entities
|
||||
}
|
||||
}
|
||||
|
||||
[IgnoreDataMember]
|
||||
protected override bool SupportsIsInMixedFolderDetection
|
||||
{
|
||||
get
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override UnratedItem GetBlockUnratedType()
|
||||
{
|
||||
return UnratedItem.Music;
|
||||
@@ -65,7 +74,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
else
|
||||
{
|
||||
// Try to get the year from the folder name
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
info.IsLocalTrailer = TrailerTypes.Contains(TrailerType.LocalTrailer);
|
||||
|
||||
if (!IsInMixedFolder && LocationType == LocationType.FileSystem)
|
||||
if (!DetectIsInMixedFolder() && LocationType == LocationType.FileSystem)
|
||||
{
|
||||
info.Name = System.IO.Path.GetFileName(ContainingFolderPath);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
else
|
||||
{
|
||||
// Try to get the year from the folder name
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));
|
||||
|
||||
|
||||
@@ -480,7 +480,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public override IEnumerable<string> GetDeletePaths()
|
||||
{
|
||||
if (!IsInMixedFolder)
|
||||
if (!DetectIsInMixedFolder())
|
||||
{
|
||||
return new[] { ContainingFolderPath };
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace MediaBrowser.Controller.LiveTv
|
||||
public ITunerHost TunerHost { get; set; }
|
||||
public string OriginalStreamId { get; set; }
|
||||
public bool EnableStreamSharing { get; set; }
|
||||
public string UniqueId = Guid.NewGuid().ToString("N");
|
||||
|
||||
public LiveStream(MediaSourceInfo mediaSource)
|
||||
{
|
||||
|
||||
@@ -287,9 +287,7 @@
|
||||
<Compile Include="Providers\IHasItemChangeMonitor.cs" />
|
||||
<Compile Include="Providers\IHasLookupInfo.cs" />
|
||||
<Compile Include="Providers\IHasOrder.cs" />
|
||||
<Compile Include="Providers\IImageFileSaver.cs" />
|
||||
<Compile Include="Providers\IImageProvider.cs" />
|
||||
<Compile Include="Providers\IImageSaver.cs" />
|
||||
<Compile Include="Providers\ILocalImageFileProvider.cs" />
|
||||
<Compile Include="Providers\ILocalMetadataProvider.cs" />
|
||||
<Compile Include="Providers\ImageRefreshMode.cs" />
|
||||
|
||||
@@ -11,14 +11,6 @@ namespace MediaBrowser.Controller.Net
|
||||
/// </summary>
|
||||
public interface IHttpResultFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Throws the error.
|
||||
/// </summary>
|
||||
/// <param name="statusCode">The status code.</param>
|
||||
/// <param name="errorMessage">The error message.</param>
|
||||
/// <param name="responseHeaders">The response headers.</param>
|
||||
void ThrowError(int statusCode, string errorMessage, IDictionary<string, string> responseHeaders = null);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the result.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Drawing;
|
||||
using MediaBrowser.Model.Entities;
|
||||
|
||||
namespace MediaBrowser.Controller.Providers
|
||||
{
|
||||
public interface IImageFileSaver : IImageSaver
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the save paths.
|
||||
/// </summary>
|
||||
/// <param name="item">The item.</param>
|
||||
/// <param name="type">The type.</param>
|
||||
/// <param name="format">The format.</param>
|
||||
/// <param name="index">The index.</param>
|
||||
/// <returns>IEnumerable{System.String}.</returns>
|
||||
IEnumerable<string> GetSavePaths(IHasImages item, ImageType type, ImageFormat format, int index);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
namespace MediaBrowser.Controller.Providers
|
||||
{
|
||||
public interface IImageSaver
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
string Name { get; }
|
||||
}
|
||||
}
|
||||
@@ -95,15 +95,8 @@ namespace MediaBrowser.Controller.Providers
|
||||
/// <summary>
|
||||
/// Adds the metadata providers.
|
||||
/// </summary>
|
||||
/// <param name="imageProviders">The image providers.</param>
|
||||
/// <param name="metadataServices">The metadata services.</param>
|
||||
/// <param name="metadataProviders">The metadata providers.</param>
|
||||
/// <param name="savers">The savers.</param>
|
||||
/// <param name="imageSavers">The image savers.</param>
|
||||
/// <param name="externalIds">The external ids.</param>
|
||||
void AddParts(IEnumerable<IImageProvider> imageProviders, IEnumerable<IMetadataService> metadataServices, IEnumerable<IMetadataProvider> metadataProviders,
|
||||
IEnumerable<IMetadataSaver> savers,
|
||||
IEnumerable<IImageSaver> imageSavers,
|
||||
IEnumerable<IExternalId> externalIds);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace MediaBrowser.Controller.Providers
|
||||
{
|
||||
Path = item.Path;
|
||||
ContainingFolderPath = item.ContainingFolderPath;
|
||||
IsInMixedFolder = item.IsInMixedFolder;
|
||||
IsInMixedFolder = item.DetectIsInMixedFolder();
|
||||
|
||||
var video = item as Video;
|
||||
if (video != null)
|
||||
|
||||
Reference in New Issue
Block a user