public void parsePointAPIMessagePost(PointMessage msg, JSONObject p) throws JSONException, ParseException { PointUser pu = new PointUser(); msg.User = pu; JSONObject author = p.getJSONObject("author"); pu.UName = author.getString("login"); pu.FullName = author.getString("name"); pu.UID = author.getInt("id"); if (author.has("avatar") && author.get("avatar") != JSONObject.NULL) pu.avatarUrl = author.getString("avatar"); msg.Text = p.getString("text"); String createdStr = p.getString("created"); msg.Timestamp = parsePointAPIDate(createdStr); msg.tags = new Vector<String>(); if (p.has("tags")) { JSONArray tagso = p.getJSONArray("tags"); for (int i = 0; i < tagso.length(); i++) { msg.tags.add(tagso.getString(i)); } } if (p.has("files")) { JSONArray fileso = p.getJSONArray("files"); for (int i = 0; i < fileso.length(); i++) { msg.Text += "\n@\n" + fileso.getString(i); } } msg.setMID(new PointMessageID(pu.UName, p.getString("id"), 0)); msg.replies = p.getInt("comments_count"); msg.microBlogCode = PointMessageID.CODE; }
public ArrayList<JuickMessage> parseAPIPostAndReplies(String jsonStr) { ArrayList<JuickMessage> retval = new ArrayList<JuickMessage>(); try { JSONObject jo = new JSONObject(new JSONTokener(new FastStringReader(jsonStr))); JSONObject post = jo.getJSONObject("post"); PointMessage msg = new PointMessage(); parsePointAPIMessagePost(msg, post); retval.add(msg); JSONArray comments = jo.getJSONArray("comments"); for (int i = 0; i < comments.length(); i++) { JSONObject comment = comments.getJSONObject(i); PointMessage comm = new PointMessage(); try { parsePointAPIComment(comment, comm, msg); retval.add(comm); } catch (Exception e) { e.printStackTrace(); } } } catch (JSONException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } return retval; }
public static BNWMessage initFromJSON(JSONObject json) throws JSONException { BNWMessage jmsg = new BNWMessage(); if (json.has("message")) { jmsg.setMID(new BnwMessageID(json.getString("message"))); jmsg.setRIDString(json.getString("id")); } else { jmsg.setMID(new BnwMessageID(json.getString("id"))); } jmsg.Text = json.getString("text"); Calendar cal = new GregorianCalendar(); cal.setTimeZone(TimeZone.getTimeZone("GMT")); cal.setTimeInMillis((long) (json.getDouble("date") * 1000)); jmsg.Timestamp = cal.getTime(); jmsg.User = new JuickUser(); jmsg.User.UName = json.getString("user"); if (json.has("replyto") && json.get("replyto") != JSONObject.NULL) jmsg.setReplyToString(json.getString("replyto")); if (json.has("tags")) { JSONArray tags = json.getJSONArray("tags"); for (int n = 0; n < tags.length(); n++) { jmsg.tags.add(tags.getString(n).replace(""", "\"")); } } if (json.has("clubs")) { JSONArray clubs = json.getJSONArray("clubs"); for (int n = 0; n < clubs.length(); n++) { jmsg.clubs.add(clubs.getString(n).replace(""", "\"")); } } if (json.has("replycount")) { jmsg.replies = json.getInt("replycount"); } jmsg.microBlogCode = BnwMessageID.CODE; return jmsg; }
@Override public void getChildren( MessageID mid, Utils.Notification notification, Utils.Function<Void, ArrayList<JuickMessage>> cont) { String midString = ((BnwMessageID) mid).getId(); final String jsonStr = httpClientService .getJSON( "http://ipv4.bnw.im/api/show?message=" + midString + "&replies=1", notification) .getResult(); if (jsonStr != null) { try { JSONObject fullThread = new JSONObject(jsonStr); JSONObject root = fullThread.getJSONObject("message"); ArrayList<BNWMessage> msgs = new ArrayList<BNWMessage>(); msgs.add(initFromJSON(root)); JSONArray replies = fullThread.getJSONArray("replies"); HashMap<String, Integer> numbersRemap = new HashMap<String, Integer>(); int replyNo = 1; for (int i = 0; i < replies.length(); i++) { BNWMessage reply = initFromJSON(replies.getJSONObject(i)); msgs.add(reply); reply.setRID(replyNo); numbersRemap.put(reply.getRIDString(), replyNo); replyNo++; } for (int i = 1; i < msgs.size(); i++) { BNWMessage msg = msgs.get(i); String replyToString = msg.getReplyToString(); if (replyToString == null) { msg.setReplyTo(0); } else { Integer prevComment = numbersRemap.get(replyToString); if (prevComment == null) prevComment = 0; msg.setReplyTo(prevComment); } } cont.apply(new ArrayList<JuickMessage>(msgs)); } catch (JSONException e) { cont.apply(new ArrayList<JuickMessage>()); } } else { cont.apply(new ArrayList<JuickMessage>()); } }
public ArrayList<JuickMessage> parseJSONpure(String jsonStr, boolean storeSource) { ArrayList<JuickMessage> messages = new ArrayList<JuickMessage>(); if (jsonStr != null) { try { JSONObject objMessages = new JSONObject(jsonStr); JSONArray json = objMessages.getJSONArray("messages"); int cnt = json.length(); for (int i = 0; i < cnt; i++) { JSONObject jsonObject = json.getJSONObject(i); JuickMessage msg = initFromJSON(jsonObject); messages.add(msg); if (!storeSource) msg.source = null; } } catch (Exception e) { e.printStackTrace(); // Log.e("initOpinionsAdapter", e.toString()); } } return messages; }
public ArrayList<JuickMessage> parseAPIMessageListPure(String jsonStr) { ArrayList<JuickMessage> retval = new ArrayList<JuickMessage>(); try { JSONObject jo = new JSONObject(new JSONTokener(new FastStringReader(jsonStr))); JSONArray posts = jo.getJSONArray("posts"); for (int i = 0; i < posts.length(); i++) { JSONObject post = posts.getJSONObject(i); PointMessage msg = new PointMessage(); try { parsePointAPIMessage(post, msg); retval.add(msg); } catch (Exception e) { e.printStackTrace(); } } } catch (JSONException e) { e.printStackTrace(); } return retval; }