From fe3407b3343f1a1fe1940de8a0fe5552891c778d Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Thu, 13 Feb 2020 23:19:24 +0100 Subject: [PATCH] Implementing the movies for the providers --- Kyoo.Common/Controllers/IMetadataProvider.cs | 2 +- Kyoo.Common/Controllers/IProviderManager.cs | 2 +- Kyoo/Controllers/Crawler.cs | 12 +++++------- Kyoo/Controllers/ProviderManager.cs | 5 +++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Kyoo.Common/Controllers/IMetadataProvider.cs b/Kyoo.Common/Controllers/IMetadataProvider.cs index 3743a5e2..fe8c1f47 100644 --- a/Kyoo.Common/Controllers/IMetadataProvider.cs +++ b/Kyoo.Common/Controllers/IMetadataProvider.cs @@ -13,7 +13,7 @@ namespace Kyoo.Controllers //For the show Task GetShowByID(string id); - Task GetShowFromName(string showName); + Task GetShowFromName(string showName, bool isMovie); Task> GetPeople(Show show); //For the seasons diff --git a/Kyoo.Common/Controllers/IProviderManager.cs b/Kyoo.Common/Controllers/IProviderManager.cs index 63f5b09c..d57a584f 100644 --- a/Kyoo.Common/Controllers/IProviderManager.cs +++ b/Kyoo.Common/Controllers/IProviderManager.cs @@ -7,7 +7,7 @@ namespace Kyoo.Controllers public interface IProviderManager { Task GetCollectionFromName(string name, Library library); - Task GetShowFromName(string showName, string showPath, Library library); + Task GetShowFromName(string showName, string showPath, bool isMovie, Library library); Task GetSeason(Show show, long seasonNumber, Library library); Task GetEpisode(Show show, string episodePath, long seasonNumber, long episodeNumber, long absoluteNumber, Library library); Task> GetPeople(Show show, Library library); diff --git a/Kyoo/Controllers/Crawler.cs b/Kyoo/Controllers/Crawler.cs index 9825d407..e2ffe9d9 100644 --- a/Kyoo/Controllers/Crawler.cs +++ b/Kyoo/Controllers/Crawler.cs @@ -81,12 +81,10 @@ namespace Kyoo.Controllers long absoluteNumber = long.TryParse(match.Groups["Absolute"].Value, out tmp) ? tmp : -1; Collection collection = await GetCollection(collectionName, library); - Show show = await GetShow(showName, showPath, library); - if (seasonNumber == -1 && episodeNumber == -1 && absoluteNumber == -1) - { - show.IsMovie = true; + bool isMovie = seasonNumber == -1 && episodeNumber == -1 && absoluteNumber == -1; + Show show = await GetShow(showName, showPath, isMovie, library); + if (isMovie) _libraryManager.RegisterShow(show); - } else { Season season = await GetSeason(show, seasonNumber, library); @@ -103,12 +101,12 @@ namespace Kyoo.Controllers return _libraryManager.GetCollection(Utility.ToSlug(collectionName)) ?? await _metadataProvider.GetCollectionFromName(collectionName, library); } - private async Task GetShow(string showTitle, string showPath, Library library) + private async Task GetShow(string showTitle, string showPath, bool isMovie, Library library) { Show show = _libraryManager.GetShow(showPath); if (show != null) return show; - show = await _metadataProvider.GetShowFromName(showTitle, showPath, library); + show = await _metadataProvider.GetShowFromName(showTitle, showPath, isMovie, library); show.People = (await _metadataProvider.GetPeople(show, library)).GroupBy(x => x.Slug).Select(x => x.First()) .Select(x => { diff --git a/Kyoo/Controllers/ProviderManager.cs b/Kyoo/Controllers/ProviderManager.cs index c6462c87..26557989 100644 --- a/Kyoo/Controllers/ProviderManager.cs +++ b/Kyoo/Controllers/ProviderManager.cs @@ -59,12 +59,13 @@ namespace Kyoo.Controllers return collection; } - public async Task GetShowFromName(string showName, string showPath, Library library) + public async Task GetShowFromName(string showName, string showPath, bool isMovie, Library library) { - Show show = await GetMetadata(provider => provider.GetShowFromName(showName), library, $"the show {showName}"); + Show show = await GetMetadata(provider => provider.GetShowFromName(showName, isMovie), library, $"the show {showName}"); show.Path = showPath; show.Slug = Utility.ToSlug(showName); show.Title ??= showName; + show.IsMovie = isMovie; await _thumbnailsManager.Validate(show); return show; }