- }
-
- /* parse liked reply IDs. */
- SimpleXML likeReplyIdsXml = soneXml.getNode("reply-likes");
- Set<String> likedReplyIds = new HashSet<String>();
- if (likeReplyIdsXml == null) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded Sone %s has no reply likes!", new Object[] { sone });
- } else {
- for (SimpleXML likedReplyIdXml : likeReplyIdsXml.getNodes("reply-like")) {
- String replyId = likedReplyIdXml.getValue();
- likedReplyIds.add(replyId);
- }
- }
-
- /* parse known Sones. */
- SimpleXML knownSonesXml = soneXml.getNode("known-sones");
- Set<Sone> knownSones = new HashSet<Sone>();
- if (knownSonesXml == null) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded Sone %s has no known Sones!", new Object[] { sone });
- } else {
- for (SimpleXML knownSoneXml : knownSonesXml.getNodes("known-sone")) {
- String knownSoneId = knownSoneXml.getValue("sone-id", null);
- String knownSoneKey = knownSoneXml.getValue("sone-key", null);
- String knownSoneName = knownSoneXml.getValue("sone-name", null);
- if ((knownSoneId == null) || (knownSoneKey == null) || (knownSoneName == null)) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with missing data! ID: %s, Key: %s, Name: %s", new Object[] { sone, knownSoneId, knownSoneKey, knownSoneName });
- return null;
- }
- try {
- knownSones.add(core.getSone(knownSoneId).setRequestUri(new FreenetURI(knownSoneKey)).setName(knownSoneName));
- } catch (MalformedURLException mue1) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with invalid key: %s", new Object[] { sone, knownSoneKey });
- return null;
- }
+ try {
+ replies.add(core.getReply(replyId).setSone(sone).setPost(core.getPost(replyPostId)).setTime(Long.parseLong(replyTime)).setText(replyText));
+ } catch (NumberFormatException nfe1) {
+ /* TODO - mark Sone as bad. */
+ logger.log(Level.WARNING, "Downloaded reply for Sone %s with invalid time: %s", new Object[] { sone, replyTime });
+ return null;