X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=library%2FLocalLibrary.java;h=25f2ec960627ab354295289f73a7c93d6bbbe3ed;hp=6720972682939785226de86a201ef2c4c4c7d68f;hb=258e065f81071a861711ef935dca3ec5563f4360;hpb=5f3671e17febc5b7f6abbfc62c66c4045d47ec8d diff --git a/library/LocalLibrary.java b/library/LocalLibrary.java index 6720972..25f2ec9 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()); @@ -613,6 +625,18 @@ public class LocalLibrary extends BasicLibrary { files.add(coverFile); } + String summaryExt = ".summary"; + File summaryFile = new File(path + summaryExt); + if (!summaryFile.exists()) { + summaryFile = new File( + path.substring(0, path.length() - fileExt.length()) + + summaryExt); + } + + if (summaryFile.exists()) { + files.add(summaryFile); + } + return files; }