X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FInfoReader.java;h=369b32454ac95c2433122c9d9dcd422bcfb7157f;hb=30478c5b1ece61284679af0d2194f1d8627a7b79;hp=8e1c385cfa8d115fd9fd6035be77eac10c580611;hpb=7445f8565be9e9237ffb3e16fd4dcb61f8c36cd5;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/InfoReader.java b/src/be/nikiroo/fanfix/supported/InfoReader.java index 8e1c385..369b324 100644 --- a/src/be/nikiroo/fanfix/supported/InfoReader.java +++ b/src/be/nikiroo/fanfix/supported/InfoReader.java @@ -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,42 @@ 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) { + 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(), basefile.getName()); + +System.out.println(">>> " + basefile); + cover = BasicSupportHelper.getImage(null, sourceInfoFile, + basefile.getAbsolutePath() + ext); + } + + return cover; + } + private static boolean getInfoTagBoolean(InputStream in, String key, boolean def) throws IOException { Boolean value = getInfoTagBoolean(in, key);