From f2312531df437dd4d753d2dc13fb7975184437cf Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Tue, 10 Oct 2017 08:37:31 +0200 Subject: [PATCH] first draft --- pom.xml | 100 ++++++++++++++++++++++++++++++++++++++++++ src/main/java/pnews/HTML.java | 57 ++++++++++++++++++++++++ src/main/java/pnews/Main.java | 60 +++++++++++++++++++++++++ src/main/scripts/pnews.sh | 7 +++ 4 files changed, 224 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/pnews/HTML.java create mode 100644 src/main/java/pnews/Main.java create mode 100755 src/main/scripts/pnews.sh diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ad4f27a --- /dev/null +++ b/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + pnews + pnews + 1.0 + jar + pnews + + + UTF-8 + 1.8 + 1.8 + + + + + com.rometools + rome + 1.8.0 + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.10 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory} + false + + + + + + maven-resources-plugin + 3.0.1 + + + copy-resources + process-resources + + copy-resources + + + ${basedir}/target/ + + + src/main/scripts + true + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.0.2 + + + + true + pnews.Main + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.6 + + + fix-shell-permissions + process-resources + + + + + + + run + + + + + + + diff --git a/src/main/java/pnews/HTML.java b/src/main/java/pnews/HTML.java new file mode 100644 index 0000000..b761b88 --- /dev/null +++ b/src/main/java/pnews/HTML.java @@ -0,0 +1,57 @@ +package pnews; + +import java.util.List; + +import com.rometools.rome.feed.synd.SyndEntry; +import com.rometools.rome.feed.synd.SyndFeed; + +public class HTML { + private static void appendA(StringBuffer buf, String child, String href) { + buf.append(""); + buf.append(child); + buf.append(""); + } + + private static void appendDiv(StringBuffer buf, String child) { + buf.append("
"); + buf.append(child); + buf.append("
\n"); + } + + private static void append(StringBuffer buf, SyndEntry entry) { + buf.append("
"); + appendA(buf, entry.getTitle(), entry.getLink()); + buf.append("
\n"); + + appendDiv(buf, entry.getPublishedDate().toString()); + appendDiv(buf, entry.getDescription().getValue()); + } + + public static void append(StringBuffer buf, SyndFeed feed) { + for (SyndEntry e: feed.getEntries()) { + append(buf, e); + } + } + + public static String toHTML(List feeds) { + StringBuffer buf; + + buf = new StringBuffer(); + buf.append("\n"); + buf.append("\n"); + buf.append("\n"); + buf.append("\n"); + buf.append("\n"); + buf.append("\n"); + + for (SyndFeed e: feeds) + append(buf, e); + + buf.append("\n"); + buf.append("\n"); + + return buf.toString(); + } +} diff --git a/src/main/java/pnews/Main.java b/src/main/java/pnews/Main.java new file mode 100644 index 0000000..fce2fd1 --- /dev/null +++ b/src/main/java/pnews/Main.java @@ -0,0 +1,60 @@ +package pnews; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; + +import com.rometools.rome.feed.synd.SyndCategory; +import com.rometools.rome.feed.synd.SyndFeed; +import com.rometools.rome.io.FeedException; +import com.rometools.rome.io.SyndFeedInput; +import com.rometools.rome.io.XmlReader; + +public class Main { + private static void println(SyndFeed feed) { + System.out.println(feed.getTitle()); + for (SyndCategory cat: feed.getCategories()) { + System.out.println(cat.getName()); + } + System.out.println(feed.getFeedType()); + } + + public static void main(String[] args) throws IllegalArgumentException, FeedException, IOException { + URL url; + String html; + List feeds; + SyndFeed feed; + String[] urls = new String[] { + "http://www.france24.com/fr/france/rss", + "https://www.lesechos.fr/rss/rss_une_titres.xml" + }; + + System.out.println("pnews"); + + feeds = new ArrayList<>(urls.length); + for (String u: urls) { + url = new URL(u); + + try (XmlReader reader = new XmlReader(url)) { + feed = new SyndFeedInput().build(reader); + println(feed); + feeds.add(feed); + }; + } + + + html = HTML.toHTML(feeds); + + try (BufferedWriter writer = Files.newBufferedWriter(new File("pnews.html").toPath(), StandardCharsets.UTF_8)) { + writer.write(html); + } + + + System.out.println("done"); + } +} \ No newline at end of file diff --git a/src/main/scripts/pnews.sh b/src/main/scripts/pnews.sh new file mode 100755 index 0000000..fbad98b --- /dev/null +++ b/src/main/scripts/pnews.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +SDIR=`dirname $0` + +java -classpath rome-1.8.0.jar -jar $SDIR/pnews-1.0.jar -- 2.7.4