X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Fsupport%2FSeptSurSept.java;fp=src%2Fbe%2Fnikiroo%2Fgofetch%2Fsupport%2FSeptSurSept.java;h=6134f5725cea22cdb01bb402629cd83b1f7ed049;hb=9cf08a99ce4a796a2294fa1f14315aa16d97c3ce;hp=0000000000000000000000000000000000000000;hpb=c5850b2b4c929bf7fe77cc069ebfcc5c00ba9265;p=gofetch.git
diff --git a/src/be/nikiroo/gofetch/support/SeptSurSept.java b/src/be/nikiroo/gofetch/support/SeptSurSept.java
new file mode 100644
index 0000000..6134f57
--- /dev/null
+++ b/src/be/nikiroo/gofetch/support/SeptSurSept.java
@@ -0,0 +1,232 @@
+package be.nikiroo.gofetch.support;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map.Entry;
+
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.nodes.Node;
+
+/**
+ * Support https://www.7sur7.be/.
+ *
+ * @author niki
+ */
+public class SeptSurSept extends BasicSupport {
+ @Override
+ public String getDescription() {
+ return "7SUR7.be Info, sport et showbiz, 24/24, 7/7";
+ }
+
+ @Override
+ public void login() throws IOException {
+ addCookie("pwrefr2", "");
+ addCookie("pwv-atXMVFeyFP1Ki09i", "1");
+ addCookie("pwg-atXMVFeyFP1Ki09i", "basic");
+
+ addCookie("pwv", "1");
+ addCookie("pw", "functional");
+
+ URL url = new URL("https://www.7sur7.be/7s7/privacy/callback.do"
+ + "?redirectUri=/" + "&pwv=1" + "&pws=functional%7Canalytics"
+ + "&days=3650" + "&referrer=");
+
+ open(url).close();
+ }
+
+ @Override
+ protected List> getUrls() throws IOException {
+ List> urls = new ArrayList>();
+ URL url = new URL("https://www.7sur7.be/");
+ urls.add(new AbstractMap.SimpleEntry(url, ""));
+
+ return urls;
+ }
+
+ @Override
+ protected List getArticles(Document doc) {
+ return doc.getElementsByClass("clip");
+ }
+
+ @Override
+ protected String getArticleId(Document doc, Element article) {
+ String id = article.attr("id");
+ if (id != null && id.startsWith("clip")) {
+ return id.substring("clip".length());
+ }
+
+ return null;
+ }
+
+ @Override
+ protected String getArticleTitle(Document doc, Element article) {
+ return article.attr("data-title");
+ }
+
+ @Override
+ protected String getArticleAuthor(Document doc, Element article) {
+ return "";
+ }
+
+ @Override
+ protected String getArticleDate(Document doc, Element article) {
+ return article.attr("data-date");
+ }
+
+ @Override
+ protected String getArticleCategory(Document doc, Element article,
+ String currentCategory) {
+ Element parent = article.parent();
+ if (parent != null) {
+ Element catElement = parent.previousElementSibling();
+ if (catElement != null) {
+ return catElement.text();
+ }
+ }
+
+ return "";
+ }
+
+ @Override
+ protected String getArticleDetails(Document doc, Element article) {
+ return "";
+ }
+
+ @Override
+ protected String getArticleIntUrl(Document doc, Element article) {
+ return article.absUrl("href");
+ }
+
+ @Override
+ protected String getArticleExtUrl(Document doc, Element article) {
+ return "";
+ }
+
+ @Override
+ protected String getArticleContent(Document doc, Element article) {
+ return article.attr("data-intro").trim();
+ }
+
+ @Override
+ protected Element getFullArticle(Document doc) {
+ return doc.getElementById("detail_content");
+ }
+
+ @Override
+ protected List getFullArticleCommentPosts(Document doc, URL intUrl) {
+ return getSubCommentElements(doc.getElementsByClass("comment-list")
+ .first());
+ }
+
+ @Override
+ protected ElementProcessor getElementProcessorFullArticle() {
+ return new BasicElementProcessor() {
+ @Override
+ public boolean ignoreNode(Node node) {
+ return node.attr("class").contains("chapo");
+ }
+
+ @Override
+ public String isSubtitle(Node node) {
+ if (node instanceof Element) {
+ Element element = (Element) node;
+ if (element.tagName().startsWith("h")
+ && element.tagName().length() == 2) {
+ return element.text();
+ }
+ }
+ return null;
+ }
+ };
+ }
+
+ @Override
+ protected List getCommentCommentPosts(Document doc,
+ Element container) {
+ return getSubCommentElements(container.getElementsByClass("children")
+ .first());
+ }
+
+ @Override
+ protected String getCommentId(Element post) {
+ Element idE = post.getElementsByTag("a").first();
+ if (idE != null) {
+ return idE.attr("id");
+ }
+
+ return "";
+ }
+
+ @Override
+ protected String getCommentAuthor(Element post) {
+ // Since we have no title, we switch with author
+ return "";
+ }
+
+ @Override
+ protected String getCommentTitle(Element post) {
+ // Since we have no title, we switch with author
+ Element authorE = post.getElementsByTag("footer").first();
+ if (authorE != null) {
+ authorE = authorE.getElementsByTag("cite").first();
+ }
+ if (authorE != null) {
+ return authorE.text();
+ }
+
+ return "";
+ }
+
+ @Override
+ protected String getCommentDate(Element post) {
+ Element idE = post.getElementsByTag("a").first();
+ if (idE != null) {
+ Element dateE = idE.getElementsByTag("span").first();
+ if (dateE != null) {
+ return dateE.attr("data-epoch");
+ }
+ }
+
+ return "";
+ }
+
+ @Override
+ protected Element getCommentContentElement(Element post) {
+ Element contentE = post.getElementsByClass("comment-content").first();
+ return contentE;
+ }
+
+ @Override
+ protected ElementProcessor getElementProcessorComment() {
+ return new BasicElementProcessor() {
+ @Override
+ public boolean ignoreNode(Node node) {
+ if (node instanceof Element) {
+ Element el = (Element) node;
+ if ("h4".equals(el.tagName())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ };
+ }
+
+ private List getSubCommentElements(Element posts) {
+ List commentElements = new ArrayList();
+ if (posts != null) {
+ for (Element possibleCommentElement : posts.children()) {
+ if (possibleCommentElement.hasClass("comment")) {
+ commentElements.add(possibleCommentElement);
+ }
+ }
+ }
+
+ return commentElements;
+ }
+}