package be.nikiroo.fanfix.library;
-import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Story;
+import be.nikiroo.utils.Image;
import be.nikiroo.utils.Progress;
import be.nikiroo.utils.StringUtils;
import be.nikiroo.utils.Version;
}
@Override
- public BufferedImage getCover(final String luid) {
- final BufferedImage[] result = new BufferedImage[1];
+ public Image getCover(final String luid) {
+ final Image[] result = new Image[1];
try {
new ConnectActionClientObject(host, port, true) {
@Override
public void action(Version serverVersion) throws Exception {
Object rep = send(new Object[] { md5, "GET_COVER", luid });
- result[0] = (BufferedImage) rep;
+ result[0] = (Image) rep;
}
@Override
}
@Override
- public BufferedImage getSourceCover(final String source) {
- final BufferedImage[] result = new BufferedImage[1];
+ public Image getCustomSourceCover(final String source) {
+ final Image[] result = new Image[1];
try {
new ConnectActionClientObject(host, port, true) {
@Override
public void action(Version serverVersion) throws Exception {
- Object rep = send(new Object[] { md5, "GET_SOURCE_COVER",
- source });
- result[0] = (BufferedImage) rep;
+ Object rep = send(new Object[] { md5,
+ "GET_CUSTOM_SOURCE_COVER", source });
+ result[0] = (Image) rep;
}
@Override
}.connect();
// because the meta changed:
- invalidateInfo(luidSaved[0]);
-
MetaData meta = getInfo(luidSaved[0]);
- meta.setCover(story.getMeta().getCover());
+ if (story.getMeta().getClass() != null) {
+ // If already available locally:
+ meta.setCover(story.getMeta().getCover());
+ } else {
+ // If required:
+ meta.setCover(getCover(meta.getLuid()));
+ }
story.setMeta(meta);
pg.done();
@Override
// Could work (more slowly) without it
public Story imprt(final URL url, Progress pg) throws IOException {
+ // Import the file locally if it is actually a file
+ if (url == null || url.getProtocol().equalsIgnoreCase("file")) {
+ return super.imprt(url, pg);
+ }
+
+ // Import it remotely if it is an URL
+
if (pg == null) {
pg = new Progress();
}
}
@Override
- protected void invalidateInfo(String luid) {
+ protected void updateInfo(MetaData meta) {
+ // Will be taken care of directly server side
+ }
+
+ @Override
+ protected void deleteInfo(String luid) {
+ // Will be taken care of directly server side
}
// The following methods are only used by Save and Delete in BasicLibrary:
/**
* Return the meta of the given story or a list of all known metas if the
* luid is "*".
+ * <p>
+ * Will not get the covers.
*
* @param luid
* the luid of the story or *