diff --git a/Tranga/Connector.cs b/Tranga/Connector.cs
index d0f6783..3fad1f4 100644
--- a/Tranga/Connector.cs
+++ b/Tranga/Connector.cs
@@ -186,15 +186,21 @@ public abstract class Connector
/// true if chapter is present
public bool CheckChapterIsDownloaded(Publication publication, Chapter chapter)
{
- Regex legalCharacters = new Regex(@"([A-z]*[0-9]* *\.*-*,*\]*\[*'*\'*\)*\(*~*!*)*");
- string oldFilePath = Path.Join(downloadLocation, publication.folderName, $"{string.Concat(legalCharacters.Matches(chapter.name ?? ""))} - V{chapter.volumeNumber}C{chapter.chapterNumber} - {chapter.sortNumber}.cbz");
- string oldFilePath2 = Path.Join(downloadLocation, publication.folderName, $"{string.Concat(legalCharacters.Matches(chapter.name ?? ""))} - VC{chapter.chapterNumber} - {chapter.chapterNumber}.cbz");
string newFilePath = GetArchiveFilePath(publication, chapter);
- if (File.Exists(oldFilePath))
- File.Move(oldFilePath, newFilePath);
- else if (File.Exists(oldFilePath2))
- File.Move(oldFilePath2, newFilePath);
- return File.Exists(newFilePath);
+ FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, publication.folderName)).GetFiles("*.cbz");
+ Regex chapterRex = new(@"(Vol.[0-9]*)*Ch.[0-9]+");
+
+ if (File.Exists(newFilePath))
+ return true;
+
+ if (archives.FirstOrDefault(archive =>
+ chapterRex.Match(archive.Name).Value.Split("Ch.")[^1] == chapter.chapterNumber) is { } path)
+ {
+ logger?.WriteLine(this.GetType().ToString(), "Move existing Chapter to new name.");
+ File.Move(path.FullName, newFilePath);
+ return true;
+ }
+ return false;
}
///