# Fanfix
## Version WIP
+
- New reader type: TUI (a text user interface with windows and menus)
- A server option to offer stories on the network
- A remote library to get said stories from the network
+- Update to latest version of nikiroo-utils
## Version 1.5.3
+
- FimFiction: Fix tags and chapter handling for some stories
## Version 1.5.2
+
- Fix tags metadata on FimFiction 4
## Version 1.5.1
+
- Update to FimFiction 4
- Fix some meta data that were missing on e-Hentai
## Version 1.5.0
+
- New website supported following a request: e-hentai.org
- Library: perf improvement when retrieving the stories (cover not loaded when not needed)
- Library: fix the covers that were not always removed when deleting a story
import be.nikiroo.fanfix.bundles.Config;
import be.nikiroo.fanfix.supported.BasicSupport;
import be.nikiroo.utils.IOUtils;
+import be.nikiroo.utils.ImageUtils;
import be.nikiroo.utils.MarkableFileInputStream;
/**
if (!cached.exists() || isOld(cached, true)) {
InputStream imageIn = open(url, null, true);
- ImageIO.write(IOUtils.toImage(imageIn), Instance.getConfig()
+ ImageIO.write(ImageUtils.fromStream(imageIn), Instance.getConfig()
.getString(Config.IMAGE_FORMAT_CONTENT).toLowerCase(),
cached);
}
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Story;
-import be.nikiroo.utils.IOUtils;
+import be.nikiroo.utils.ImageUtils;
import be.nikiroo.utils.ui.UIUtils;
/**
InputStream in = Instance.getCache().getFromCache(id);
if (in != null) {
try {
- resizedImage = IOUtils.toImage(in);
+ resizedImage = ImageUtils.fromStream(in);
in.close();
in = null;
} catch (IOException e) {
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
import be.nikiroo.fanfix.data.Story;
-import be.nikiroo.utils.IOUtils;
+import be.nikiroo.utils.ImageUtils;
import be.nikiroo.utils.Progress;
import be.nikiroo.utils.StringUtils;
InputStream in = null;
try {
in = Instance.getCache().open(url, getSupport(url), true);
- return IOUtils.toImage(in);
+ return ImageUtils.fromStream(in);
} catch (IOException e) {
} finally {
if (in != null) {
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.MarkableFileInputStream;
import be.nikiroo.utils.Progress;
// Cover
if (getCover()) {
try {
- cover = IOUtils.toImage(zipIn);
+ cover = ImageUtils.fromStream(zipIn);
} catch (Exception e) {
Instance.syserr(e);
}
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.Progress;
import be.nikiroo.utils.StringUtils;
try {
coverIn = openEx(cover);
try {
- return IOUtils.toImage(coverIn);
+ return ImageUtils.fromStream(coverIn);
} finally {
coverIn.close();
}