X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FInfoReader.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FInfoReader.java;h=22afc92f8d3521bfc16ba05e38461ac2f4ef77a9;hp=d5eeeb1d9190a022db4bf360cb243710decc493e;hb=34f8780d16faf3a5466c45261bd84f1b31516790;hpb=83001824bb702296a45cdf400312e34f69951e91 diff --git a/src/be/nikiroo/fanfix/supported/InfoReader.java b/src/be/nikiroo/fanfix/supported/InfoReader.java index d5eeeb1..22afc92 100644 --- a/src/be/nikiroo/fanfix/supported/InfoReader.java +++ b/src/be/nikiroo/fanfix/supported/InfoReader.java @@ -11,27 +11,30 @@ import java.util.Scanner; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.Config; +import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.MetaData; +import be.nikiroo.utils.IOUtils; import be.nikiroo.utils.Image; 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()); + 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) { throw new IOException("File is null"); } + + MetaData meta = null; if (infoFile.exists()) { InputStream in = new MarkableFileInputStream(infoFile); try { - MetaData meta = createMeta(infoFile.toURI().toURL(), in, + meta = createMeta(infoFile.toURI().toURL(), in, withCover); // Some old .info files were using UUID for URL... @@ -46,8 +49,6 @@ public class InfoReader { // formats have a copy of the original text file) if (!hasIt(meta.getTitle(), meta.getAuthor(), meta.getDate(), meta.getUrl())) { - - // TODO: not nice, would be better to do it properly... String base = infoFile.getPath(); if (base.endsWith(".info")) { base = base.substring(0, @@ -62,15 +63,34 @@ public class InfoReader { } completeMeta(textFile, meta); - // } - return meta; + } finally { in.close(); } } + if (meta != null) { + try { + File summaryFile = new File(infoFile.getAbsolutePath() + .replaceFirst("\\.info$", ".summary")); + InputStream in = new MarkableFileInputStream(summaryFile); + try { + String content = IOUtils.readSmallStream(in); + Chapter desc = bsPara.makeChapter(null, null, 0, + "Description", content, false, null); + meta.setResume(desc); + } finally { + in.close(); + } + } catch (IOException e) { + // ignore absent or bad summary + } + + return meta; + } + throw new FileNotFoundException( "File given as argument does not exists: " + infoFile.getAbsolutePath()); @@ -90,6 +110,7 @@ public class InfoReader { */ static public void completeMeta(File textFile, MetaData meta) throws IOException { + // TODO: not nice, would be better to do it properly... if (textFile != null && textFile.exists()) { final URL source = textFile.toURI().toURL(); final MetaData[] superMetaA = new MetaData[1];