FF-1524: Added more comic options

This commit is contained in:
John Andrews
2024-05-08 12:46:43 +12:00
parent 21244b993e
commit cf75cf9122
4 changed files with 64 additions and 1 deletions

View File

@@ -187,6 +187,10 @@ public class CreateComicInfo : Node
{
name += " - Annual " + info.Number;
}
else if (info.Number > 1960)
{
name += " - " + info.Number;
}
else
{
// Pad the number with leading zeros based on the specified number of digits
@@ -234,8 +238,9 @@ public class CreateComicInfo : Node
var yearMatch = Regex.Match(info.Series, @"\((?<year>(19|20)\d{2})\)");
int? year = null;
bool yearInFolder = yearMatch.Success;
if (yearMatch.Success)
if (yearInFolder)
{
year = int.Parse(yearMatch.Groups["year"].Value);
info.Volume = year.ToString();
@@ -272,6 +277,12 @@ public class CreateComicInfo : Node
info.Number = year.Value;
return info;
}
if (year != null && yearInFolder == false)
{
info.Number = year;
return info;
}
return Result<ComicInfo>.Fail("Invalid filename: " + shortname);
}

View File

@@ -229,6 +229,58 @@ public class ComicInfoTests : TestBase
Assert.AreEqual("X-Man - Annual 2004.cbz", name.Value);
}
[TestMethod]
public void AnnualNoAnnual()
{
var result = CreateComicInfo.GetInfo(Logger,
"/home/john/Comics/Marvel/X-Men/X-Man/X-Man 2004.cbz",
"/home/john/Comics",
true);
TestContext.WriteLine(Logger.ToString());
Assert.IsFalse(result.IsFailed);
var info = result.Value;
Assert.IsNotNull(info);
Assert.AreEqual("Marvel", info.Publisher);
Assert.AreEqual("X-Man", info.Series);
Assert.AreEqual(2004, info.Number);
var xml = CreateComicInfo.SerializeToXml(info);
Assert.IsFalse(string.IsNullOrWhiteSpace(xml));
TestContext.WriteLine(new string('-', 70));
TestContext.WriteLine(xml);
var name = CreateComicInfo.GetNewName(info, "cbz", 3);
Assert.AreEqual("X-Man - 2004.cbz", name.Value);
}
[TestMethod]
public void AnnualNoAnnual2()
{
var result = CreateComicInfo.GetInfo(Logger,
"/home/john/Comics/Zenoscope/Grimm Fairy Tales Specials/Grimm Fairy Tales 2016 Special (2016) (Digital).cbz",
"/home/john/Comics",
true);
TestContext.WriteLine(Logger.ToString());
Assert.IsFalse(result.IsFailed);
var info = result.Value;
Assert.IsNotNull(info);
Assert.AreEqual("Zenoscope", info.Publisher);
Assert.AreEqual("Grimm Fairy Tales Specials", info.Series);
Assert.AreEqual(2016, info.Number);
var xml = CreateComicInfo.SerializeToXml(info);
Assert.IsFalse(string.IsNullOrWhiteSpace(xml));
TestContext.WriteLine(new string('-', 70));
TestContext.WriteLine(xml);
var name = CreateComicInfo.GetNewName(info, "cbz", 3);
Assert.AreEqual("Grimm Fairy Tales Specials - 2016.cbz", name.Value);
}
// [TestMethod]
public void PhysicalFileTest()
{

Binary file not shown.

Binary file not shown.