update playlist query

This commit is contained in:
Luke Pulverenti 2015-11-15 17:30:47 -05:00
parent a45831cdcf
commit 72a0c2afeb
5 changed files with 38 additions and 11 deletions

View File

@ -112,6 +112,11 @@ namespace MediaBrowser.Api.UserLibrary
user == null ? _libraryManager.RootFolder : user.RootFolder :
parentItem;
if (string.Equals(request.IncludeItemTypes, "Playlist", StringComparison.OrdinalIgnoreCase))
{
item = user == null ? _libraryManager.RootFolder : user.RootFolder;
}
// Default list type = children
if (!string.IsNullOrEmpty(request.Ids))

View File

@ -31,6 +31,7 @@ namespace MediaBrowser.Controller.Entities
public string[] MediaTypes { get; set; }
public string[] IncludeItemTypes { get; set; }
public string[] ExcludeItemTypes { get; set; }
public string[] ExcludeTags { get; set; }
public string[] Genres { get; set; }
public bool? IsMissing { get; set; }
@ -133,6 +134,7 @@ namespace MediaBrowser.Controller.Entities
ItemIds = new string[] { };
AncestorIds = new string[] { };
TopParentIds = new string[] { };
ExcludeTags = new string[] { };
ExcludeLocationTypes = new LocationType[] { };
}
@ -144,6 +146,13 @@ namespace MediaBrowser.Controller.Entities
var policy = user.Policy;
MaxParentalRating = policy.MaxParentalRating;
if (policy.MaxParentalRating.HasValue)
{
BlockUnratedItems = policy.BlockUnratedItems;
}
ExcludeTags = policy.BlockedTags;
User = user;
}
}

View File

@ -175,6 +175,11 @@ namespace MediaBrowser.Providers.TV
/// <returns>Task.</returns>
internal async Task DownloadSeriesZip(string seriesId, string seriesDataPath, long? lastTvDbUpdateTime, string preferredMetadataLanguage, CancellationToken cancellationToken)
{
if (string.IsNullOrWhiteSpace(seriesId))
{
throw new ArgumentNullException("seriesId");
}
try
{
await DownloadSeriesZip(seriesId, seriesDataPath, lastTvDbUpdateTime, preferredMetadataLanguage, preferredMetadataLanguage, cancellationToken).ConfigureAwait(false);
@ -196,6 +201,11 @@ namespace MediaBrowser.Providers.TV
private async Task DownloadSeriesZip(string seriesId, string seriesDataPath, long? lastTvDbUpdateTime, string preferredMetadataLanguage, string saveAsMetadataLanguage, CancellationToken cancellationToken)
{
if (string.IsNullOrWhiteSpace(seriesId))
{
throw new ArgumentNullException("seriesId");
}
var url = string.Format(SeriesGetZip, TVUtils.TvdbApiKey, seriesId, preferredMetadataLanguage);
using (var zipStream = await _httpClient.Get(new HttpRequestOptions
@ -247,7 +257,11 @@ namespace MediaBrowser.Providers.TV
string id;
if (seriesProviderIds.TryGetValue(MetadataProviders.Tvdb.ToString(), out id))
{
return true;
// This check should ideally never be necessary but we're seeing some cases of this and haven't tracked them down yet.
if (string.IsNullOrWhiteSpace(id))
{
return true;
}
}
//if (seriesProviderIds.TryGetValue(MetadataProviders.Imdb.ToString(), out id))
//{

View File

@ -1345,16 +1345,7 @@ namespace MediaBrowser.Server.Implementations.Library
}, CancellationToken.None).Result.ToList();
query.TopParentIds = userViews.SelectMany(GetTopParentsForQuery).Select(i => i.Id.ToString("N")).ToArray();
}
// TODO: handle blocking by tags
query.MaxParentalRating = user.Policy.MaxParentalRating;
if (user.Policy.MaxParentalRating.HasValue)
{
query.BlockUnratedItems = user.Policy.BlockUnratedItems;
//query.TopParentIds = userViews.SelectMany(GetTopParentsForQuery).Select(i => i.Id.ToString("N")).ToArray();
}
}

View File

@ -1985,6 +1985,14 @@ namespace MediaBrowser.Server.Implementations.Persistence
var inClause = string.Join(",", query.BlockUnratedItems.Select(i => "'" + i.ToString() + "'").ToArray());
whereClauses.Add(string.Format("(InheritedParentalRatingValue > 0 or UnratedType not in ({0}))", inClause));
}
//var excludeTagIndex = 0;
//foreach (var excludeTag in query.ExcludeTags)
//{
// whereClauses.Add("Tags not like @excludeTag" + excludeTagIndex);
// cmd.Parameters.Add(cmd, "@excludeTag" + excludeTagIndex, DbType.String).Value = "%" + excludeTag + "%";
// excludeTagIndex++;
//}
if (addPaging)
{