From f66ab7d40b07f1c4c9e9f758b2342b94a67b4232 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 27 Jun 2023 22:57:44 +0200 Subject: [PATCH] Connector use TrangaSettings instead of own values for imageCache and downloadLocation --- Tranga/Connector.cs | 28 ++++++++------------ Tranga/Connectors/MangaDex.cs | 2 +- Tranga/Connectors/MangaKatana.cs | 2 +- Tranga/Connectors/Manganato.cs | 2 +- Tranga/Connectors/Mangasee.cs | 3 +-- Tranga/TaskManager.cs | 8 +++--- Tranga/TrangaTasks/MonitorPublicationTask.cs | 2 +- 7 files changed, 20 insertions(+), 27 deletions(-) diff --git a/Tranga/Connector.cs b/Tranga/Connector.cs index 1082a04..8f54bc1 100644 --- a/Tranga/Connector.cs +++ b/Tranga/Connector.cs @@ -15,24 +15,18 @@ namespace Tranga; /// public abstract class Connector { - internal string downloadLocation { get; } //Location of local files - protected DownloadClient downloadClient { get; init; } + protected TrangaSettings settings { get; } + protected DownloadClient downloadClient { get; init; } = null!; protected readonly Logger? logger; - private readonly string _imageCachePath; - protected Connector(string downloadLocation, string imageCachePath, Logger? logger) + protected Connector(TrangaSettings settings, Logger? logger = null) { - this.downloadLocation = downloadLocation; + this.settings = settings; this.logger = logger; - this.downloadClient = new DownloadClient(new Dictionary() - { - //RequestTypes for RateLimits - }, logger); - this._imageCachePath = imageCachePath; - if (!Directory.Exists(imageCachePath)) - Directory.CreateDirectory(this._imageCachePath); + if (!Directory.Exists(settings.coverImageCache)) + Directory.CreateDirectory(settings.coverImageCache); } public abstract string name { get; } //Name of the Connector (e.g. Website) @@ -145,7 +139,7 @@ public abstract class Connector { logger?.WriteLine(this.GetType().ToString(), $"Cloning cover {publication.sortName} -> {publication.internalId}"); //Check if Publication already has a Folder and cover - string publicationFolder = publication.CreatePublicationFolder(downloadLocation); + string publicationFolder = publication.CreatePublicationFolder(settings.downloadLocation); DirectoryInfo dirInfo = new (publicationFolder); if (dirInfo.EnumerateFiles().Any(info => info.Name.Contains("cover", StringComparison.InvariantCultureIgnoreCase))) { @@ -187,9 +181,9 @@ public abstract class Connector public bool CheckChapterIsDownloaded(Publication publication, Chapter chapter) { string newFilePath = GetArchiveFilePath(publication, chapter); - if (!Directory.Exists(Path.Join(downloadLocation, publication.folderName))) + if (!Directory.Exists(Path.Join(settings.downloadLocation, publication.folderName))) return false; - FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, publication.folderName)).GetFiles(); + FileInfo[] archives = new DirectoryInfo(Path.Join(settings.downloadLocation, publication.folderName)).GetFiles(); Regex chapterRex = new(@"(Vol.[0-9]*)*Ch.[0-9]+"); if (File.Exists(newFilePath)) @@ -211,7 +205,7 @@ public abstract class Connector /// Filepath protected string GetArchiveFilePath(Publication publication, Chapter chapter) { - return Path.Join(downloadLocation, publication.folderName, $"{publication.folderName} - {chapter.fileName}.cbz"); + return Path.Join(settings.downloadLocation, publication.folderName, $"{publication.folderName} - {chapter.fileName}.cbz"); } /// @@ -289,7 +283,7 @@ public abstract class Connector { string[] split = url.Split('/'); string filename = split[^1]; - string saveImagePath = Path.Join(_imageCachePath, filename); + string saveImagePath = Path.Join(settings.coverImageCache, filename); if (File.Exists(saveImagePath)) return filename; diff --git a/Tranga/Connectors/MangaDex.cs b/Tranga/Connectors/MangaDex.cs index 422975d..1a25430 100644 --- a/Tranga/Connectors/MangaDex.cs +++ b/Tranga/Connectors/MangaDex.cs @@ -19,7 +19,7 @@ public class MangaDex : Connector Author, } - public MangaDex(string downloadLocation, string imageCachePath, Logger? logger) : base(downloadLocation, imageCachePath, logger) + public MangaDex(TrangaSettings settings, Logger? logger = null) : base(settings, logger) { name = "MangaDex"; this.downloadClient = new DownloadClient(new Dictionary() diff --git a/Tranga/Connectors/MangaKatana.cs b/Tranga/Connectors/MangaKatana.cs index c3649ed..5376828 100644 --- a/Tranga/Connectors/MangaKatana.cs +++ b/Tranga/Connectors/MangaKatana.cs @@ -11,7 +11,7 @@ public class MangaKatana : Connector { public override string name { get; } - public MangaKatana(string downloadLocation, string imageCachePath, Logger? logger) : base(downloadLocation, imageCachePath, logger) + public MangaKatana(TrangaSettings settings, Logger? logger = null) : base(settings, logger) { this.name = "MangaKatana"; this.downloadClient = new DownloadClient(new Dictionary() diff --git a/Tranga/Connectors/Manganato.cs b/Tranga/Connectors/Manganato.cs index 8378088..98aae52 100644 --- a/Tranga/Connectors/Manganato.cs +++ b/Tranga/Connectors/Manganato.cs @@ -11,7 +11,7 @@ public class Manganato : Connector { public override string name { get; } - public Manganato(string downloadLocation, string imageCachePath, Logger? logger) : base(downloadLocation, imageCachePath, logger) + public Manganato(TrangaSettings settings, Logger? logger = null) : base(settings, logger) { this.name = "Manganato"; this.downloadClient = new DownloadClient(new Dictionary() diff --git a/Tranga/Connectors/Mangasee.cs b/Tranga/Connectors/Mangasee.cs index 6753af6..a583495 100644 --- a/Tranga/Connectors/Mangasee.cs +++ b/Tranga/Connectors/Mangasee.cs @@ -16,8 +16,7 @@ public class Mangasee : Connector private IBrowser? _browser = null; private const string ChromiumVersion = "1154303"; - public Mangasee(string downloadLocation, string imageCachePath, Logger? logger) : base(downloadLocation, - imageCachePath, logger) + public Mangasee(TrangaSettings settings, Logger? logger = null) : base(settings, logger) { this.name = "Mangasee"; this.downloadClient = new DownloadClient(new Dictionary() diff --git a/Tranga/TaskManager.cs b/Tranga/TaskManager.cs index 037f434..351e497 100644 --- a/Tranga/TaskManager.cs +++ b/Tranga/TaskManager.cs @@ -25,10 +25,10 @@ public class TaskManager this.logger = logger; this._connectors = new Connector[] { - new MangaDex(settings.downloadLocation, settings.coverImageCache, logger), - new Manganato(settings.downloadLocation, settings.coverImageCache, logger), - new Mangasee(settings.downloadLocation, settings.coverImageCache, logger), - new MangaKatana(settings.downloadLocation, settings.coverImageCache, logger) + new MangaDex(settings, logger), + new Manganato(settings, logger), + new Mangasee(settings, logger), + new MangaKatana(settings, logger) }; this.settings = settings; diff --git a/Tranga/TrangaTasks/MonitorPublicationTask.cs b/Tranga/TrangaTasks/MonitorPublicationTask.cs index e36cf44..df84e08 100644 --- a/Tranga/TrangaTasks/MonitorPublicationTask.cs +++ b/Tranga/TrangaTasks/MonitorPublicationTask.cs @@ -27,7 +27,7 @@ public class MonitorPublicationTask : TrangaTask connector.CopyCoverFromCacheToDownloadLocation(publication, taskManager.settings); - publication.SaveSeriesInfoJson(connector.downloadLocation); + publication.SaveSeriesInfoJson(taskManager.settings.downloadLocation); foreach (Chapter newChapter in newChapters) {