git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:nikiroo/fanfix
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
fanfix
/
supported
/
Epub.java
diff --git
a/src/be/nikiroo/fanfix/supported/Epub.java
b/src/be/nikiroo/fanfix/supported/Epub.java
index 7ac3efc78703f7fb9e4a27fc2668c04c541965ad..90a9f458e4fd3ce9c0f8ad331bc407a27dc760ca 100644
(file)
--- a/
src/be/nikiroo/fanfix/supported/Epub.java
+++ b/
src/be/nikiroo/fanfix/supported/Epub.java
@@
-1,7
+1,6
@@
package be.nikiroo.fanfix.supported;
import java.io.File;
package be.nikiroo.fanfix.supported;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
@@
-17,8
+16,8
@@
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.Image;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.Image;
-import be.nikiroo.utils.MarkableFileInputStream;
import be.nikiroo.utils.StringUtils;
import be.nikiroo.utils.StringUtils;
+import be.nikiroo.utils.streams.MarkableFileInputStream;
/**
* Support class for EPUB files created with this program (as we need some
/**
* Support class for EPUB files created with this program (as we need some
@@
-27,8
+26,6
@@
import be.nikiroo.utils.StringUtils;
* @author niki
*/
class Epub extends InfoText {
* @author niki
*/
class Epub extends InfoText {
- private File sourceFileOriginal;
-
private MetaData meta;
private File tmpDir;
private String desc;
private MetaData meta;
private File tmpDir;
private String desc;
@@
-36,13
+33,8
@@
class Epub extends InfoText {
private URL fakeSource;
private InputStream fakeIn;
private URL fakeSource;
private InputStream fakeIn;
- @Override
- public String getSourceName() {
- return "epub";
- }
-
public File getSourceFileOriginal() {
public File getSourceFileOriginal() {
- return s
ourceFileOriginal
;
+ return s
uper.getSourceFile()
;
}
@Override
}
@Override
@@
-50,10
+42,8
@@
class Epub extends InfoText {
try {
return new File(fakeSource.toURI());
} catch (URISyntaxException e) {
try {
return new File(fakeSource.toURI());
} catch (URISyntaxException e) {
- Instance.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;
}
return null;
@@
-61,7
+51,18
@@
class Epub extends InfoText {
@Override
protected InputStream getInput() {
@Override
protected InputStream getInput() {
- return fakeIn;
+ if (fakeIn != null) {
+ try {
+ fakeIn.reset();
+ } catch (IOException e) {
+ Instance.getInstance().getTraceHandler().error(new IOException(
+ "Cannot reset the Epub Text stream", e));
+ }
+
+ return fakeIn;
+ }
+
+ return null;
}
@Override
}
@Override
@@
-83,8
+84,8
@@
class Epub extends InfoText {
ZipInputStream zipIn = null;
try {
zipIn = new ZipInputStream(in);
ZipInputStream zipIn = null;
try {
zipIn = new ZipInputStream(in);
- tmpDir = Instance.get
TempFiles().createTempDir(
- "fanfic-reader-parser");
+ tmpDir = Instance.get
Instance().getTempFiles()
+
.createTempDir(
"fanfic-reader-parser");
File tmp = new File(tmpDir, "file.txt");
File tmpInfo = new File(tmpDir, "file.info");
File tmp = new File(tmpDir, "file.txt");
File tmpInfo = new File(tmpDir, "file.info");
@@
-100,14
+101,15
@@
class Epub extends InfoText {
String title = null;
String author = null;
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();
boolean imageEntry = false;
if (!entry.isDirectory()
&& entry.getName().startsWith(getDataPrefix())) {
String entryLName = entry.getName().toLowerCase();
boolean imageEntry = false;
- for (String ext :
BasicSupport
Images.getImageExt(false)) {
+ for (String ext :
bs
Images.getImageExt(false)) {
if (entryLName.endsWith(ext)) {
imageEntry = true;
}
if (entryLName.endsWith(ext)) {
imageEntry = true;
}
@@
-125,18
+127,25
@@
class Epub extends InfoText {
try {
cover = new Image(zipIn);
} catch (Exception e) {
try {
cover = new Image(zipIn);
} catch (Exception e) {
- Instance.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();
}
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");
String[] descArray = StringUtils
.unhtml(IOUtils.readSmallStream(zipIn)).trim()
.split("\n");
@@
-150,12
+159,12
@@
class Epub extends InfoText {
skip = 2;
}
}
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);
} else {
// Hopefully the data file
IOUtils.write(zipIn, tmp);
@@
-169,15
+178,11
@@
class Epub extends InfoText {
}
if (tmp.exists()) {
}
if (tmp.exists()) {
- this.fakeIn = new MarkableFileInputStream(new FileInputStream(
- tmp));
+ this.fakeIn = new MarkableFileInputStream(tmp);
}
if (tmpInfo.exists()) {
meta = InfoReader.readMeta(tmpInfo, true);
}
if (tmpInfo.exists()) {
meta = InfoReader.readMeta(tmpInfo, true);
- if (cover != null) {
- meta.setCover(cover);
- }
tmpInfo.delete();
} else {
if (title == null || title.isEmpty()) {
tmpInfo.delete();
} else {
if (title == null || title.isEmpty()) {
@@
-191,13
+196,22
@@
class Epub extends InfoText {
meta = new MetaData();
meta.setLang("en");
meta.setTags(new ArrayList<String>());
meta = new MetaData();
meta.setLang("en");
meta.setTags(new ArrayList<String>());
- meta.setSource(getSourceName());
+ meta.setSource(get
Type().get
SourceName());
meta.setUuid(url);
meta.setUrl(url);
meta.setTitle(title);
meta.setAuthor(author);
meta.setImageDocument(isImagesDocumentByDefault());
}
meta.setUuid(url);
meta.setUrl(url);
meta.setTitle(title);
meta.setAuthor(author);
meta.setImageDocument(isImagesDocumentByDefault());
}
+
+ if (meta.getCover() == null) {
+ if (cover != null) {
+ meta.setCover(cover);
+ } else {
+ meta.setCover(InfoReader.getCoverByName(
+ getSourceFileOriginal().toURI().toURL()));
+ }
+ }
} finally {
if (zipIn != null) {
zipIn.close();
} finally {
if (zipIn != null) {
zipIn.close();