Remove or move java.awt dependencies
[nikiroo-utils.git] / src / be / nikiroo / fanfix / supported / InfoReader.java
index ede84e39a5c4f945a49f9fbc1c512ab7b84c4ba1..b65256ca4b6a3a4db4e836113fe064587be35fbf 100644 (file)
@@ -9,6 +9,8 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
+import be.nikiroo.fanfix.Instance;
+import be.nikiroo.fanfix.bundles.Config;
 import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.utils.MarkableFileInputStream;
 
@@ -29,11 +31,11 @@ public class InfoReader {
                                in.close();
                                in = null;
                        }
-               } else {
-                       throw new FileNotFoundException(
-                                       "File given as argument does not exists: "
-                                                       + infoFile.getAbsolutePath());
                }
+
+               throw new FileNotFoundException(
+                               "File given as argument does not exists: "
+                                               + infoFile.getAbsolutePath());
        }
 
        private static MetaData createMeta(URL sourceInfoFile, InputStream in,
@@ -54,8 +56,24 @@ public class InfoReader {
                meta.setType(getInfoTag(in, "TYPE"));
                meta.setImageDocument(getInfoTagBoolean(in, "IMAGES_DOCUMENT", false));
                if (withCover) {
-                       meta.setCover(BasicSupport.getImage(null, sourceInfoFile,
-                                       getInfoTag(in, "COVER")));
+                       String infoTag = getInfoTag(in, "COVER");
+                       if (infoTag != null && !infoTag.trim().isEmpty()) {
+                               meta.setCover(BasicSupport.getImage(null, sourceInfoFile,
+                                               infoTag));
+                       }
+                       // Second chance: try to check for a cover next to the info file
+                       if (meta.getCover() == null) {
+                               String info = sourceInfoFile.getFile().toString();
+                               if (info.endsWith(".info")) {
+                                       info = info.substring(0, info.length() - ".info".length());
+                                       String ext = "."
+                                                       + Instance.getConfig()
+                                                                       .getString(Config.IMAGE_FORMAT_COVER)
+                                                                       .toLowerCase();
+                                       meta.setCover(BasicSupport.getImage(null, sourceInfoFile,
+                                                       info + ext));
+                               }
+                       }
                }
                try {
                        meta.setWords(Long.parseLong(getInfoTag(in, "WORDCOUNT")));