Reader r = engine.getHttpRequest().getReader();
json = (JsonJavaObject) JsonParser.fromJson(factory, r);
String strMethod = "url.fetchmetadata"; //json.getString("method");
String strLink = json.getString("link");
if ("url.fetchmetadata".equalsIgnoreCase(strMethod)) {
URLFetcher urlFetcher = new URLFetcher(strLink);
if (urlFetcher.fetchURL()) {
JsonWriter jsWriter = new JsonWriter(engine
.getHttpResponse().getWriter(), true);
jsWriter.startObject();
jsWriter.startProperty("result");
jsWriter.outStringLiteral("ok");
jsWriter.endProperty();
// Title
jsWriter.startProperty("title");
jsWriter.outStringLiteral(urlFetcher.getTitle());
jsWriter.endProperty();
// Description
jsWriter.startProperty("desc");
jsWriter.outStringLiteral(urlFetcher.getDescription());
jsWriter.endProperty();
// url
jsWriter.startProperty("url");
jsWriter.outStringLiteral(urlFetcher.getURL());
jsWriter.endProperty();
jsWriter.startProperty("images");
jsWriter.startArray();
for (Iterator<String> itImg = urlFetcher.getThumbNails()
.iterator(); itImg.hasNext();) {
jsWriter.startArrayItem();
jsWriter.outStringLiteral(itImg.next());
jsWriter.endArrayItem();
}
jsWriter.endArray();
jsWriter.endProperty();
jsWriter.startProperty("opengraph");
if (urlFetcher.getOpenGraph().size() > 0) {
jsWriter.startObject();
for (Iterator<String> itOG = urlFetcher.getOpenGraph()
.keySet().iterator(); itOG.hasNext();) {
String strOGTag = itOG.next();
jsWriter.startProperty(strOGTag);
jsWriter.outStringLiteral(urlFetcher.getOpenGraph()
.get(strOGTag));
jsWriter.endProperty();
}
jsWriter.endObject();
} else {
jsWriter.outStringLiteral("");
}
jsWriter.endProperty();
jsWriter.endObject();
jsWriter.close();
return;
} else {
ErrorJSONBuilder.getInstance().processError2JSON(engine,
5001, urlFetcher.getError(),
urlFetcher.getException());
return;
}
}
ErrorJSONBuilder.getInstance().processError2JSON(engine, 5002,