1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 02:39:23 +02:00

better server reply processing

This commit is contained in:
Nikolay Pultsin 2014-06-27 15:11:57 +01:00
parent 67865fad60
commit 19c72a617c

View file

@ -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<String,String> firstBookInfo = (Map<String,String>)responseList.get(0);
System.err.println("BOOK ALREADY UPLOADED: " + firstBookInfo.get("id"));
}
} catch (Exception e) {
System.err.println("UNEXPECTED RESPONSE: " + response);
}
}