fix typo in Enum i18n + fix Import
[fanfix.git] / src / be / nikiroo / fanfix / supported / InfoReader.java
index 80f873989ad03b95db685ffa94603fa7f4e4f30f..57f021f203e68450c9926e372fb02f4d484fde9c 100644 (file)
@@ -14,7 +14,7 @@ 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;
+import be.nikiroo.utils.streams.MarkableFileInputStream;
 
 // not complete: no "description" tag
 public class InfoReader {
@@ -25,8 +25,7 @@ public class InfoReader {
                }
 
                if (infoFile.exists()) {
-                       InputStream in = new MarkableFileInputStream(new FileInputStream(
-                                       infoFile));
+                       InputStream in = new MarkableFileInputStream(infoFile);
                        try {
                                return createMeta(infoFile.toURI().toURL(), in, withCover);
                        } finally {
@@ -91,17 +90,30 @@ public class InfoReader {
         * @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);
+               Image cover = null;
+
+               File basefile = new File(sourceInfoFile.getFile());
+
+               String ext = "."
+                               + Instance.getConfig().getString(Config.IMAGE_FORMAT_COVER)
+                                               .toLowerCase();
+
+               // Without removing ext
+               cover = BasicSupportHelper.getImage(null, sourceInfoFile,
+                               basefile.getAbsolutePath() + ext);
+
+               // Try without ext
+               String name = basefile.getName();
+               int pos = name.lastIndexOf(".");
+               if (cover == null && pos > 0) {
+                       name = name.substring(0, pos);
+                       basefile = new File(basefile.getParent(), name);
+
+                       cover = BasicSupportHelper.getImage(null, sourceInfoFile,
+                                       basefile.getAbsolutePath() + ext);
                }
 
-               return null;
+               return cover;
        }
 
        private static boolean getInfoTagBoolean(InputStream in, String key,