2
0

Compare commits

..

3 Commits

View File

@ -84,24 +84,26 @@ public readonly struct Chapter : IComparable
/// <returns>true if chapter is present</returns> /// <returns>true if chapter is present</returns>
internal bool CheckChapterIsDownloaded() internal bool CheckChapterIsDownloaded()
{ {
if (!Directory.Exists(Path.Join(TrangaSettings.downloadLocation, parentManga.folderName))) string mangaDirectory = Path.Join(TrangaSettings.downloadLocation, parentManga.folderName);
if (!Directory.Exists(mangaDirectory))
return false; return false;
FileInfo[] archives = new DirectoryInfo(Path.Join(TrangaSettings.downloadLocation, parentManga.folderName)).GetFiles().Where(file => file.Name.Split('.')[^1] == "cbz").ToArray(); FileInfo[] archives = new DirectoryInfo(mangaDirectory).GetFiles("*.cbz");
Regex volChRex = new(@"(?:Vol(?:ume)?\.([0-9]+)\D*)?Ch(?:apter)?\.([0-9]+(?:\.[0-9]+)*)"); Regex volChRex = new(@"(?:Vol(?:ume)?\.([0-9]+)\D*)?Ch(?:apter)?\.([0-9]+(?:\.[0-9]+)*)");
Chapter t = this; Chapter t = this;
string thisPath = GetArchiveFilePath(); string correctPath = GetArchiveFilePath();
FileInfo? archive = archives.FirstOrDefault(archive => FileInfo? archive = archives.FirstOrDefault(archive =>
{ {
Match m = volChRex.Match(archive.Name); Match m = volChRex.Match(archive.Name);
string archiveVolNum = m.Groups[1].Success ? m.Groups[1].Value : "0"; /*Uncommenting this section will only allow *Version without Volume number* -> *Version with Volume number* but not the other way
string archiveChNum = m.Groups[2].Value; if (m.Groups[1].Success)
return archiveVolNum == t.volumeNumber && archiveChNum == t.chapterNumber || return m.Groups[1].Value == t.volumeNumber && m.Groups[2].Value == t.chapterNumber;
archiveVolNum == "0" && archiveChNum == t.chapterNumber; else*/
return m.Groups[2].Value == t.chapterNumber;
}); });
if(archive is not null && thisPath != archive.FullName) if(archive is not null && archive.FullName != correctPath)
archive.MoveTo(thisPath, true); archive.MoveTo(correctPath, true);
return archive is not null; return (archive is not null);
} }
/// <summary> /// <summary>
/// Creates full file path of chapter-archive /// Creates full file path of chapter-archive