From c9cffa913fe4ebc5cbe483cc5afe676e6cb54abd Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Fri, 23 Mar 2018 23:49:42 +0100 Subject: [PATCH] Small fixes in different places --- .../nikiroo/gofetch/support/BasicSupport.java | 2 +- src/be/nikiroo/gofetch/support/LWN.java | 6 ++-- src/be/nikiroo/gofetch/support/Pipedot.java | 35 +++++++++++++++++-- src/be/nikiroo/gofetch/support/Slashdot.java | 7 ++-- .../nikiroo/gofetch/support/TheRegister.java | 3 ++ 5 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/be/nikiroo/gofetch/support/BasicSupport.java b/src/be/nikiroo/gofetch/support/BasicSupport.java index b0325b3..8fc259a 100644 --- a/src/be/nikiroo/gofetch/support/BasicSupport.java +++ b/src/be/nikiroo/gofetch/support/BasicSupport.java @@ -435,7 +435,7 @@ public abstract class BasicSupport { long epoch = 0; try { - epoch = Long.parseLong(date); + epoch = Long.parseLong(date.trim()); } catch (Exception e) { epoch = 0; } diff --git a/src/be/nikiroo/gofetch/support/LWN.java b/src/be/nikiroo/gofetch/support/LWN.java index 37a5a8f..c033104 100644 --- a/src/be/nikiroo/gofetch/support/LWN.java +++ b/src/be/nikiroo/gofetch/support/LWN.java @@ -64,7 +64,7 @@ public class LWN extends BasicSupport { String categ = ""; pos = details.indexOf("]"); if (pos >= 0) { - categ = details.substring(1, pos + 1).trim(); + categ = details.substring(1, pos).trim(); } String author = ""; @@ -77,9 +77,9 @@ public class LWN extends BasicSupport { pos = details.indexOf(" Posted "); if (pos >= 0) { date = details.substring(pos + " Posted ".length()).trim(); - pos = details.indexOf(" by "); + pos = date.indexOf(" by "); if (pos >= 0) { - author = details.substring(0, pos).trim(); + date = date.substring(0, pos).trim(); } } diff --git a/src/be/nikiroo/gofetch/support/Pipedot.java b/src/be/nikiroo/gofetch/support/Pipedot.java index edbb804..9ea70ff 100644 --- a/src/be/nikiroo/gofetch/support/Pipedot.java +++ b/src/be/nikiroo/gofetch/support/Pipedot.java @@ -70,9 +70,38 @@ public class Pipedot extends BasicSupport { String details = ""; Elements detailsElements = article.getElementsByTag("div"); if (detailsElements.size() > 0) { - details = detailsElements.get(0).text(); + details = detailsElements.get(0).text().trim(); } + String author = ""; + int pos = details.indexOf("by "); + if (pos >= 0) { + author = details.substring(pos + "by ".length()).trim(); + pos = author.indexOf(" in "); + if (pos >= 0) { + author = author.substring(0, pos).trim(); + } + } + + String categ = ""; + pos = details.indexOf(" in "); + if (pos >= 0) { + categ = details.substring(pos + " in ".length()).trim(); + pos = categ.indexOf(" on "); + if (pos >= 0) { + categ = categ.substring(0, pos).trim(); + } + } + + String date = ""; + Element dateElement = article.getElementsByTag("time").first(); + if (dateElement != null) { + date = date(dateElement.attr("datetime")); + } + + // We already have all the details (date, author, id, categ) + details = ""; + String body = ""; for (Element elem : article.children()) { String tag = elem.tag().toString(); @@ -82,8 +111,8 @@ public class Pipedot extends BasicSupport { } } - list.add(new Story(getType(), id, title.text(), "", "", "", - details, intUrl, extUrl, body)); + list.add(new Story(getType(), id, title.text(), author, date, + categ, details, intUrl, extUrl, body)); } return list; diff --git a/src/be/nikiroo/gofetch/support/Slashdot.java b/src/be/nikiroo/gofetch/support/Slashdot.java index 4746cc2..b3a779d 100644 --- a/src/be/nikiroo/gofetch/support/Slashdot.java +++ b/src/be/nikiroo/gofetch/support/Slashdot.java @@ -49,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"); } @@ -92,6 +92,9 @@ public class Slashdot extends BasicSupport { 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, diff --git a/src/be/nikiroo/gofetch/support/TheRegister.java b/src/be/nikiroo/gofetch/support/TheRegister.java index 5903eaa..7fb1524 100644 --- a/src/be/nikiroo/gofetch/support/TheRegister.java +++ b/src/be/nikiroo/gofetch/support/TheRegister.java @@ -85,6 +85,9 @@ public class TheRegister extends BasicSupport { details += StringUtils.unhtml(detailsElement.text()).trim(); } + // We have some "details" but no content, so we switch them: + body = details; + details = ""; list.add(new Story(getType(), id, title, author, date, categ, details, intUrl, extUrl, body)); } -- 2.27.0