package be.nikiroo.fanfix.supported;
-import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.utils.IOUtils;
-import be.nikiroo.utils.ImageUtils;
+import be.nikiroo.utils.Image;
import be.nikiroo.utils.MarkableFileInputStream;
import be.nikiroo.utils.Progress;
import be.nikiroo.utils.StringUtils;
tmp = File.createTempFile("fanfic-reader-parser_", ".tmp");
File tmpInfo = new File(tmp + ".info");
fakeSource = tmp.toURI().toURL();
- BufferedImage cover = null;
+ Image cover = null;
String url = source.toString();
String title = null;
// Cover
if (getCover()) {
try {
- cover = ImageUtils.fromStream(zipIn);
+ cover = new Image(zipIn);
} catch (Exception e) {
- Instance.syserr(e);
+ Instance.getTraceHandler().error(e);
}
}
} else if (entry.getName().equals(getDataPrefix() + "URL")) {
}
tmpInfo.delete();
} else {
+ if (title == null || title.isEmpty()) {
+ title = new File(source.getPath()).getName();
+ if (title.toLowerCase().endsWith(".cbz")) {
+ title = title.substring(0, title.length() - 4);
+ }
+ title = URLDecoder.decode(title, "UTF-8").trim();
+ }
+
meta = new MetaData();
- meta.setLang("EN");
+ meta.setLang("en");
meta.setTags(new ArrayList<String>());
meta.setSource(getSourceName());
meta.setUuid(url);
meta.setUrl(url);
meta.setTitle(title);
meta.setAuthor(author);
+ meta.setImageDocument(isImagesDocumentByDefault());
}
}
@Override
- protected void close() throws IOException {
+ protected void close() {
if (tmp != null && tmp.exists()) {
if (!tmp.delete()) {
tmp.deleteOnExit();
tmp = null;
if (fakeIn != null) {
- fakeIn.close();
+ try {
+ fakeIn.close();
+ } catch (Exception e) {
+ Instance.getTraceHandler().error(e);
+ }
}
super.close();
protected boolean getCover() {
return true;
}
+
+ protected boolean isImagesDocumentByDefault() {
+ return false;
+ }
}