import be.nikiroo.gofetch.data.Comment;
import be.nikiroo.gofetch.data.Story;
+import be.nikiroo.utils.StringUtils;
/**
* Support <a href='https://slashdot.org/'>https://slashdot.org/</a>.
List<Story> list = new ArrayList<Story>();
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) {
}
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");
}
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;
List<Comment> comments = new ArrayList<Comment>();
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) {
}
private List<String> toLines(Element element) {
- return toLines(element, new QuoteProcessor() {
+ return toLines(element, new BasicElementProcessor() {
@Override
public String processText(String text) {
while (text.startsWith(">")) { // comment in one-liners
return false;
}
-
- @Override
- public boolean ignoreNode(Node node) {
- return false;
- }
-
- @Override
- public String manualProcessing(Node node) {
- return null;
- }
});
}
}