From f9e017ec1138e7c8b40beda4a9d4518924a1d840 Mon Sep 17 00:00:00 2001 From: glax Date: Thu, 4 Sep 2025 21:46:23 +0200 Subject: [PATCH] Fix RetrieveMangaChaptersFromMangaconnector Chapters not getting added to Manga --- ...etrieveMangaChaptersFromMangaconnectorWorker.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/API/Workers/MangaDownloadWorkers/RetrieveMangaChaptersFromMangaconnectorWorker.cs b/API/Workers/MangaDownloadWorkers/RetrieveMangaChaptersFromMangaconnectorWorker.cs index b428661..f08d3ab 100644 --- a/API/Workers/MangaDownloadWorkers/RetrieveMangaChaptersFromMangaconnectorWorker.cs +++ b/API/Workers/MangaDownloadWorkers/RetrieveMangaChaptersFromMangaconnectorWorker.cs @@ -36,16 +36,18 @@ public class RetrieveMangaChaptersFromMangaconnectorWorker(MangaConnectorId m.Chapters).LoadAsync(CancellationToken); - // This gets all chapters that are not downloaded + // Retrieve available Chapters from Connector (Chapter chapter, MangaConnectorId chapterId)[] allChapters = mangaConnector.GetChapters(mangaConnectorId, language).DistinctBy(c => c.Item1.Key).ToArray(); - - int beforeAmount = manga.Chapters.Count; Log.Debug($"Got {allChapters.Length} chapters from connector."); - DbContext.Entry(manga).Collection(m => m.Chapters).CurrentValue = manga.Chapters.UnionBy(allChapters.Select(c => c.chapter), c => c.Key); - int afterAmount = manga.Chapters.Count; - Log.Debug($"Got {afterAmount} new chapters."); + // Filter for new Chapters + List<(Chapter chapter, MangaConnectorId chapterId)> newChapters = allChapters.Where<(Chapter chapter, MangaConnectorId chapterId)>(ch => + manga.Chapters.All(c => c.Key != ch.chapter.Key)).ToList(); + Log.Debug($"Got {newChapters.Count} new chapters."); + + // Add Chapters to Manga + manga.Chapters = manga.Chapters.Union(newChapters.Select(ch => ch.chapter)).ToList(); if(await DbContext.Sync(CancellationToken) is { success: false } e) Log.Error($"Failed to save database changes: {e.exceptionMessage}");