X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Fsupport%2FLWN.java;h=c033104f92fed7e7a81a5673894c0463a8d0608e;hb=26816d976f9d888fbf75feb754d761871a988c69;hp=dba4c3bfa922f684729352baa2d438e075c1ac88;hpb=27008a8782c0ed96e07c8dc39ff0ed1f5163a9d0;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/support/LWN.java b/src/be/nikiroo/gofetch/support/LWN.java index dba4c3b..c033104 100644 --- a/src/be/nikiroo/gofetch/support/LWN.java +++ b/src/be/nikiroo/gofetch/support/LWN.java @@ -31,12 +31,12 @@ public class LWN extends BasicSupport { List list = new ArrayList(); URL url = new URL("https://lwn.net/"); - InputStream in = open(url); + InputStream in = downloader.open(url); Document doc = DataUtil.load(in, "UTF-8", url.toString()); - Elements stories = doc.getElementsByClass("pure-u-1"); - for (Element story : stories) { - Elements titles = story.getElementsByClass("Headline"); - Elements listings = story.getElementsByClass("BlurbListing"); + Elements articles = doc.getElementsByClass("pure-u-1"); + for (Element article : articles) { + Elements titles = article.getElementsByClass("Headline"); + Elements listings = article.getElementsByClass("BlurbListing"); if (titles.size() == 0) { continue; } @@ -59,8 +59,16 @@ public class LWN extends BasicSupport { } body = body.trim(); + int pos; + + String categ = ""; + pos = details.indexOf("]"); + if (pos >= 0) { + categ = details.substring(1, pos).trim(); + } + String author = ""; - int pos = details.indexOf(" by "); + pos = details.indexOf(" by "); if (pos >= 0) { author = details.substring(pos + " by ".length()).trim(); } @@ -69,12 +77,19 @@ public class LWN extends BasicSupport { pos = details.indexOf(" Posted "); if (pos >= 0) { date = details.substring(pos + " Posted ".length()).trim(); + pos = date.indexOf(" by "); + if (pos >= 0) { + date = date.substring(0, pos).trim(); + } } + // We extracted everything from details so... + details = ""; + String id = ""; String intUrl = ""; String extUrl = ""; - for (Element idElem : story.getElementsByTag("a")) { + for (Element idElem : article.getElementsByTag("a")) { // Last link is the story link intUrl = idElem.absUrl("href"); pos = intUrl.indexOf("#Comments"); @@ -84,8 +99,8 @@ public class LWN extends BasicSupport { id = intUrl.replaceAll("[^0-9]", ""); } - list.add(new Story(getType(), id, title, details, intUrl, extUrl, - body)); + list.add(new Story(getType(), id, title, author, date, categ, + details, intUrl, extUrl, body)); } return list; @@ -99,7 +114,7 @@ public class LWN extends BasicSupport { // Do not try the paid-for stories... if (!story.getTitle().startsWith("[$]")) { URL url = new URL(story.getUrlInternal()); - InputStream in = open(url); + InputStream in = downloader.open(url); Document doc = DataUtil.load(in, "UTF-8", url.toString()); Elements fullContentElements = doc .getElementsByClass("ArticleText"); @@ -167,7 +182,7 @@ public class LWN extends BasicSupport { } private List toLines(Element element) { - return toLines(element, new QuoteProcessor() { + return toLines(element, new BasicElementProcessor() { @Override public String processText(String text) { while (text.startsWith(">")) { // comments