Compare commits

...

3 Commits

Author SHA1 Message Date
2f0fbbd3cb #111 Fix renaming of chapters.
Fixed check if Chapter exists
2024-02-07 15:50:26 +01:00
5bc414fd59 #113 old formatting of fileNames 2024-02-07 15:34:20 +01:00
2eaeadb92c #113 whitespaces 2024-02-07 15:29:42 +01:00

View File

@ -28,12 +28,19 @@ public readonly struct Chapter : IComparable
this.chapterNumber = chapterNumber; this.chapterNumber = chapterNumber;
this.url = url; this.url = url;
string chapterName = string.Concat(LegalCharacters.Matches(name ?? "")); string chapterVolNumStr;
string volStr = volumeNumber is not null ? $"Vol.{volumeNumber} " : ""; if (volumeNumber is not null && volumeNumber.Length > 0)
string chNumberStr = $"Ch.{chapterNumber} "; chapterVolNumStr = $"Vol.{volumeNumber} Ch.{chapterNumber}";
string chNameStr = chapterName.Length > 0 ? $"- {chapterName}" : ""; else
chNameStr = IllegalStrings.Replace(chNameStr, ""); chapterVolNumStr = $"Ch.{chapterNumber}";
this.fileName = $"{volStr}{chNumberStr}{chNameStr}";
if (name is not null && name.Length > 0)
{
string chapterName = IllegalStrings.Replace(string.Concat(LegalCharacters.Matches(name)), "");
this.fileName = $"{chapterVolNumStr} - {chapterName}";
}
else
this.fileName = chapterVolNumStr;
} }
public override string ToString() public override string ToString()
@ -81,23 +88,20 @@ public readonly struct Chapter : IComparable
/// <returns>true if chapter is present</returns> /// <returns>true if chapter is present</returns>
internal bool CheckChapterIsDownloaded(string downloadLocation) internal bool CheckChapterIsDownloaded(string downloadLocation)
{ {
string newFilePath = GetArchiveFilePath(downloadLocation);
if (!Directory.Exists(Path.Join(downloadLocation, parentManga.folderName))) if (!Directory.Exists(Path.Join(downloadLocation, parentManga.folderName)))
return false; return false;
FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, parentManga.folderName)).GetFiles(); FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, parentManga.folderName)).GetFiles();
Regex chapterInfoRex = new(@"Ch\.[0-9.]+"); Regex volChRex = new(@".*Vol(?:ume)?\.?([0-9]+).*Ch(?:apter)?\.?([0-9]+[\.0-9]*).*");
Regex chapterRex = new(@"[0-9]+(\.[0-9]+)?");
if (File.Exists(newFilePath)) Chapter t = this;
return true; return archives.Select(archive => archive.Name).Any(archiveFileName =>
string cn = this.chapterNumber;
if (archives.FirstOrDefault(archive => chapterRex.Match(chapterInfoRex.Match(archive.Name).Value).Value == cn) is { } path)
{ {
File.Move(path.FullName, newFilePath); Match m = volChRex.Match(archiveFileName);
return true; string archiveVolNum = m.Groups[1].Value;
} string archiveChNum = m.Groups[2].Value;
return false; return archiveVolNum == t.volumeNumber &&
archiveChNum == t.chapterNumber;
});
} }
/// <summary> /// <summary>
/// Creates full file path of chapter-archive /// Creates full file path of chapter-archive