X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=library%2FLocalLibrary.java;h=f655d4d03bb43b5df69d00fc8b30b2adbad6c113;hp=3cf5a25bc232baddd6ed34df9faabbaa3d82281f;hb=002972e9de731678035d56304d75a6d9e8233635;hpb=dc919036d4177c667f46f82a132f9287da4fa205 diff --git a/library/LocalLibrary.java b/library/LocalLibrary.java index 3cf5a25..f655d4d 100644 --- a/library/LocalLibrary.java +++ b/library/LocalLibrary.java @@ -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()); @@ -637,10 +649,13 @@ public class LocalLibrary extends BasicLibrary { } Map stories = this.stories; - synchronized (lock) { - if (stories == null) { - stories = getStoriesDo(pg); - this.stories = stories; + if (stories == null) { + stories = getStoriesDo(pg); + synchronized (lock) { + if (this.stories == null) + this.stories = stories; + else + stories = this.stories; } } @@ -715,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 {