Anime folder works. Concert folder and search works. Fix infinite loop in item listing (SupportsInheritedParentImages).
This commit is contained in:
@@ -11,9 +11,9 @@ public sealed class CinemaAnimeFolder : CinemaRootFolder
|
||||
{
|
||||
}
|
||||
|
||||
public override CollectionType? CollectionType => Data.Enums.CollectionType.movies;
|
||||
public override CollectionType? CollectionType => Data.Enums.CollectionType.tvshows;
|
||||
|
||||
public override BaseItemKind ClientType => BaseItemKind.Movie;
|
||||
public override BaseItemKind ClientType => BaseItemKind.Series;
|
||||
|
||||
public override ItemType ItemType => ItemType.Anime;
|
||||
|
||||
@@ -28,6 +28,6 @@ public sealed class CinemaAnimeFolder : CinemaRootFolder
|
||||
|
||||
public override bool TryCreateMediaItem(MediaSource? media, string csId, BaseItem parentFolder, [NotNullWhen(true)] out BaseItem? item)
|
||||
{
|
||||
return media.TryCreateMediaItem<CinemaTvSeries>(csId, parentFolder, false, out item);
|
||||
return media.TryCreateMediaItem<CinemaTvSeries>(csId, parentFolder, true, out item);
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ public sealed class CinemaConcertFolder : CinemaRootFolder
|
||||
|
||||
public override CollectionType? CollectionType => Data.Enums.CollectionType.musicvideos;
|
||||
|
||||
public override BaseItemKind ClientType => BaseItemKind.MusicVideo;
|
||||
public override BaseItemKind ClientType => BaseItemKind.Video;
|
||||
|
||||
public override ItemType ItemType => ItemType.Concert;
|
||||
|
||||
|
||||
@@ -61,13 +61,19 @@ public abstract class CinemaFilterFolder : Folder
|
||||
/// <remarks>Implementation shall just choose proper container type and call <see cref="CinemaQueryExtensions.TryCreateMediaItem"/></remarks>
|
||||
public abstract bool TryCreateMediaItem(MediaSource? media, string csId, BaseItem parentFolder, [NotNullWhen(true)] out BaseItem? item);
|
||||
|
||||
/// <summary>
|
||||
/// Prevent infinite loop in DtoService.AddInheritedImages
|
||||
/// </summary>
|
||||
public override bool SupportsInheritedParentImages => false;
|
||||
|
||||
/// <summary>
|
||||
/// Gets static as well as dynamic items from Stream Cinema database.
|
||||
/// </summary>
|
||||
protected sealed override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
|
||||
{
|
||||
if ((query.IncludeItemTypes != null && !query.IncludeItemTypes.Contains(ClientType))
|
||||
|| (query.ExcludeItemTypes != null && query.ExcludeItemTypes.Contains(ClientType)))
|
||||
if (query.Recursive &&
|
||||
((query.IncludeItemTypes != null && !query.IncludeItemTypes.Contains(ClientType) && (ClientType != BaseItemKind.Video || !query.MediaTypes.Contains(MediaType.Video)))
|
||||
|| (query.ExcludeItemTypes != null && query.ExcludeItemTypes.Contains(ClientType))))
|
||||
// None of our items can match
|
||||
return new QueryResult<BaseItem>() { Items = new List<BaseItem>() };
|
||||
|
||||
|
||||
@@ -211,6 +211,7 @@ sealed class CinemaMediaSourceManager : IMediaSourceManager
|
||||
{
|
||||
case CinemaMovie movie: items = GetVideoVersionsEnumerate(csId!, movie, videoPrimary!, ver.Versions); sortByPrefs = false; break;
|
||||
case CinemaEpisode episode: items = GetVideoVersionsEnumerate(csId!, episode, videoPrimary!, ver.Versions); sortByPrefs = true; break;
|
||||
case MusicVideo musicVideo: items = GetVideoVersionsEnumerate(csId!, musicVideo, videoPrimary!, ver.Versions); sortByPrefs = false; break;
|
||||
default: throw new NotSupportedException(string.Format("BaseItem type '{0}' not supported in CinemaMediaSources.", video.GetType().Name));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user