try {
return new File(fakeSource.toURI());
} catch (URISyntaxException e) {
- Instance.getInstance().getTraceHandler()
- .error(new IOException("Cannot get the source file from the info-text URL", e));
+ Instance.getInstance().getTraceHandler().error(new IOException(
+ "Cannot get the source file from the info-text URL", e));
}
return null;
try {
fakeIn.reset();
} catch (IOException e) {
- Instance.getInstance().getTraceHandler().error(new IOException("Cannot reset the Epub Text stream", e));
+ Instance.getInstance().getTraceHandler().error(new IOException(
+ "Cannot reset the Epub Text stream", e));
}
return fakeIn;
ZipInputStream zipIn = null;
try {
zipIn = new ZipInputStream(in);
- tmpDir = Instance.getInstance().getTempFiles().createTempDir("fanfic-reader-parser");
+ tmpDir = Instance.getInstance().getTempFiles()
+ .createTempDir("fanfic-reader-parser");
File tmp = new File(tmpDir, "file.txt");
File tmpInfo = new File(tmpDir, "file.info");
String title = null;
String author = null;
- for (ZipEntry entry = zipIn.getNextEntry(); entry != null; entry = zipIn
- .getNextEntry()) {
+ for (ZipEntry entry = zipIn
+ .getNextEntry(); entry != null; entry = zipIn
+ .getNextEntry()) {
if (!entry.isDirectory()
&& entry.getName().startsWith(getDataPrefix())) {
String entryLName = entry.getName().toLowerCase();
try {
cover = new Image(zipIn);
} catch (Exception e) {
- Instance.getInstance().getTraceHandler().error(e);
+ Instance.getInstance().getTraceHandler()
+ .error(e);
}
}
- } else if (entry.getName().equals(getDataPrefix() + "URL")) {
+ } else if (entry.getName()
+ .equals(getDataPrefix() + "URL")) {
String[] descArray = StringUtils
.unhtml(IOUtils.readSmallStream(zipIn)).trim()
.split("\n");
if (descArray.length > 0) {
url = descArray[0].trim();
}
- } else if (entry.getName().equals(
- getDataPrefix() + "SUMMARY")) {
+ } else if (entry.getName().endsWith(".desc")) {
+ // // For old files
+ // if (this.desc != null) {
+ // this.desc = IOUtils.readSmallStream(zipIn).trim();
+ // }
+ } else if (entry.getName()
+ .equals(getDataPrefix() + "SUMMARY")) {
String[] descArray = StringUtils
.unhtml(IOUtils.readSmallStream(zipIn)).trim()
.split("\n");
skip = 2;
}
}
- this.desc = "";
- for (int i = skip; i < descArray.length; i++) {
- this.desc += descArray[i].trim() + "\n";
- }
-
- this.desc = this.desc.trim();
+ // this.desc = "";
+ // for (int i = skip; i < descArray.length; i++) {
+ // this.desc += descArray[i].trim() + "\n";
+ // }
+ //
+ // this.desc = this.desc.trim();
} else {
// Hopefully the data file
IOUtils.write(zipIn, tmp);
if (cover != null) {
meta.setCover(cover);
} else {
- meta.setCover(InfoReader
- .getCoverByName(getSourceFileOriginal().toURI()
- .toURL()));
+ meta.setCover(InfoReader.getCoverByName(
+ getSourceFileOriginal().toURI().toURL()));
}
}
} finally {
import java.util.List;
import java.util.Scanner;
-import org.jsoup.nodes.Document;
-
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.bundles.Config;
import be.nikiroo.fanfix.data.MetaData;
MetaData meta = createMeta(infoFile.toURI().toURL(), in,
withCover);
+ // Some old .info files were using UUID for URL...
+ if (!hasIt(meta.getUrl()) && meta.getUuid() != null
+ && (meta.getUuid().startsWith("http://")
+ || meta.getUuid().startsWith("https://"))) {
+ meta.setUrl(meta.getUuid());
+ }
+
// Some old .info files don't have those now required fields...
// So we check if we can find the info in another way (many
// formats have a copy of the original text file)
value = value.substring(1, value.length() - 1).trim();
}
+ // Some old files ended up with TITLE="'xxxxx'"
+ if ("TITLE".equals(key)) {
+ if (value.startsWith("'") && value.endsWith("'")) {
+ value = value.substring(1, value.length() - 1).trim();
+ }
+ }
+
return value;
}
}