diff --git a/Tranga/Connector.cs b/Tranga/Connector.cs index 42ba377..c706df9 100644 --- a/Tranga/Connector.cs +++ b/Tranga/Connector.cs @@ -70,9 +70,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 = Path.Join(downloadLocation, publication.folderName); - if(!Directory.Exists(publicationFolder)) - Directory.CreateDirectory(publicationFolder); + string publicationFolder = publication.CreatePublicationFolder(downloadLocation); DirectoryInfo dirInfo = new (publicationFolder); if (dirInfo.EnumerateFiles().Any(info => info.Name.Contains("cover."))) { diff --git a/Tranga/Publication.cs b/Tranga/Publication.cs index 3cad737..479fbcc 100644 --- a/Tranga/Publication.cs +++ b/Tranga/Publication.cs @@ -50,11 +50,19 @@ public readonly struct Publication this.internalId = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{onlyLowerLetters}{this.year}")); } - public void SaveSeriesInfoJson(string downloadDirectory) + public string CreatePublicationFolder(string downloadDirectory) { string publicationFolder = Path.Join(downloadDirectory, this.folderName); if(!Directory.Exists(publicationFolder)) Directory.CreateDirectory(publicationFolder); + if(RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + File.SetUnixFileMode(publicationFolder, GroupRead | GroupWrite | GroupExecute | OtherRead | OtherWrite | OtherExecute | UserRead | UserWrite | UserExecute); + return publicationFolder; + } + + public void SaveSeriesInfoJson(string downloadDirectory) + { + string publicationFolder = CreatePublicationFolder(downloadDirectory); string seriesInfoPath = Path.Join(publicationFolder, "series.json"); if(!File.Exists(seriesInfoPath)) File.WriteAllText(seriesInfoPath,this.GetSeriesInfoJson()); diff --git a/Tranga/TrangaTasks/DownloadNewChaptersTask.cs b/Tranga/TrangaTasks/DownloadNewChaptersTask.cs index 03c3a80..62bd6f7 100644 --- a/Tranga/TrangaTasks/DownloadNewChaptersTask.cs +++ b/Tranga/TrangaTasks/DownloadNewChaptersTask.cs @@ -14,9 +14,7 @@ public class DownloadNewChaptersTask : TrangaTask Connector connector = taskManager.GetConnector(this.connectorName); //Check if Publication already has a Folder - string publicationFolder = Path.Join(connector.downloadLocation, pub.folderName); - if(!Directory.Exists(publicationFolder)) - Directory.CreateDirectory(publicationFolder); + pub.CreatePublicationFolder(taskManager.settings.downloadLocation); List newChapters = UpdateChapters(connector, pub, language!, ref taskManager.chapterCollection); this.tasksCount = newChapters.Count;