X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FInfoReader.java;h=d5eeeb1d9190a022db4bf360cb243710decc493e;hp=206464f45a0a2e7c989e6fa6719afa22ca61c9cb;hb=1387a30ab59dbf4071f2c5e5e0e08ca98c75b726;hpb=fccaa18aed16a157e07769e407a4cc42925661fb diff --git a/src/be/nikiroo/fanfix/supported/InfoReader.java b/src/be/nikiroo/fanfix/supported/InfoReader.java index 206464f..d5eeeb1 100644 --- a/src/be/nikiroo/fanfix/supported/InfoReader.java +++ b/src/be/nikiroo/fanfix/supported/InfoReader.java @@ -48,7 +48,6 @@ public class InfoReader { 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,45 +61,8 @@ public class InfoReader { textFile = new File(base + ".text"); } - if (textFile.exists()) { - final URL source = textFile.toURI().toURL(); - final MetaData[] superMetaA = new MetaData[1]; - @SuppressWarnings("unused") - Text unused = new Text() { - private boolean loaded = loadDocument(); - - @Override - public SupportType getType() { - return SupportType.TEXT; - } - - protected boolean loadDocument() - throws IOException { - loadDocument(source); - superMetaA[0] = getMeta(); - return true; - } - - @Override - protected Image getCover(File sourceFile) { - return null; - } - }; - - MetaData superMeta = superMetaA[0]; - if (!hasIt(meta.getTitle())) { - meta.setTitle(superMeta.getTitle()); - } - if (!hasIt(meta.getAuthor())) { - meta.setAuthor(superMeta.getAuthor()); - } - if (!hasIt(meta.getDate())) { - meta.setDate(superMeta.getDate()); - } - if (!hasIt(meta.getUrl())) { - meta.setUrl(superMeta.getUrl()); - } - } + completeMeta(textFile, meta); + // } return meta; @@ -113,6 +75,60 @@ public class InfoReader { "File given as argument does not exists: " + infoFile.getAbsolutePath()); } + + /** + * Complete the given {@link MetaData} with the original text file if needed + * and possible. + * + * @param textFile + * the original text file + * @param meta + * the {@link MetaData} to complete if needed and possible + * + * @throws IOException + * in case of I/O errors + */ + static public void completeMeta(File textFile, + MetaData meta) throws IOException { + if (textFile != null && textFile.exists()) { + final URL source = textFile.toURI().toURL(); + final MetaData[] superMetaA = new MetaData[1]; + @SuppressWarnings("unused") + Text unused = new Text() { + private boolean loaded = loadDocument(); + + @Override + public SupportType getType() { + return SupportType.TEXT; + } + + protected boolean loadDocument() throws IOException { + loadDocument(source); + superMetaA[0] = getMeta(); + return true; + } + + @Override + protected Image getCover(File sourceFile) { + return null; + } + }; + + MetaData superMeta = superMetaA[0]; + if (!hasIt(meta.getTitle())) { + meta.setTitle(superMeta.getTitle()); + } + if (!hasIt(meta.getAuthor())) { + meta.setAuthor(superMeta.getAuthor()); + } + if (!hasIt(meta.getDate())) { + meta.setDate(superMeta.getDate()); + } + if (!hasIt(meta.getUrl())) { + meta.setUrl(superMeta.getUrl()); + } + } + } /** * Check if we have non-empty values for all the given {@link String}s.