X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FRemoteLibrary.java;h=ffcf8f19c9c34f2923a969443aaaaee69eba30b8;hb=41029926975167de96709f739f8393a127925a7e;hp=5052fa279dd4cdcbe127a61edd8f2a00ca4bf9a6;hpb=16a81ef7656c5c692fb831927e75edde25dd77a0;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/library/RemoteLibrary.java b/src/be/nikiroo/fanfix/library/RemoteLibrary.java index 5052fa2..ffcf8f1 100644 --- a/src/be/nikiroo/fanfix/library/RemoteLibrary.java +++ b/src/be/nikiroo/fanfix/library/RemoteLibrary.java @@ -58,6 +58,7 @@ public class RemoteLibrary extends BasicLibrary { ConnectActionClientObject action = null; try { + Instance.getTraceHandler().trace("Getting remote lib status..."); action = new ConnectActionClientObject(host, port, true) { @Override public void action(Version serverVersion) throws Exception { @@ -91,6 +92,7 @@ public class RemoteLibrary extends BasicLibrary { } } + Instance.getTraceHandler().trace("Remote lib status: " + result[0]); return result[0]; } @@ -119,15 +121,25 @@ public class RemoteLibrary extends BasicLibrary { } @Override - public Image getSourceCover(final String source) { + public Image getCustomSourceCover(final String source) { + return getCustomCover(source, "SOURCE"); + } + + @Override + public Image getCustomAuthorCover(final String author) { + return getCustomCover(author, "AUTHOR"); + } + + // type: "SOURCE" or "AUTHOR" + private Image getCustomCover(final String source, final String type) { 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 }); + Object rep = send(new Object[] { md5, "GET_CUSTOM_COVER", + type, source }); result[0] = (Image) rep; } @@ -233,10 +245,14 @@ public class RemoteLibrary extends BasicLibrary { }.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(); @@ -261,11 +277,22 @@ public class RemoteLibrary extends BasicLibrary { @Override public void setSourceCover(final String source, final String luid) { + setCover(source, luid, "SOURCE"); + } + + @Override + public void setAuthorCover(final String author, final String luid) { + setCover(author, luid, "AUTHOR"); + } + + // type = "SOURCE" | "AUTHOR" + private void setCover(final String value, final String luid, + final String type) { try { new ConnectActionClientObject(host, port, true) { @Override public void action(Version serverVersion) throws Exception { - send(new Object[] { md5, "SET_SOURCE_COVER", source, luid }); + send(new Object[] { md5, "SET_COVER", type, value, luid }); } @Override @@ -281,6 +308,13 @@ public class RemoteLibrary extends BasicLibrary { @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(); } @@ -337,8 +371,9 @@ public class RemoteLibrary extends BasicLibrary { @Override // Could work (more slowly) without it - public synchronized void changeSource(final String luid, - final String newSource, Progress pg) throws IOException { + protected synchronized void changeSTA(final String luid, + final String newSource, final String newTitle, + final String newAuthor, Progress pg) throws IOException { final Progress pgF = pg == null ? new Progress() : pg; try { @@ -347,8 +382,8 @@ public class RemoteLibrary extends BasicLibrary { public void action(Version serverVersion) throws Exception { Progress pg = pgF; - Object rep = send(new Object[] { md5, "CHANGE_SOURCE", - luid, newSource }); + Object rep = send(new Object[] { md5, "CHANGE_STA", luid, + newSource, newTitle, newAuthor }); while (true) { if (!RemoteLibraryServer.updateProgress(pg, rep)) { break; @@ -410,8 +445,14 @@ public class RemoteLibrary extends BasicLibrary { return getMetasList("*", pg); } + @Override + protected void updateInfo(MetaData meta) { + // Will be taken care of directly server side + } + @Override protected void invalidateInfo(String luid) { + // Will be taken care of directly server side } // The following methods are only used by Save and Delete in BasicLibrary: @@ -436,6 +477,8 @@ public class RemoteLibrary extends BasicLibrary { /** * Return the meta of the given story or a list of all known metas if the * luid is "*". + *

+ * Will not get the covers. * * @param luid * the luid of the story or *