resolve local trailers not used for cinema mode
This commit is contained in:
parent
8d668095bb
commit
e4fd626d1c
|
@ -2648,7 +2648,7 @@ namespace Emby.Server.Implementations.Data
|
|||
{
|
||||
//Logger.Debug("{2} query time: {0}ms. Query: {1}",
|
||||
// Convert.ToInt32(elapsed),
|
||||
// cmd.CommandText,
|
||||
// commandText,
|
||||
// methodName);
|
||||
}
|
||||
}
|
||||
|
@ -4203,7 +4203,7 @@ namespace Emby.Server.Implementations.Data
|
|||
|
||||
var paramName = "@ExcludeProviderId" + index;
|
||||
//excludeIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
|
||||
excludeIds.Add("ProviderIds not like " + paramName);
|
||||
excludeIds.Add("(ProviderIds is null or ProviderIds not like " + paramName + ")");
|
||||
if (statement != null)
|
||||
{
|
||||
statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
|
||||
|
|
|
@ -105,21 +105,26 @@ namespace Emby.Server.Implementations.Intros
|
|||
trailerTypes.Clear();
|
||||
}
|
||||
|
||||
var trailerResult = _libraryManager.GetItemList(new InternalItemsQuery(user)
|
||||
// hack - can't filter by user library because local trailers get TopParentId =null in the db.
|
||||
// for now we have to use a post-query filter afterwards to solve that
|
||||
var trailerResult = _libraryManager.GetItemList(new InternalItemsQuery
|
||||
{
|
||||
IncludeItemTypes = new[] { typeof(Trailer).Name },
|
||||
TrailerTypes = trailerTypes.ToArray(),
|
||||
SimilarTo = item,
|
||||
IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
||||
//IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
||||
MaxParentalRating = config.EnableIntrosParentalControl ? ratingLevel : null,
|
||||
BlockUnratedItems = config.EnableIntrosParentalControl ? new[] { UnratedItem.Trailer } : new UnratedItem[] { },
|
||||
|
||||
// Account for duplicates by imdb id, since the database doesn't support this yet
|
||||
Limit = config.TrailerLimit * 2,
|
||||
Limit = config.TrailerLimit * 4,
|
||||
SourceTypes = sourceTypes.ToArray(),
|
||||
MinSimilarityScore = 0
|
||||
|
||||
}).Where(i => string.IsNullOrWhiteSpace(i.GetProviderId(MetadataProviders.Imdb)) || !string.Equals(i.GetProviderId(MetadataProviders.Imdb), item.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase)).Take(config.TrailerLimit);
|
||||
})
|
||||
.Where(i => string.IsNullOrWhiteSpace(i.GetProviderId(MetadataProviders.Imdb)) || !string.Equals(i.GetProviderId(MetadataProviders.Imdb), item.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase))
|
||||
.Where(i => i.IsVisibleStandalone(user))
|
||||
.Where(i => config.EnableIntrosForWatchedContent || !i.IsPlayed(user))
|
||||
.Take(config.TrailerLimit);
|
||||
|
||||
candidates.AddRange(trailerResult.Select(i => new ItemWithTrailer
|
||||
{
|
||||
|
|
|
@ -1590,12 +1590,15 @@ namespace MediaBrowser.Controller.Entities
|
|||
return true;
|
||||
}
|
||||
|
||||
var userCollectionFolders = user.RootFolder.GetChildren(user, true).Select(i => i.Id).ToList();
|
||||
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id);
|
||||
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id).ToList();
|
||||
|
||||
if (!itemCollectionFolders.Any(userCollectionFolders.Contains))
|
||||
if (itemCollectionFolders.Count > 0)
|
||||
{
|
||||
return false;
|
||||
var userCollectionFolders = user.RootFolder.GetChildren(user, true).Select(i => i.Id).ToList();
|
||||
if (!itemCollectionFolders.Any(userCollectionFolders.Contains))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user