X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FInfoReader.java;h=220350e6dc904495de7de918e4843cf3d15dda01;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=80f873989ad03b95db685ffa94603fa7f4e4f30f;hpb=bb7021f2b3f1bf32d6ec7ad521ae7ae8d1810c57;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/supported/InfoReader.java b/src/be/nikiroo/fanfix/supported/InfoReader.java index 80f8739..220350e 100644 --- a/src/be/nikiroo/fanfix/supported/InfoReader.java +++ b/src/be/nikiroo/fanfix/supported/InfoReader.java @@ -1,7 +1,6 @@ package be.nikiroo.fanfix.supported; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -14,10 +13,14 @@ 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 { + static protected BasicSupportHelper bsHelper = new BasicSupportHelper(); + // static protected BasicSupportImages bsImages = new BasicSupportImages(); + // static protected BasicSupportPara bsPara = new BasicSupportPara(new BasicSupportHelper(), new BasicSupportImages()); + public static MetaData readMeta(File infoFile, boolean withCover) throws IOException { if (infoFile == null) { @@ -25,8 +28,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 { @@ -59,7 +61,7 @@ public class InfoReader { if (withCover) { String infoTag = getInfoTag(in, "COVER"); if (infoTag != null && !infoTag.trim().isEmpty()) { - meta.setCover(BasicSupportHelper.getImage(null, sourceInfoFile, + meta.setCover(bsHelper.getImage(null, sourceInfoFile, infoTag)); } if (meta.getCover() == null) { @@ -76,7 +78,7 @@ public class InfoReader { meta.setFakeCover(Boolean.parseBoolean(getInfoTag(in, "FAKE_COVER"))); if (withCover && meta.getCover() == null) { - meta.setCover(BasicSupportHelper.getDefaultCover(meta.getSubject())); + meta.setCover(bsHelper.getDefaultCover(meta.getSubject())); } return meta; @@ -91,17 +93,29 @@ 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.getInstance().getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase(); + + // Without removing ext + cover = bsHelper.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 = bsHelper.getImage(null, sourceInfoFile, + basefile.getAbsolutePath() + ext); } - return null; + return cover; } private static boolean getInfoTagBoolean(InputStream in, String key,