Always apply recursive when filters are requested

This commit is contained in:
Shadowghost
2026-06-13 16:37:19 +02:00
parent dd42a121c4
commit a9dc8f6f74
3 changed files with 334 additions and 233 deletions

View File

@@ -72,6 +72,102 @@ namespace MediaBrowser.Controller.Entities
}
}
/// <summary>
/// Gets a value indicating whether the query carries any criteria that narrows the
/// result set, as opposed to user context, pagination, sorting or DTO options.
/// </summary>
public bool HasFilters =>
IncludeItemTypes.Length > 0
|| ExcludeItemTypes.Length > 0
|| Genres.Count > 0
|| GenreIds.Count > 0
|| Years.Length > 0
|| Tags.Length > 0
|| ExcludeTags.Length > 0
|| OfficialRatings.Length > 0
|| StudioIds.Length > 0
|| ArtistIds.Length > 0
|| AlbumArtistIds.Length > 0
|| ContributingArtistIds.Length > 0
|| ExcludeArtistIds.Length > 0
|| AlbumIds.Length > 0
|| PersonIds.Length > 0
|| PersonTypes.Length > 0
|| MediaTypes.Length > 0
|| VideoTypes.Length > 0
|| ImageTypes.Length > 0
|| SeriesStatuses.Length > 0
|| ItemIds.Length > 0
|| ExcludeItemIds.Length > 0
|| AudioLanguages.Count > 0
|| SubtitleLanguages.Count > 0
|| LinkedChildAncestorIds.Length > 0
|| AncestorIds.Length > 0
|| IsFavorite.HasValue
|| IsFavoriteOrLiked.HasValue
|| IsLiked.HasValue
|| IsPlayed.HasValue
|| IsResumable.HasValue
|| IsFolder.HasValue
|| IsMissing.HasValue
|| IsUnaired.HasValue
|| IsSpecialSeason.HasValue
|| Is3D.HasValue
|| IsHD.HasValue
|| Is4K.HasValue
|| IsLocked.HasValue
|| IsPlaceHolder.HasValue
|| IsMovie.HasValue
|| IsSports.HasValue
|| IsKids.HasValue
|| IsNews.HasValue
|| IsSeries.HasValue
|| IsAiring.HasValue
|| IsVirtualItem.HasValue
|| HasImdbId.HasValue
|| HasTmdbId.HasValue
|| HasTvdbId.HasValue
|| HasOverview.HasValue
|| HasOfficialRating.HasValue
|| HasParentalRating.HasValue
|| HasThemeSong.HasValue
|| HasThemeVideo.HasValue
|| HasSubtitles.HasValue
|| HasSpecialFeature.HasValue
|| HasTrailer.HasValue
|| HasChapterImages.HasValue
|| MinCriticRating.HasValue
|| MinCommunityRating.HasValue
|| MinParentalRating is not null
|| MinIndexNumber.HasValue
|| MinParentAndIndexNumber.HasValue
|| IndexNumber.HasValue
|| ParentIndexNumber.HasValue
|| AiredDuringSeason.HasValue
|| MinWidth.HasValue
|| MinHeight.HasValue
|| MaxWidth.HasValue
|| MaxHeight.HasValue
|| MinPremiereDate.HasValue
|| MaxPremiereDate.HasValue
|| MinStartDate.HasValue
|| MaxStartDate.HasValue
|| MinEndDate.HasValue
|| MaxEndDate.HasValue
|| MinDateCreated.HasValue
|| MinDateLastSaved.HasValue
|| MinDateLastSavedForUser.HasValue
|| AdjacentTo.HasValue
|| !string.IsNullOrEmpty(NameStartsWith)
|| !string.IsNullOrEmpty(NameStartsWithOrGreater)
|| !string.IsNullOrEmpty(NameLessThan)
|| !string.IsNullOrEmpty(NameContains)
|| !string.IsNullOrEmpty(MinSortName)
|| !string.IsNullOrEmpty(Name)
|| !string.IsNullOrEmpty(Person)
|| !string.IsNullOrEmpty(SearchTerm)
|| !string.IsNullOrEmpty(Path);
public bool Recursive { get; set; }
public int? StartIndex { get; set; }