X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Fsupport%2FReddit.java;h=617bb9ce6512d29f85e44e7e4905bb27ec03828f;hb=757c24ee76c7c35d4fbd05284618d5ba57b9cca1;hp=599bb91f3b66283ff4cc11c9104787d52f359115;hpb=bce031dcb08744ec8812249435dc6c8879229308;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/support/Reddit.java b/src/be/nikiroo/gofetch/support/Reddit.java index 599bb91..617bb9c 100644 --- a/src/be/nikiroo/gofetch/support/Reddit.java +++ b/src/be/nikiroo/gofetch/support/Reddit.java @@ -79,8 +79,12 @@ public class Reddit extends BasicSupport { @Override protected String getArticleAuthor(Document doc, Element article) { - return article.getElementsByAttributeValueStarting("href", "/user/") - .text().trim(); + String user = article + .getElementsByAttributeValueStarting("href", "/user/").text() + .trim(); + if (user.startsWith("/u")) + user = user.substring(3); + return user; } @Override @@ -92,7 +96,7 @@ public class Reddit extends BasicSupport { } String dateAgo = el.text().trim(); - return new SimpleDateFormat("yyyy-MM-dd_HH-mm") + return new SimpleDateFormat("yyyy-MM-dd") // _HH-mm .format(getDate(dateAgo)); } @@ -184,21 +188,11 @@ public class Reddit extends BasicSupport { @Override protected List getCommentCommentPosts(Document doc, Element container) { + List elements = new LinkedList(); for (Element el : container.children()) { - elements.addAll(el.getElementsByClass("jHfOJm")); - - } - - if (elements.isEmpty()) { - for (Element el : container.children()) { - elements.addAll(el.getElementsByClass("s1ook3io-0")); - elements.addAll(el.getElementsByClass("s1ook3io-1")); - elements.addAll(el.getElementsByClass("s1ook3io-2")); - elements.addAll(el.getElementsByClass("s1ook3io-3")); - elements.addAll(el.getElementsByClass("s1ook3io-4")); - elements.addAll(el.getElementsByClass("s1ook3io-5")); - } + // elements.addAll(el.getElementsByClass("jHfOJm")); + elements.addAll(el.getElementsByClass("emJXdb")); } return elements; @@ -208,8 +202,6 @@ public class Reddit extends BasicSupport { protected String getCommentId(Element post) { int level = 1; Elements els = post.getElementsByClass("imyGpC"); - if (els.isEmpty()) - els.addAll(post.getElementsByClass("emJXdb")); if (!els.isEmpty()) { String l = els.first().text().trim().replace("level ", ""); @@ -276,18 +268,22 @@ public class Reddit extends BasicSupport { List comments = new LinkedList(); Map lastOfLevel = new HashMap(); - for (Comment c : story.getComments()) { - int level = Integer.parseInt(c.getId()); - lastOfLevel.put(level, c); - if (level <= 1) { - comments.add(c); - } else { - Comment parent = lastOfLevel.get(level - 1); - if (parent != null) { - parent.add(c); - } else { - // bad data + if (!story.getComments().isEmpty()) { + // comments are saved under a main ID (which is a copy of comment 1) + // TODO: fix the cause instead of working around it here + for (Comment c : story.getComments().get(0)) { + int level = Integer.parseInt(c.getId()); + lastOfLevel.put(level, c); + if (level <= 1) { comments.add(c); + } else { + Comment parent = lastOfLevel.get(level - 1); + if (parent != null) { + parent.add(c); + } else { + // bad data + comments.add(c); + } } } }