FF-1524: Added more comic options

This commit is contained in:
John Andrews
2024-05-08 17:29:54 +12:00
parent 6dfa6c24d0
commit affbeafff3
3 changed files with 59 additions and 1 deletions

View File

@@ -339,7 +339,8 @@ public class ComicConverter: Node
var metadata = new Dictionary<string, object>();
metadata.Add("Format", format);
metadata.Add("Pages", GetPageCount(args, format, file));
if(GetPageCount(args, format, file).Success(out var count))
metadata.Add("Pages", count);
args.SetMetadata(metadata);
args.Logger?.ILog("Setting metadata: " + format);

View File

@@ -235,6 +235,11 @@ public class CreateComicInfo : Node
// Publisher / Series (year?) / Title - #number (of #)- Issue Title.extension
ComicInfo info = new();
info.Series = FileHelper.GetDirectoryName(libraryFile);
if (info.Series.ToLowerInvariant() is "annuals" or "specials")
{
// go up one more directory
info.Series = FileHelper.GetDirectoryName(FileHelper.GetDirectory(libraryFile));
}
var yearMatch = Regex.Match(info.Series, @"\((?<year>(19|20)\d{2})\)");
int? year = null;

View File

@@ -255,7 +255,59 @@ public class ComicInfoTests : TestBase
Assert.AreEqual("X-Man - 2004.cbz", name.Value);
}
[TestMethod]
public void AnnualsFolder()
{
var result = CreateComicInfo.GetInfo(Logger,
"/home/john/Comics/Marvel/X-Men/X-Man/Annuals/X-Man Annual 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("Annual", info.Volume);
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 - Annual 2004.cbz", name.Value);
}
[TestMethod]
public void SpecialsFolder()
{
var result = CreateComicInfo.GetInfo(Logger,
"/home/john/Comics/Marvel/X-Men/X-Man/Specials/X-Man Annual 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("Annual", info.Volume);
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 - Annual 2004.cbz", name.Value);
}
[TestMethod]
public void AnnualNoAnnual2()
{