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;
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) {
}
if (infoFile.exists()) {
- InputStream in = new MarkableFileInputStream(new FileInputStream(
- infoFile));
+ InputStream in = new MarkableFileInputStream(infoFile);
try {
return createMeta(infoFile.toURI().toURL(), in, withCover);
} finally {
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) {
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;
* @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,