mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-26 03:57:12 +00:00
rework episode queries
This commit is contained in:
@@ -922,12 +922,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
return true;
|
||||
}
|
||||
|
||||
if (query.AirDays.Length > 0)
|
||||
{
|
||||
Logger.Debug("Query requires post-filtering due to AirDays");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (query.SeriesStatuses.Length > 0)
|
||||
{
|
||||
Logger.Debug("Query requires post-filtering due to SeriesStatuses");
|
||||
@@ -1388,7 +1382,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
EnableTotalRecordCount = false
|
||||
};
|
||||
|
||||
if (!user.Configuration.DisplayMissingEpisodes || !user.Configuration.DisplayUnairedEpisodes)
|
||||
if (!user.Configuration.DisplayMissingEpisodes)
|
||||
{
|
||||
query.IsVirtualItem = false;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
public bool? IsSpecialSeason { get; set; }
|
||||
public bool? IsMissing { get; set; }
|
||||
public bool? IsUnaired { get; set; }
|
||||
public bool? IsVirtualUnaired { get; set; }
|
||||
public bool? CollapseBoxSetItems { get; set; }
|
||||
|
||||
public string NameStartsWithOrGreater { get; set; }
|
||||
@@ -149,7 +148,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
public TrailerType[] TrailerTypes { get; set; }
|
||||
public SourceType[] SourceTypes { get; set; }
|
||||
|
||||
public DayOfWeek[] AirDays { get; set; }
|
||||
public SeriesStatus[] SeriesStatuses { get; set; }
|
||||
public string ExternalSeriesId { get; set; }
|
||||
public string ExternalId { get; set; }
|
||||
@@ -214,7 +212,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
PresetViews = new string[] { };
|
||||
TrailerTypes = new TrailerType[] { };
|
||||
SourceTypes = new SourceType[] { };
|
||||
AirDays = new DayOfWeek[] { };
|
||||
SeriesStatuses = new SeriesStatus[] { };
|
||||
OrderBy = new List<Tuple<string, SortOrder>>();
|
||||
}
|
||||
|
||||
@@ -282,16 +282,10 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
{
|
||||
get
|
||||
{
|
||||
return LocationType == LocationType.Virtual && !IsUnaired;
|
||||
return LocationType == LocationType.Virtual;
|
||||
}
|
||||
}
|
||||
|
||||
[IgnoreDataMember]
|
||||
public bool IsVirtualUnaired
|
||||
{
|
||||
get { return LocationType == LocationType.Virtual && IsUnaired; }
|
||||
}
|
||||
|
||||
[IgnoreDataMember]
|
||||
public Guid? SeasonId { get; set; }
|
||||
[IgnoreDataMember]
|
||||
@@ -346,7 +340,6 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
|
||||
id.IsMissingEpisode = IsMissingEpisode;
|
||||
id.IndexNumberEnd = IndexNumberEnd;
|
||||
id.IsVirtualUnaired = IsVirtualUnaired;
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
@@ -250,18 +250,10 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
query.IncludeItemTypes = new[] { typeof(Season).Name };
|
||||
query.SortBy = new[] {ItemSortBy.SortName};
|
||||
|
||||
if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualItem = false;
|
||||
}
|
||||
else if (!config.DisplayMissingEpisodes)
|
||||
if (!config.DisplayMissingEpisodes)
|
||||
{
|
||||
query.IsMissing = false;
|
||||
}
|
||||
else if (!config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualUnaired = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
|
||||
@@ -309,18 +301,10 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
DtoOptions = options
|
||||
};
|
||||
var config = user.Configuration;
|
||||
if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualItem = false;
|
||||
}
|
||||
else if (!config.DisplayMissingEpisodes)
|
||||
if (!config.DisplayMissingEpisodes)
|
||||
{
|
||||
query.IsMissing = false;
|
||||
}
|
||||
else if (!config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualUnaired = false;
|
||||
}
|
||||
|
||||
var allItems = LibraryManager.GetItemList(query);
|
||||
|
||||
@@ -428,18 +412,10 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
if (user != null)
|
||||
{
|
||||
var config = user.Configuration;
|
||||
if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualItem = false;
|
||||
}
|
||||
else if (!config.DisplayMissingEpisodes)
|
||||
if (!config.DisplayMissingEpisodes)
|
||||
{
|
||||
query.IsMissing = false;
|
||||
}
|
||||
else if (!config.DisplayUnairedEpisodes)
|
||||
{
|
||||
query.IsVirtualUnaired = false;
|
||||
}
|
||||
}
|
||||
|
||||
var allItems = LibraryManager.GetItemList(query).OfType<Episode>();
|
||||
|
||||
@@ -779,7 +779,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
items = FilterVirtualEpisodes(items,
|
||||
query.IsMissing,
|
||||
query.IsVirtualUnaired,
|
||||
query.IsUnaired);
|
||||
|
||||
if (collapseBoxSetItems && user != null)
|
||||
@@ -1065,7 +1064,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
private static IEnumerable<BaseItem> FilterVirtualEpisodes(
|
||||
IEnumerable<BaseItem> items,
|
||||
bool? isMissing,
|
||||
bool? isVirtualUnaired,
|
||||
bool? isUnaired)
|
||||
{
|
||||
if (isMissing.HasValue)
|
||||
@@ -1096,20 +1094,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
});
|
||||
}
|
||||
|
||||
if (isVirtualUnaired.HasValue)
|
||||
{
|
||||
var val = isVirtualUnaired.Value;
|
||||
items = items.Where(i =>
|
||||
{
|
||||
var e = i as Episode;
|
||||
if (e != null)
|
||||
{
|
||||
return e.IsVirtualUnaired == val;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
|
||||
@@ -925,19 +925,6 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
return false;
|
||||
}
|
||||
|
||||
// Video bitrate must fall within requested value
|
||||
if (request.AudioBitRate.HasValue)
|
||||
{
|
||||
if (!audioStream.BitRate.HasValue || audioStream.BitRate.Value <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (audioStream.BitRate.Value > request.AudioBitRate.Value)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Channels must fall within requested value
|
||||
var channels = request.AudioChannels ?? request.MaxAudioChannels;
|
||||
if (channels.HasValue)
|
||||
@@ -965,6 +952,19 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
}
|
||||
}
|
||||
|
||||
// Video bitrate must fall within requested value
|
||||
if (request.AudioBitRate.HasValue)
|
||||
{
|
||||
if (!audioStream.BitRate.HasValue || audioStream.BitRate.Value <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (audioStream.BitRate.Value > request.AudioBitRate.Value)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return request.EnableAutoStreamCopy;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ namespace MediaBrowser.Controller.Providers
|
||||
public int? IndexNumberEnd { get; set; }
|
||||
|
||||
public bool IsMissingEpisode { get; set; }
|
||||
public bool IsVirtualUnaired { get; set; }
|
||||
|
||||
public EpisodeInfo()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user