update from master
[fanfix.git] / library / LocalLibrary.java
index aec89721753252783a6b3f9c3468e4afd4b7f9d1..f655d4d03bb43b5df69d00fc8b30b2adbad6c113 100644 (file)
@@ -20,10 +20,10 @@ import be.nikiroo.fanfix.output.BasicOutput;
 import be.nikiroo.fanfix.output.BasicOutput.OutputType;
 import be.nikiroo.fanfix.output.InfoCover;
 import be.nikiroo.fanfix.supported.InfoReader;
+import be.nikiroo.utils.HashUtils;
 import be.nikiroo.utils.IOUtils;
 import be.nikiroo.utils.Image;
 import be.nikiroo.utils.Progress;
-import be.nikiroo.utils.StringUtils;
 
 /**
  * This {@link BasicLibrary} will store the stories locally on disk.
@@ -168,11 +168,11 @@ public class LocalLibrary extends BasicLibrary {
        }
 
        @Override
-       protected int getNextId() {
+       protected String getNextId() {
                getStories(null); // make sure lastId is set
 
                synchronized (lock) {
-                       return ++lastId;
+                       return String.format("%03d", ++lastId);
                }
        }
 
@@ -254,7 +254,13 @@ public class LocalLibrary extends BasicLibrary {
                                        in = new FileInputStream(cover);
                                        try {
                                                synchronized (lock) {
-                                                       sourceCovers.put(source, new Image(in));
+                                                       Image img = new Image(in);
+                                                       if (img.getSize() == 0) {
+                                                               img.close();
+                                                               throw new IOException(
+                                                                               "Empty image not accepted");
+                                                       }
+                                                       sourceCovers.put(source, img);
                                                }
                                        } finally {
                                                in.close();
@@ -298,7 +304,13 @@ public class LocalLibrary extends BasicLibrary {
                                in = new FileInputStream(cover);
                                try {
                                        synchronized (lock) {
-                                               authorCovers.put(author, new Image(in));
+                                               Image img = new Image(in);
+                                               if (img.getSize() == 0) {
+                                                       img.close();
+                                                       throw new IOException(
+                                                                       "Empty image not accepted");
+                                               }
+                                               authorCovers.put(author, img);
                                        }
                                } finally {
                                        in.close();
@@ -553,7 +565,7 @@ public class LocalLibrary extends BasicLibrary {
         */
        private File getAuthorCoverFile(String author) {
                File aDir = new File(baseDir, "_AUTHORS");
-               String hash = StringUtils.getMd5Hash(author);
+               String hash = HashUtils.md5(author);
                String ext = Instance.getInstance().getConfig()
                                .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER);
                return new File(aDir, hash + "." + ext.toLowerCase());
@@ -718,10 +730,6 @@ public class LocalLibrary extends BasicLibrary {
                }
 
                for (File infoFileOrSubdir : infoFilesAndSubdirs) {
-                       if (pgFiles != null) {
-                               pgFiles.setName(infoFileOrSubdir.getName());
-                       }
-
                        if (infoFileOrSubdir.isDirectory()) {
                                addToStories(stories, null, infoFileOrSubdir);
                        } else {