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}",
|
//Logger.Debug("{2} query time: {0}ms. Query: {1}",
|
||||||
// Convert.ToInt32(elapsed),
|
// Convert.ToInt32(elapsed),
|
||||||
// cmd.CommandText,
|
// commandText,
|
||||||
// methodName);
|
// methodName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4203,7 +4203,7 @@ namespace Emby.Server.Implementations.Data
|
||||||
|
|
||||||
var paramName = "@ExcludeProviderId" + index;
|
var paramName = "@ExcludeProviderId" + index;
|
||||||
//excludeIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
|
//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)
|
if (statement != null)
|
||||||
{
|
{
|
||||||
statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
|
statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
|
||||||
|
|
|
@ -105,21 +105,26 @@ namespace Emby.Server.Implementations.Intros
|
||||||
trailerTypes.Clear();
|
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 },
|
IncludeItemTypes = new[] { typeof(Trailer).Name },
|
||||||
TrailerTypes = trailerTypes.ToArray(),
|
TrailerTypes = trailerTypes.ToArray(),
|
||||||
SimilarTo = item,
|
SimilarTo = item,
|
||||||
IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
//IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
||||||
MaxParentalRating = config.EnableIntrosParentalControl ? ratingLevel : null,
|
MaxParentalRating = config.EnableIntrosParentalControl ? ratingLevel : null,
|
||||||
BlockUnratedItems = config.EnableIntrosParentalControl ? new[] { UnratedItem.Trailer } : new UnratedItem[] { },
|
BlockUnratedItems = config.EnableIntrosParentalControl ? new[] { UnratedItem.Trailer } : new UnratedItem[] { },
|
||||||
|
|
||||||
// Account for duplicates by imdb id, since the database doesn't support this yet
|
// 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(),
|
SourceTypes = sourceTypes.ToArray(),
|
||||||
MinSimilarityScore = 0
|
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
|
candidates.AddRange(trailerResult.Select(i => new ItemWithTrailer
|
||||||
{
|
{
|
||||||
|
|
|
@ -1590,12 +1590,15 @@ namespace MediaBrowser.Controller.Entities
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var userCollectionFolders = user.RootFolder.GetChildren(user, true).Select(i => i.Id).ToList();
|
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id).ToList();
|
||||||
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id);
|
|
||||||
|
|
||||||
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