diff --git a/Tranga/Jobs/UpdateMetadata.cs b/Tranga/Jobs/UpdateMetadata.cs index db679a1..20efa1f 100644 --- a/Tranga/Jobs/UpdateMetadata.cs +++ b/Tranga/Jobs/UpdateMetadata.cs @@ -29,9 +29,7 @@ public class UpdateMetadata : Job if(updatedManga.Equals(this.manga)) return Array.Empty(); - cachedPublications.Remove(this.manga); - this.manga = updatedManga; - cachedPublications.Add(updatedManga); + this.manga.UpdateMetadata(updatedManga); this.manga.SaveSeriesInfoJson(settings.downloadLocation, true); if (parentJobId is not null) diff --git a/Tranga/Manga.cs b/Tranga/Manga.cs index d979e90..e23296b 100644 --- a/Tranga/Manga.cs +++ b/Tranga/Manga.cs @@ -11,23 +11,23 @@ namespace Tranga; /// public struct Manga { - public string sortName { get; } + public string sortName { get; private set; } public List authors { get; } // ReSharper disable once UnusedAutoPropertyAccessor.Global public Dictionary altTitles { get; } // ReSharper disable once MemberCanBePrivate.Global - public string? description { get; } + public string? description { get; private set; } public string[] tags { get; } // ReSharper disable once UnusedAutoPropertyAccessor.Global public string? coverUrl { get; } - public string? coverFileNameInCache { get; set; } + public string? coverFileNameInCache { get; } // ReSharper disable once UnusedAutoPropertyAccessor.Global public Dictionary links { get; } // ReSharper disable once MemberCanBePrivate.Global - public int? year { get; } + public int? year { get; private set; } public string? originalLanguage { get; } // ReSharper disable twice MemberCanBePrivate.Global - public string status { get; } + public string status { get; private set; } public ReleaseStatusByte releaseStatus { get; } public enum ReleaseStatusByte : byte { @@ -72,6 +72,17 @@ public struct Manga this.releaseStatus = releaseStatus; } + public void UpdateMetadata(Manga newManga) + { + this.sortName = newManga.sortName; + this.description = newManga.description; + foreach (string author in newManga.authors) + if(this.authors.Contains(author)) + this.authors.Add(author); + this.status = newManga.status; + this.year = newManga.year; + } + public override bool Equals(object? obj) { if (obj is not Manga compareManga)