Fix CBZ: do not include the first page twice
[nikiroo-utils.git] / src / be / nikiroo / fanfix / supported / InfoReader.java
index 1695ebdeadfb9792dcbe73011fb02540692e2fdc..6f1a7a50002281710613293125731f35ed0f75e0 100644 (file)
@@ -5,6 +5,7 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -22,7 +23,7 @@ public class InfoReader {
                        InputStream in = new MarkableFileInputStream(new FileInputStream(
                                        infoFile));
                        try {
-                               return createMeta(in);
+                               return createMeta(infoFile.toURI().toURL(), in);
                        } finally {
                                in.close();
                                in = null;
@@ -34,7 +35,8 @@ public class InfoReader {
                }
        }
 
-       private static MetaData createMeta(InputStream in) throws IOException {
+       private static MetaData createMeta(URL sourceInfoFile, InputStream in)
+                       throws IOException {
                MetaData meta = new MetaData();
 
                meta.setTitle(getInfoTag(in, "TITLE"));
@@ -42,6 +44,7 @@ public class InfoReader {
                meta.setDate(getInfoTag(in, "DATE"));
                meta.setTags(getInfoTagList(in, "TAGS", ","));
                meta.setSource(getInfoTag(in, "SOURCE"));
+               meta.setUrl(getInfoTag(in, "URL"));
                meta.setPublisher(getInfoTag(in, "PUBLISHER"));
                meta.setUuid(getInfoTag(in, "UUID"));
                meta.setLuid(getInfoTag(in, "LUID"));
@@ -49,7 +52,15 @@ public class InfoReader {
                meta.setSubject(getInfoTag(in, "SUBJECT"));
                meta.setType(getInfoTag(in, "TYPE"));
                meta.setImageDocument(getInfoTagBoolean(in, "IMAGES_DOCUMENT", false));
-               meta.setCover(BasicSupport.getImage(null, getInfoTag(in, "COVER")));
+               meta.setCover(BasicSupport.getImage(null, sourceInfoFile,
+                               getInfoTag(in, "COVER")));
+               try {
+                       meta.setWords(Long.parseLong(getInfoTag(in, "WORDCOUNT")));
+               } catch (NumberFormatException e) {
+                       meta.setWords(0);
+               }
+               meta.setCreationDate(getInfoTag(in, "CREATION_DATE"));
+               meta.setFakeCover(Boolean.parseBoolean(getInfoTag(in, "FAKE_COVER")));
 
                if (meta.getCover() == null) {
                        meta.setCover(BasicSupport.getDefaultCover(meta.getSubject()));