From 8abd17999b197c4e6591bdeb3dbd89480fbfea83 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 6 May 2020 23:26:01 +0200 Subject: [PATCH] Allowing the rescan to work for a season --- Kyoo/Tasks/ReScan.cs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Kyoo/Tasks/ReScan.cs b/Kyoo/Tasks/ReScan.cs index 846b7033..79f33282 100644 --- a/Kyoo/Tasks/ReScan.cs +++ b/Kyoo/Tasks/ReScan.cs @@ -42,9 +42,8 @@ namespace Kyoo.Tasks case "show": await ReScanShow(slug); break; - //case "season": - // await ReScanSeason(slug): - default: + case "season": + await ReScanSeason(slug); break; } } @@ -67,6 +66,21 @@ namespace Kyoo.Tasks if (orphans.Any()) await Task.WhenAll(orphans.Select(x => ReScanEpisode(old, x))); } + + private async Task ReScanSeason(string seasonSlug) + { + string[] infos = seasonSlug.Split('-'); + if (infos.Length != 2 || int.TryParse(infos[1], out int seasonNumber)) + return; + string slug = infos[0]; + Show show = _database.Shows.FirstOrDefault(x => x.Slug == slug); + if (show == null) + return; + Season old = _database.Seasons.FirstOrDefault(x => x.SeasonNumber == seasonNumber && x.Show.ID == show.ID); + if (old == null) + return; + await ReScanSeason(show, old); + } private async Task ReScanSeason(Show show, Season old) { @@ -79,11 +93,6 @@ namespace Kyoo.Tasks await Task.WhenAll(old.Episodes.Select(x => ReScanEpisode(show, x))); } - // private async Task ReScanSeason(string slug) - // { - // - // } - private async Task ReScanEpisode(Show show, Episode old) { Library library = _libraryManager.GetLibraryForShow(show.Slug);