aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/Reports/ReportsService.cs73
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs64
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs6
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs6
5 files changed, 31 insertions, 119 deletions
diff --git a/MediaBrowser.Api/Reports/ReportsService.cs b/MediaBrowser.Api/Reports/ReportsService.cs
index 5b492d8b4..5dc6e2d84 100644
--- a/MediaBrowser.Api/Reports/ReportsService.cs
+++ b/MediaBrowser.Api/Reports/ReportsService.cs
@@ -338,6 +338,18 @@ namespace MediaBrowser.Api.Reports
query.LocationTypes = request.LocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray();
}
+ // Min official rating
+ if (!string.IsNullOrEmpty(request.MinOfficialRating))
+ {
+ query.MinParentalRating = _localization.GetRatingLevel(request.MinOfficialRating);
+ }
+
+ // Max official rating
+ if (!string.IsNullOrEmpty(request.MaxOfficialRating))
+ {
+ query.MaxParentalRating = _localization.GetRatingLevel(request.MinOfficialRating);
+ }
+
if (request.HasQueryLimit == false)
{
query.StartIndex = null;
@@ -417,67 +429,6 @@ namespace MediaBrowser.Api.Reports
return false;
}
- // Min index number
- if (request.MinIndexNumber.HasValue)
- {
- if (!(i.IndexNumber.HasValue && i.IndexNumber.Value >= request.MinIndexNumber.Value))
- {
- return false;
- }
- }
-
- // Min official rating
- if (!string.IsNullOrEmpty(request.MinOfficialRating))
- {
- var level = _localization.GetRatingLevel(request.MinOfficialRating);
-
- if (level.HasValue)
- {
- var rating = i.CustomRating;
-
- if (string.IsNullOrEmpty(rating))
- {
- rating = i.OfficialRating;
- }
-
- if (!string.IsNullOrEmpty(rating))
- {
- var itemLevel = _localization.GetRatingLevel(rating);
-
- if (!(!itemLevel.HasValue || itemLevel.Value >= level.Value))
- {
- return false;
- }
- }
- }
- }
-
- // Max official rating
- if (!string.IsNullOrEmpty(request.MaxOfficialRating))
- {
- var level = _localization.GetRatingLevel(request.MaxOfficialRating);
-
- if (level.HasValue)
- {
- var rating = i.CustomRating;
-
- if (string.IsNullOrEmpty(rating))
- {
- rating = i.OfficialRating;
- }
-
- if (!string.IsNullOrEmpty(rating))
- {
- var itemLevel = _localization.GetRatingLevel(rating);
-
- if (!(!itemLevel.HasValue || itemLevel.Value <= level.Value))
- {
- return false;
- }
- }
- }
- }
-
return true;
}
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 92b2d6002..f32165fca 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -310,6 +310,18 @@ namespace MediaBrowser.Api.UserLibrary
{
query.LocationTypes = request.LocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray();
}
+
+ // Min official rating
+ if (!string.IsNullOrEmpty(request.MinOfficialRating))
+ {
+ query.MinParentalRating = _localization.GetRatingLevel(request.MinOfficialRating);
+ }
+
+ // Max official rating
+ if (!string.IsNullOrEmpty(request.MaxOfficialRating))
+ {
+ query.MaxParentalRating = _localization.GetRatingLevel(request.MinOfficialRating);
+ }
return query;
}
@@ -384,58 +396,6 @@ namespace MediaBrowser.Api.UserLibrary
return false;
}
- // Min official rating
- if (!string.IsNullOrEmpty(request.MinOfficialRating))
- {
- var level = _localization.GetRatingLevel(request.MinOfficialRating);
-
- if (level.HasValue)
- {
- var rating = i.CustomRating;
-
- if (string.IsNullOrEmpty(rating))
- {
- rating = i.OfficialRating;
- }
-
- if (!string.IsNullOrEmpty(rating))
- {
- var itemLevel = _localization.GetRatingLevel(rating);
-
- if (!(!itemLevel.HasValue || itemLevel.Value >= level.Value))
- {
- return false;
- }
- }
- }
- }
-
- // Max official rating
- if (!string.IsNullOrEmpty(request.MaxOfficialRating))
- {
- var level = _localization.GetRatingLevel(request.MaxOfficialRating);
-
- if (level.HasValue)
- {
- var rating = i.CustomRating;
-
- if (string.IsNullOrEmpty(rating))
- {
- rating = i.OfficialRating;
- }
-
- if (!string.IsNullOrEmpty(rating))
- {
- var itemLevel = _localization.GetRatingLevel(rating);
-
- if (!(!itemLevel.HasValue || itemLevel.Value <= level.Value))
- {
- return false;
- }
- }
- }
- }
-
return true;
}
}
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 7314f81c7..d2fa5d9a0 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1091,12 +1091,6 @@ namespace MediaBrowser.Controller.Entities
return true;
}
- if (query.MinIndexNumber.HasValue)
- {
- Logger.Debug("Query requires post-filtering due to MinIndexNumber");
- return true;
- }
-
if (query.OfficialRatings.Length > 0)
{
Logger.Debug("Query requires post-filtering due to OfficialRatings");
diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index da76e7db0..e98c89abf 100644
--- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -105,6 +105,7 @@ namespace MediaBrowser.Controller.Entities
internal List<Guid> ItemIdsFromPersonFilters { get; set; }
public int? ParentIndexNumber { get; set; }
+ public int? MinParentalRating { get; set; }
public int? MaxParentalRating { get; set; }
public bool? IsCurrentSchema { get; set; }
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 1ec74a39d..a6e92171f 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -2062,6 +2062,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
whereClauses.Add(clause);
}
+ if (query.MinParentalRating.HasValue)
+ {
+ whereClauses.Add("InheritedParentalRatingValue<=@MinParentalRating");
+ cmd.Parameters.Add(cmd, "@MinParentalRating", DbType.Int32).Value = query.MinParentalRating.Value;
+ }
+
if (query.MaxParentalRating.HasValue)
{
whereClauses.Add("InheritedParentalRatingValue<=@MaxParentalRating");