diff --git a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java index 0a995697b..550cd99ae 100644 --- a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java +++ b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java @@ -142,10 +142,22 @@ public class SynchroniserService extends Service implements IBookCollection.List buffer.append(line); } final Object response = JSONValue.parse(buffer.toString()); - if (response instanceof Map && ((Map)response).isEmpty()) { - System.err.println("UPLOADED SUCCESSFULLY"); + String id = null; + String error = null; + try { + if (response instanceof Map) { + id = (String)((Map)response).get("id"); + error = (String)((Map)response).get("error"); + } + } catch (Exception e) { + // ignore + } + if (error != null) { + System.err.println("UPLOAD FAILURE: " + error); + } else if (id != null) { + System.err.println("UPLOADED SUCCESSFULLY: " + id); } else { - System.err.println("UPLOAD FAILURE: " + response); + System.err.println("UNEXPECED RESPONSE: " + response); } } } @@ -167,21 +179,23 @@ public class SynchroniserService extends Service implements IBookCollection.List myNetworkContext.performQuietly(verificationRequest); final String csrfToken = myNetworkContext.getCookieValue(DOMAIN, "csrftoken"); final Object response = result.get("result"); - if (response == null) { - System.err.println("UNEXPECTED ERROR: NO RESPONSE"); - } else if (!(response instanceof List)) { - System.err.println("UNEXPECTED RESPONSE: " + response); - } else if (!((List)response).isEmpty()) { - System.err.println("BOOK ALREADY UPLOADED"); - } else { - try { - final UploadRequest uploadRequest = new UploadRequest(file.javaFile()); - uploadRequest.addHeader("Referer", verificationRequest.getURL()); - uploadRequest.addHeader("X-CSRFToken", csrfToken); - myNetworkContext.perform(uploadRequest); - } catch (ZLNetworkException e) { - e.printStackTrace(); + try { + final List responseList = (List)response; + if (responseList.isEmpty()) { + try { + final UploadRequest uploadRequest = new UploadRequest(file.javaFile()); + uploadRequest.addHeader("Referer", verificationRequest.getURL()); + uploadRequest.addHeader("X-CSRFToken", csrfToken); + myNetworkContext.perform(uploadRequest); + } catch (ZLNetworkException e) { + e.printStackTrace(); + } + } else { + final Map firstBookInfo = (Map)responseList.get(0); + System.err.println("BOOK ALREADY UPLOADED: " + firstBookInfo.get("id")); } + } catch (Exception e) { + System.err.println("UNEXPECTED RESPONSE: " + response); } }