try +1
[fanfix.git] / src / be / nikiroo / fanfix / supported / InfoReader.java
index 8e1c385cfa8d115fd9fd6035be77eac10c580611..80f873989ad03b95db685ffa94603fa7f4e4f30f 100644 (file)
@@ -13,6 +13,7 @@ import java.util.Scanner;
 import be.nikiroo.fanfix.Instance;
 import be.nikiroo.fanfix.bundles.Config;
 import be.nikiroo.fanfix.data.MetaData;
+import be.nikiroo.utils.Image;
 import be.nikiroo.utils.MarkableFileInputStream;
 
 // not complete: no "description" tag
@@ -61,18 +62,9 @@ public class InfoReader {
                                meta.setCover(BasicSupportHelper.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(BasicSupportHelper.getImage(null,
-                                                       sourceInfoFile, info + ext));
-                               }
+                               // Second chance: try to check for a cover next to the info file
+                               meta.setCover(getCoverByName(sourceInfoFile));
                        }
                }
                try {
@@ -90,6 +82,28 @@ public class InfoReader {
                return meta;
        }
 
+       /**
+        * Return the cover image if it is next to the source file.
+        * 
+        * @param sourceInfoFile
+        *            the source file
+        * 
+        * @return the cover if present, NULL if not
+        */
+       public static Image getCoverByName(URL sourceInfoFile) {
+               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();
+                       return BasicSupportHelper
+                                       .getImage(null, sourceInfoFile, info + ext);
+               }
+
+               return null;
+       }
+
        private static boolean getInfoTagBoolean(InputStream in, String key,
                        boolean def) throws IOException {
                Boolean value = getInfoTagBoolean(in, key);