From 301791d3fc0f152942b542e3d98ebddc0af528f2 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Mon, 13 Feb 2017 00:32:55 +0100 Subject: [PATCH] Fixes, new version number: 0.9.2 Some problems related to the Bundles and .properties files were fixed --- README.md | 10 +++---- VERSION | 2 +- ...es.jar => nikiroo-utils-0.9.5-sources.jar} | Bin 33252 -> 34033 bytes src/be/nikiroo/fanfix/Instance.java | 2 ++ src/be/nikiroo/fanfix/Library.java | 22 +++++++++++++- src/be/nikiroo/fanfix/data/MetaData.java | 27 +++++++++++++++++- 6 files changed, 55 insertions(+), 8 deletions(-) rename libs/{nikiroo-utils-0.9.4-sources.jar => nikiroo-utils-0.9.5-sources.jar} (83%) diff --git a/README.md b/README.md index 37865b7a..92f59293 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,9 @@ We support a few file types for local story conversion (both as input and as out ## Supported platforms -Any platform with at lest Java 1.5 on it should be ok. +Any platform with at lest Java 1.6 on it should be ok. -If you have any problems to compile it with a supported Java version (1.4 won't work, but you may try to cross-compile; 1.8 had been tested and works), please contact me. +If you have any problems to compile it with a supported Java version (1.5 won't work, but you may try to cross-compile or change the Bundle.java class from the utilities; 1.6 and 1.8 have been tested and work), please contact me. ## Usage @@ -71,10 +71,10 @@ You can also import the java sources into, say, [Eclipse](https://eclipse.org/), ### Dependant libraries (included) -- libs/nikiroo-utils-sources-0.9.2.jar: some shared utility functions I also use elsewhere -- [libs/unbescape-1.1.4-sources.jar](https://github.com/unbescape/unbescape): a nice library to escape/unescape a lot of text formats; I only use it for HTML +- libs/nikiroo-utils-sources.jar: some shared utility functions I also use elsewhere +- [libs/unbescape-sources.jar](https://github.com/unbescape/unbescape): a nice library to escape/unescape a lot of text formats; I only use it for HTML -Nothing else but Java 1.5+. +Nothing else but Java 1.6+. Note that calling ```make libs``` will export the libraries into the src/ directory. diff --git a/VERSION b/VERSION index f374f666..2003b639 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.1 +0.9.2 diff --git a/libs/nikiroo-utils-0.9.4-sources.jar b/libs/nikiroo-utils-0.9.5-sources.jar similarity index 83% rename from libs/nikiroo-utils-0.9.4-sources.jar rename to libs/nikiroo-utils-0.9.5-sources.jar index 49bee8e49348622c1ebfd66a51bc8126784f5fe7..7e424791ebb8637014546b728cc47b6f1b97eee7 100644 GIT binary patch delta 4012 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 delta 3311 zcmV!gcQGgo9gUBw0XG}Iuq|s zUOspfi9;juEZqp1rukJVOpfFVWeTk>mAI5?rAh&G^H>AL1OSB0;E-yi3W*|`!tcbP zm-z}#O%jbeGDTV|WtMqTM))27eJd+iCLXW_9`sqo`m z8OK&$0rLw0at{yKyW8t(p6b|2gCF?GOsEe=Wl1S!Kn>1$Dt_7CS{Jzi3xlURKwwxF zX0rxWc{>FE%~O%d6>sQElx$m|VkOt0j4jm07CgZL_za0ZQ&&y}R=3y8u@dL{Qe{Lo zA{_e9e+mM*px@q~6h)O84f54lX=D~FM~R;le$0A=kbIXAqTsqi@9>A>uv12$*B5FbtJH*(3BX-@@;p|iDl+1h zRNpbkMw}Wfv24s9f){x8bzi`%5xD@ql?tE3fA;2~7Y!#K4+K0FVAXHly?Q0|LS(rS ziyR(Pg!pw0j;k_*eg~+nlbuV81%&g7lRn!p^N%d>w{Qj=va~HD_0|uePNpIVZdr7q zgv6yksDy}JX|p60XNpWRIAf?lgk~w>DNEqwETF)^JCj>cfyHE!L%5DD58}T;Z9kCS zf2MBTiiFf?moC%>JVYntD7S4(6Dbv8U_+;cWx2kqJK+*$9$^Z)str#&F{JC&C??Hy)DovY#x@pF4N zqT8>YpPORS3V;?O0_IBSzf9QjeGY{pmL^_`ux=EDErLFi>Fdn=Pn$jP|JzL-kvp23 z(qe7uPQRK>-9dV$u7^xr->#`Ue`OskLB>!z|1q{6!|8~NTnuEhZZ7i@JSB{w3}(+R zBc%Pzgb#c5z&&xVBRp<_cB^%Qoe;7et+{j7(7B=2MB=@M#7S)(Y_Iath*V!FXhvhG z95o@zlBmrg<)BR=AX!|JD{EUR9F%OJzk`;)q>_{R!MZ-vOu-Z~E1@Zte{;YN7f|!L zHVSH0m7TqN8$fw$`GJLiRq7o~WIVF4>xg0ipgORx@U=9{A%){QdRQ?m9H3tK&SI7Y z_SfD-r%M$5GDdE}jt-B6DvG=)+oo}ugPE~LaCQ`0n?P13qJIJ@9|2k9WH|2{Y(gUs zY7e)>6@Tng_uJkJaj8F8e+sFNz`gEFDP88A)iJT$zLP-2!qos z7+r;BG=Y$2OYnI3|6}S}xetYw8hEDNGIRwpj$Ck@A>q*o1!13MV1;A>A?`=ij8EzU zjKE#!VKQ6jlt5w@k@p@gLhh(*l5eO7U>eSEb+*V^19-|I{36o)e<(J@AxP(__QNBD zB|9Q3>(zGqAIP5-@Ko4n3J?~`l8DnB`-`ssFI9ZuTo!`0Dl(bkoJ6?x!waC$Y4kk@ z7Ka=MTP28&G0|Vx%+rpMPyyQngkhpL&~TNK-v>2)Sf?lej!`E^^Pd5kTB1EKB)Vd| zE(pd3iLO5A6w4${e_w2WRmRH#XrnDD*~hZM&Sqj?x?fO?z2QVxhBx$@wRpF7cf}i^ z_}G>UAeLOLa}XlNXjf})H9^1YIqQq(jET0!;!BYJCOd~pJ$3wyKY=^rg+6J0p8z-8qtetY#=o=&nulm ziUyzK&wbAy>>ks%0Fhjy&xOHV5j5i}Jh-VvyP#pvB-{3*H8?$__uoA`c`O2YdTDIt zV+uD5gNU+!c434B3ggnB+%cJAhPAZJ%6YD}xJh8WJ z;)Wwmf3v#{in5W&+`pGUX4!gd4 zUozs@oKjx!X@WhdBwkFV0W7P{Fw9?`bX* zA3LS14mU&>z6)_}ue%I;ZgYRazk}iKQP?wBKsavMcWs;N5E6}*xV0i0cj*Gif9J&} zY&;Z!+OwplW$%mx-GwMp0pPVXFm?QR1ubHB=Tv-?OceaVjY98=TIe+G?S!^l-tq>8 zu4%3X0BFP4wn9Fzo_+b9wjbo`#`>eJG7bIk)YbzsAMLZFx`GMa;PHFDSr|^5F(8?+ zeY3waD%tT!(z>T0?DY&mGrPhif77<{^^G2sI{3Co7i2bU>G?%36^=Ozv4WFz@|qC4 zdc4XtRP;`Mi~9`6EqdnCh!v@KtefZST`u~xY`gKFIx~)X9$r9v!az^$MrkdvzPIT1 zn;x41JI-N`ilJLTAKbU(&_oV+jXQC=hF~v)I7#7O3vkb)h_@^&yvXX4e|%*ZKTflO ztTW^tN3yw}f)^w1Sl<0xE9_2IGLcN6Jv_s*zGe#S{sAsnTrZi9ob+*;9an7u+UmrQ zZ7yz73E^ax$F(R*d!hq(X{e5Ycr?HdB%vk}Mm)=H*q=j4y09}pl|q{2Xmh8-`4iaDO-h8-`4?tABj~lN*2#lQ@Bn zlP-cDljMOPlWT%H0>@R8k%1kPR#_1&P)h*<6aW+e2nYxOwP8$3=aeTm;tK!(pez6Y zCIA2c0000000000002Q(lL3QL0(WDRk%1kPa)UDhjb)ROfgO`;XdRQ`gDL`@X_JwG t6O$l>I|4;&laYZFlW>Ga0)lLlk%1GF%Y+yX5daYY5(NMNynFxv001HPD?$JO diff --git a/src/be/nikiroo/fanfix/Instance.java b/src/be/nikiroo/fanfix/Instance.java index 9c20682f..91902c3b 100644 --- a/src/be/nikiroo/fanfix/Instance.java +++ b/src/be/nikiroo/fanfix/Instance.java @@ -47,7 +47,9 @@ public class Instance { } try { trans = new StringIdBundle(getLang()); + System.out.println("UPDATING"); trans.updateFile(configDir); + System.out.println("UPDATED"); } catch (IOException e) { syserr(e); } diff --git a/src/be/nikiroo/fanfix/Library.java b/src/be/nikiroo/fanfix/Library.java index 304f19f4..abe760b0 100644 --- a/src/be/nikiroo/fanfix/Library.java +++ b/src/be/nikiroo/fanfix/Library.java @@ -75,6 +75,26 @@ public class Library { return list; } + /** + * Retrieve a {@link File} corresponding to the given {@link Story}. + * + * @param luid + * the Library UID of the story + * + * @return the corresponding {@link Story} + */ + public MetaData getInfo(String luid) { + if (luid != null) { + for (Entry entry : getStories().entrySet()) { + if (luid.equals(entry.getKey().getLuid())) { + return entry.getKey(); + } + } + } + + return null; + } + /** * Retrieve a {@link File} corresponding to the given {@link Story}. * @@ -207,7 +227,7 @@ public class Library { * in case of I/O error */ private Story save(Story story, String luid) throws IOException { - MetaData key = story.getMeta(); + MetaData key = story.getMeta().clone(); if (luid == null || luid.isEmpty()) { getStories(); // refresh lastId if needed diff --git a/src/be/nikiroo/fanfix/data/MetaData.java b/src/be/nikiroo/fanfix/data/MetaData.java index 5ec98016..55c18de7 100644 --- a/src/be/nikiroo/fanfix/data/MetaData.java +++ b/src/be/nikiroo/fanfix/data/MetaData.java @@ -1,6 +1,7 @@ package be.nikiroo.fanfix.data; import java.awt.image.BufferedImage; +import java.util.ArrayList; import java.util.List; /** @@ -8,7 +9,7 @@ import java.util.List; * * @author niki */ -public class MetaData { +public class MetaData implements Cloneable { private String title; private String author; private String date; @@ -313,4 +314,28 @@ public class MetaData { public void setImageDocument(boolean imageDocument) { this.imageDocument = imageDocument; } + + @Override + public MetaData clone() { + MetaData meta = null; + try { + meta = (MetaData) super.clone(); + } catch (CloneNotSupportedException e) { + // Did the clones rebel? + System.err.println(e); + } + + if (tags != null) { + meta.tags = new ArrayList(); + meta.tags.addAll(tags); + } + if (resume != null) { + meta.resume = new Chapter(resume.getNumber(), resume.getName()); + for (Paragraph para : resume) { + meta.resume.getParagraphs().add(para); + } + } + + return meta; + } } -- 2.27.0