X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Fsupport%2FSlashdot.java;h=b3a779da62d229469346f8a9455b1e01b160ab9d;hb=c9cffa913fe4ebc5cbe483cc5afe676e6cb54abd;hp=1581d23cb2361f8fa55c912ff1e2516c8fc91d9d;hpb=202173602397b0793542c7a90f9d86013e153067;p=gofetch.git
diff --git a/src/be/nikiroo/gofetch/support/Slashdot.java b/src/be/nikiroo/gofetch/support/Slashdot.java
index 1581d23..b3a779d 100644
--- a/src/be/nikiroo/gofetch/support/Slashdot.java
+++ b/src/be/nikiroo/gofetch/support/Slashdot.java
@@ -14,6 +14,7 @@ import org.jsoup.select.Elements;
import be.nikiroo.gofetch.data.Comment;
import be.nikiroo.gofetch.data.Story;
+import be.nikiroo.utils.StringUtils;
/**
* Support https://slashdot.org/.
@@ -31,7 +32,7 @@ public class Slashdot extends BasicSupport {
List list = new ArrayList();
URL url = new URL("https://slashdot.org/");
- InputStream in = open(url);
+ InputStream in = downloader.open(url);
Document doc = DataUtil.load(in, "UTF-8", url.toString());
Elements articles = doc.getElementsByTag("header");
for (Element article : articles) {
@@ -48,8 +49,8 @@ public class Slashdot extends BasicSupport {
}
Elements links = title.getElementsByTag("a");
- String intUrl = null;
- String extUrl = null;
+ String intUrl = "";
+ String extUrl = "";
if (links.size() > 0) {
intUrl = links.get(0).absUrl("href");
}
@@ -63,14 +64,41 @@ public class Slashdot extends BasicSupport {
details = detailsElements.get(0).text();
}
+ // details:
+ // "Posted by AUTHOR on DATE from the further-crackdown dept."
+ String author = "";
+ int pos = details.indexOf(" on ");
+ if (details.startsWith("Posted by ") && pos >= 0) {
+ author = details.substring("Posted by ".length(), pos).trim();
+ }
+ pos = details.indexOf(" from the ");
+ if (pos >= 0) {
+ details = details.substring(pos).trim();
+ }
+
String body = "";
Element bodyElement = doc.getElementById("text-" + id);
if (bodyElement != null) {
body = bodyElement.text();
}
- list.add(new Story(getType(), id, title.text(), details, intUrl,
- extUrl, body));
+ String categ = "";
+ Element categElement = doc.getElementsByClass("topic").first();
+ if (categElement != null) {
+ categ = StringUtils.unhtml(categElement.text()).trim();
+ }
+
+ String date = "";
+ Element dateElement = doc.getElementsByTag("time").first();
+ if (dateElement != null) {
+ date = StringUtils.unhtml(dateElement.text()).trim();
+ if (date.startsWith("on ")) {
+ date = date.substring("on ".length());
+ }
+ }
+
+ list.add(new Story(getType(), id, title.text(), author, date,
+ categ, details, intUrl, extUrl, body));
}
return list;
@@ -81,7 +109,7 @@ public class Slashdot extends BasicSupport {
List comments = new ArrayList();
URL url = new URL(story.getUrlInternal());
- InputStream in = open(url);
+ InputStream in = downloader.open(url);
Document doc = DataUtil.load(in, "UTF-8", url.toString());
Element listing = doc.getElementById("commentlisting");
if (listing != null) {