From cf75cf9122b3db3c8593f3598124ee15db14fdb0 Mon Sep 17 00:00:00 2001 From: John Andrews Date: Wed, 8 May 2024 12:46:43 +1200 Subject: [PATCH] FF-1524: Added more comic options --- ComicNodes/Comics/CreateComicInfo.cs | 13 ++++++- ComicNodes/Tests/ComicInfoTests.cs | 52 +++++++++++++++++++++++++++ FileFlows.Plugin.dll | Bin 139264 -> 139264 bytes FileFlows.Plugin.pdb | Bin 33916 -> 33916 bytes 4 files changed, 64 insertions(+), 1 deletion(-) diff --git a/ComicNodes/Comics/CreateComicInfo.cs b/ComicNodes/Comics/CreateComicInfo.cs index 7d3fca78..378c98b6 100644 --- a/ComicNodes/Comics/CreateComicInfo.cs +++ b/ComicNodes/Comics/CreateComicInfo.cs @@ -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, @"\((?(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.Fail("Invalid filename: " + shortname); } diff --git a/ComicNodes/Tests/ComicInfoTests.cs b/ComicNodes/Tests/ComicInfoTests.cs index 0e3c60f0..421bca23 100644 --- a/ComicNodes/Tests/ComicInfoTests.cs +++ b/ComicNodes/Tests/ComicInfoTests.cs @@ -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() { diff --git a/FileFlows.Plugin.dll b/FileFlows.Plugin.dll index 0076af7fa11a6f4e257fa3f9c41daaf13008b7c4..8348915c0c04d58ac6602e14299a8399de327cf3 100644 GIT binary patch delta 250 zcmZoTz|nAkV?qbZrSO|~8+%%N7`OH?X)p_P0K_v7q+wfzV)(`-Qv z6U$ViRD)zo^At;yB+C>7gA^l!L`xInq-0C8B?*u4ia@a{O)<( z*SYsujl;7VhmR|K-u7x+n9(5A?ca9eJ;iYKDw*%;uTOtm;t;%1=}*q_{uVAOoWkK?A9v1s3w45K3ValtU#{!+vOh zzd)6xC`U(5N2Qw922GF0lu&VLKCG%k|I$;5~M>09>2vqDC5ATXxL$PK)~4}u^( zh1(#%mS~c_IF^$#MNS$>1ud|U2Zc}yn_#PbyqqeKSHWKR1U`jB&ywizRZg3sB~?Ke;4)l=@8Bj(!3;bHewu<@!3&~5ofb!F za5s%xD|Ru>rNxpUJrwkHA5Smh4at_R`}LFPE0q_#dH_ej3L|y4Wz;}`~u8M zF=aw76u>kLt`gJ0>tY%M<_$3g!0S*9r@#Vt;6L!8R!k4HxW#B=D4l*Yl)i#X&<#Cs z9d5%2Ou(ZzxvLMOS$iEop}GJ{)p2c0s9U#$dhGd9x~^MFPwjaiMP&q%HiH`zNalqcKBmfKV!iR7W&gh-!8tlt* zqFZ`rn$)|{tX@bwR!BnVR|)a67SaONl~Uoc$`wCtSJEP9ArA^!H>zaaX)o(R4e&YZ zVWeY7S~+SDI)l2M^`t&lM8oU?dcb<&&b)AEUi6gpCZWNb7DKSXha`rVC=L=K#o&u= z>`OVQ^9>8}1YV~142$Rw27lUR;GV981`HA!f*;`#{0x*GEg|P@35nok2!wEm&gLd@ zMMA0;{~W4 z?YV=>8MTW&C$%eTH+x>3;DOo`T~1$0~cYAx4RK3>S|gN<=&dK81-w5ML36@c0xWO0mZ( z#0ZfMQ7+=~`6LtdJM!qh+l(WxZuc^GZ>u3$<4lRU$r=~R$sIy|-gJDKX@Rl4^I&V^ z(3X}mzkj<}hYswYt=h5GFIn-+;iQ|@zj59+xnuP`JcG76-G;7YQT5c*m#U68tZS6F zoM&lgR1NR%Aw~P*MTc6|ejy1@1{Dab&1D+*ETLw=E^nB0Dd4001 z#!%mh^+)5(QSCeO^*aOPn;)m-8hK1>z4Hg7^6h%Byu&{w42%cZ9F7FXjb2{FmzFif zjr%Ght?{eJ3=PmV@9C)LQ`DsH@ZseJcz)%!=jkOfb+pF3FEJED7kqSWN`ZfVzFHVgi0ym0#) zbGUW;aK+#n4ez8rP(E<*n$M%^TlsAD@L_eEMD}M%!GjG!Bc9(EB-Yl6wbvFjOPaiE zP2z5=s-&tY!Ot{NFZNl~)Mh$)woz&+s4ctN)+tT?Z||ABTR%*Hb8X}74=Na?A7_+U;Ql#^rugl`eSfUt9 za$R6?{k(H6wz_{7|L8r>T+@{jmU(5K4#r|*+V3$P4opW7)1hEGw5G(jbuR8@+^M*$ zv*Dsl4O?ay#%9`A_7<~fzC|$IVl&PCe#nWB?rPIWg)`5E%a~4L!%Wl08vg$P+11`m delta 2757 zcmZwHdsLI>9S88=O9IF}f*>&DCIW%*nm`~)1!M$L!6uLdkX1VzmlR#mg4YgNhQQ{n z9j7Ux9_yK<99kxIG#Z4_P6l|Wiq0#=i5Ebt6yab6aR=wVZ_espJm-9V&+mPnU!M1p z=Y8k)*v##*sok}xC|YrN&iCt#n#V0_Q`%Mv3qE$Twbo!0{M$G`vX}YM`>+Fk565JL z=11+wdu66ByG2GJU6BdNS1u$4s6Y?vI|-H=DnZ5V+u>sS;`$)ji%JQY#o2TLIW zBp`>CpaL~y!CJ_N3aExU1-CX!M-?nJ7!jJG70$pv;2iYBb@(?7!+|$gGQklz4qw1Y z=!J`L4Q|1Gcm$I$122KUf+Z(#2OkK8FkrzLix3Y=NCz$CLLL~P1hzp1)WC;O2cJSC zw7_Zj26~|%Zom*cfG02wFTpmRB^U67C9o`>HBuCkSV(|WP(wDn14U2*+n@q!;6wNv zPQWSXgdVsE*Wosd!Zxk|kHz17_%j+b{~^WYj_yJb))KoxGf00^g`yPEOzsJ`f0DN^XPv z+{DDbK9*3dQbO^dgmlnCF64m$N?@zCUP9%_cf($&g?cy!jc@|YVC+EXg1*-$`T4{W zx{UFM|6lA0a()UoCm~sigf>G{N;GvsH=Ktn@I6exG|T}nHJTh@A&5Yp8cQiKl*+9o z{RO>Dl@ebi#p@s?ClxmsL++{=@=@XaEH_dl1*#$`3|NSTcu+z*XdxH!zyKw%70O{Z z?1fsWx30{sE}~;95jDaIFhd7)K_6VU)`iebRR|5iuSXGngm_TGQ+NUNW(a8@8`i;7 zxU(vR2GT-k6evA}{9qLn!dGB{+wc=qt`4E`)wo5mF_ixHRw%W>x6lh0;Tqh6`|t=R z-{P)5jApF;5?ZESLP|9^=1;w9f4XSR1L&GMfM%_EAc-`Al&;}w0_n6Sh&rL$dd!V+ zEtt+5HNoVN!5uIZkYPj7pnxQJ6Eu(w>!1KO!ait*^DqXEnLLUB3CJ_~l$L2r*{}}y zN?ZJewp4(8Ba~*^(E%{Q5is^4+<|A{q_v}9P=FRTKqVZ8R;@i$#^ZqyfE zpHHmdrX7#QooDQLrawivc=YL$5*E;koTLN?%F4Niyu;iSVP0tT{pQb&;i@y@L`E~{ z|LK3<{`e=~kNCQ~S?Ui)1}?SLWmM*j;Tg1;)T_Ib1b>`-;i=5nCrv9j)w3^?=joQb zVZVP*w_(S}qW88JtrWd@zNtAXD)qY{b5q5;Gl$&_4aMNQE>1(o&Xhgzn>TJ1N)7rO4aq59#0YrN^K4;z`=b}m0=MSD%8sAh9j zq{3i_!C)VF<8%flM;PRZM|gQDtNN8T5%>wRE+^t54l`oYe! zZ#SRxXV!$*dXM)%cHEg-q7j?b1n#a)LC`h$(B=Y|h0lYDpe z$K8guPww=196k70n)bVQ-`UvfcUpO1OLxoJprluqzFvE)Y2@;?lIIuxbEUNFo_fpv z_Pptu(Cn(KHlB$E-u$~v3?pGo-zTgOmnw>)i^K&AS)oFjuP79Y3!}xqQAlI*3lwn$ z1+ijDk<1{KMMs<0Cnksbmob(P7)uRf`3qxdW-J|y|TrbEJX zq?;3p)ebIY+^M*$9mYkP>q}=CX4w4EmR!bXzD4l!wqf(Dt@rHtn65F8>{`Hc;4