From 1db5b8b6449b5a824fb68b7d0ac551dca50f085f Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Fri, 1 May 2020 02:06:00 +0200 Subject: [PATCH] Finishing metadataID handling on the register --- Kyoo/Controllers/LibraryManager.cs | 6 +++--- Kyoo/Tasks/Crawler.cs | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Kyoo/Controllers/LibraryManager.cs b/Kyoo/Controllers/LibraryManager.cs index 4e8b92f6..12a09c3f 100644 --- a/Kyoo/Controllers/LibraryManager.cs +++ b/Kyoo/Controllers/LibraryManager.cs @@ -448,7 +448,7 @@ namespace Kyoo.Controllers public IEnumerable ValidateExternalIDs(IEnumerable ids) { - return ids.Select(x => + return ids?.Select(x => { x.Provider = _database.Providers.FirstOrDefault(y => y.Name == x.Provider.Name) ?? x.Provider; x.ProviderID = x.Provider.ID; @@ -480,8 +480,8 @@ namespace Kyoo.Controllers { if (episode == null) return 0; - // if (!_database.Entry(episode).IsKeySet) - _database.Episodes.Add(episode); + if (!_database.Entry(episode).IsKeySet) + _database.Add(episode); _database.SaveChanges(); return episode.ID; } diff --git a/Kyoo/Tasks/Crawler.cs b/Kyoo/Tasks/Crawler.cs index 0f4a33dc..c30f19b1 100644 --- a/Kyoo/Tasks/Crawler.cs +++ b/Kyoo/Tasks/Crawler.cs @@ -137,7 +137,10 @@ namespace Kyoo.Controllers .Select(x => { People existing = _libraryManager.GetPeopleBySlug(x.Slug); - return existing != null ? new PeopleLink(existing, show, x.Role, x.Type) : x; + if (existing != null) + return new PeopleLink(existing, show, x.Role, x.Type); + x.People.ExternalIDs = _libraryManager.ValidateExternalIDs(x.People.ExternalIDs); + return x; }).ToList(); show.People = await _thumbnailsManager.Validate(show.People); show.Genres = show.Genres?.Select(x => @@ -169,8 +172,6 @@ namespace Kyoo.Controllers Episode episode = await _metadataProvider.GetEpisode(show, episodePath, season?.SeasonNumber ?? -1, episodeNumber, absoluteNumber, library); if (season == null) season = await GetSeason(show, episode.SeasonNumber, library); - else - episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs); episode.Season = season; if (season == null) { @@ -178,6 +179,7 @@ namespace Kyoo.Controllers return null; } + episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs); await _thumbnailsManager.Validate(episode); await GetTracks(episode); return episode;