Connector use TrangaSettings instead of own values for imageCache and downloadLocation
This commit is contained in:
parent
4cb3694cd5
commit
f66ab7d40b
@ -15,24 +15,18 @@ namespace Tranga;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class Connector
|
public abstract class Connector
|
||||||
{
|
{
|
||||||
internal string downloadLocation { get; } //Location of local files
|
protected TrangaSettings settings { get; }
|
||||||
protected DownloadClient downloadClient { get; init; }
|
protected DownloadClient downloadClient { get; init; } = null!;
|
||||||
|
|
||||||
protected readonly Logger? logger;
|
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.logger = logger;
|
||||||
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
if (!Directory.Exists(settings.coverImageCache))
|
||||||
{
|
Directory.CreateDirectory(settings.coverImageCache);
|
||||||
//RequestTypes for RateLimits
|
|
||||||
}, logger);
|
|
||||||
this._imageCachePath = imageCachePath;
|
|
||||||
if (!Directory.Exists(imageCachePath))
|
|
||||||
Directory.CreateDirectory(this._imageCachePath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract string name { get; } //Name of the Connector (e.g. Website)
|
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}");
|
logger?.WriteLine(this.GetType().ToString(), $"Cloning cover {publication.sortName} -> {publication.internalId}");
|
||||||
//Check if Publication already has a Folder and cover
|
//Check if Publication already has a Folder and cover
|
||||||
string publicationFolder = publication.CreatePublicationFolder(downloadLocation);
|
string publicationFolder = publication.CreatePublicationFolder(settings.downloadLocation);
|
||||||
DirectoryInfo dirInfo = new (publicationFolder);
|
DirectoryInfo dirInfo = new (publicationFolder);
|
||||||
if (dirInfo.EnumerateFiles().Any(info => info.Name.Contains("cover", StringComparison.InvariantCultureIgnoreCase)))
|
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)
|
public bool CheckChapterIsDownloaded(Publication publication, Chapter chapter)
|
||||||
{
|
{
|
||||||
string newFilePath = GetArchiveFilePath(publication, 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;
|
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]+");
|
Regex chapterRex = new(@"(Vol.[0-9]*)*Ch.[0-9]+");
|
||||||
|
|
||||||
if (File.Exists(newFilePath))
|
if (File.Exists(newFilePath))
|
||||||
@ -211,7 +205,7 @@ public abstract class Connector
|
|||||||
/// <returns>Filepath</returns>
|
/// <returns>Filepath</returns>
|
||||||
protected string GetArchiveFilePath(Publication publication, Chapter chapter)
|
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -289,7 +283,7 @@ public abstract class Connector
|
|||||||
{
|
{
|
||||||
string[] split = url.Split('/');
|
string[] split = url.Split('/');
|
||||||
string filename = split[^1];
|
string filename = split[^1];
|
||||||
string saveImagePath = Path.Join(_imageCachePath, filename);
|
string saveImagePath = Path.Join(settings.coverImageCache, filename);
|
||||||
|
|
||||||
if (File.Exists(saveImagePath))
|
if (File.Exists(saveImagePath))
|
||||||
return filename;
|
return filename;
|
||||||
|
@ -19,7 +19,7 @@ public class MangaDex : Connector
|
|||||||
Author,
|
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";
|
name = "MangaDex";
|
||||||
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
||||||
|
@ -11,7 +11,7 @@ public class MangaKatana : Connector
|
|||||||
{
|
{
|
||||||
public override string name { get; }
|
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.name = "MangaKatana";
|
||||||
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
||||||
|
@ -11,7 +11,7 @@ public class Manganato : Connector
|
|||||||
{
|
{
|
||||||
public override string name { get; }
|
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.name = "Manganato";
|
||||||
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
||||||
|
@ -16,8 +16,7 @@ public class Mangasee : Connector
|
|||||||
private IBrowser? _browser = null;
|
private IBrowser? _browser = null;
|
||||||
private const string ChromiumVersion = "1154303";
|
private const string ChromiumVersion = "1154303";
|
||||||
|
|
||||||
public Mangasee(string downloadLocation, string imageCachePath, Logger? logger) : base(downloadLocation,
|
public Mangasee(TrangaSettings settings, Logger? logger = null) : base(settings, logger)
|
||||||
imageCachePath, logger)
|
|
||||||
{
|
{
|
||||||
this.name = "Mangasee";
|
this.name = "Mangasee";
|
||||||
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
this.downloadClient = new DownloadClient(new Dictionary<byte, int>()
|
||||||
|
@ -25,10 +25,10 @@ public class TaskManager
|
|||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
this._connectors = new Connector[]
|
this._connectors = new Connector[]
|
||||||
{
|
{
|
||||||
new MangaDex(settings.downloadLocation, settings.coverImageCache, logger),
|
new MangaDex(settings, logger),
|
||||||
new Manganato(settings.downloadLocation, settings.coverImageCache, logger),
|
new Manganato(settings, logger),
|
||||||
new Mangasee(settings.downloadLocation, settings.coverImageCache, logger),
|
new Mangasee(settings, logger),
|
||||||
new MangaKatana(settings.downloadLocation, settings.coverImageCache, logger)
|
new MangaKatana(settings, logger)
|
||||||
};
|
};
|
||||||
|
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
@ -27,7 +27,7 @@ public class MonitorPublicationTask : TrangaTask
|
|||||||
|
|
||||||
connector.CopyCoverFromCacheToDownloadLocation(publication, taskManager.settings);
|
connector.CopyCoverFromCacheToDownloadLocation(publication, taskManager.settings);
|
||||||
|
|
||||||
publication.SaveSeriesInfoJson(connector.downloadLocation);
|
publication.SaveSeriesInfoJson(taskManager.settings.downloadLocation);
|
||||||
|
|
||||||
foreach (Chapter newChapter in newChapters)
|
foreach (Chapter newChapter in newChapters)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user