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.toolinux.com/. * * @author niki */ public class TooLinux extends BasicSupport { @Override public String getDescription() { return "TooLinux: Actualité généraliste sur Linux et les logiciels libres"; } @Override protected List> getUrls() throws IOException { List> urls = new ArrayList>(); urls.add(new AbstractMap.SimpleEntry(new URL( "https://www.toolinux.com/"), "")); return urls; } @Override protected List getArticles(Document doc) { return doc.getElementsByClass("hentry"); } @Override protected String getArticleId(Document doc, Element article) { return ""; // We use the date } @Override protected String getArticleTitle(Document doc, Element article) { Element titleElement = article.getElementsByClass("entry-title") .first(); if (titleElement != null) { return titleElement.text(); } return ""; } @Override protected String getArticleAuthor(Document doc, Element article) { return ""; } @Override protected String getArticleDate(Document doc, Element article) { Element dateElement = article.getElementsByClass("published").first(); if (dateElement != null) { return dateElement.attr("title"); } return ""; } @Override protected String getArticleCategory(Document doc, Element article, String currentCategory) { return ""; } @Override protected String getArticleDetails(Document doc, Element article) { return ""; } @Override protected String getArticleIntUrl(Document doc, Element article) { Element urlElement = article.getElementsByTag("a").first(); if (urlElement != null) { return urlElement.absUrl("href"); } return ""; } @Override protected String getArticleExtUrl(Document doc, Element article) { return ""; } @Override protected String getArticleContent(Document doc, Element article) { Element content = article.getElementsByClass("introduction").first(); if (content != null) { return getArticleText(content); } return ""; } @Override protected Element getFullArticle(Document doc) { return doc.getElementById("content"); } @Override protected List getFullArticleCommentPosts(Document doc, URL intUrl) { return null; } @Override protected ElementProcessor getElementProcessorFullArticle() { return new BasicElementProcessor() { @Override public boolean ignoreNode(Node node) { if ("notes".equals(node.attr("class"))) { return true; } return false; } }; } @Override protected List getCommentCommentPosts(Document doc, Element container) { return null; } @Override protected String getCommentId(Element post) { return null; } @Override protected String getCommentAuthor(Element post) { return null; } @Override protected String getCommentTitle(Element post) { return null; } @Override protected String getCommentDate(Element post) { return null; } @Override protected Element getCommentContentElement(Element post) { return null; } @Override protected ElementProcessor getElementProcessorComment() { return null; } }