diff --git a/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java b/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java index 781449ac90158a4cbd2eede9fef1674c2261f9cb..9f21bf93cd72339a8a626739e7fb49f7bfba997e 100644 --- a/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java +++ b/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java @@ -269,6 +269,7 @@ public class NewsManager implements RouterApp { return rv; } +/**** public static void main(String[] args) { if (args.length != 0) { System.err.println("Usage: NewsManager"); @@ -281,7 +282,9 @@ public class NewsManager implements RouterApp { System.out.println("Loaded " + entries.size() + " news entries"); for (int i = 0; i < entries.size(); i++) { NewsEntry e = entries.get(i); - System.out.println("\n****** News #" + (i+1) + ": " + e.title + ' ' + new Date(e.updated) + '\n' + e.content); + System.out.println("\n****** News #" + (i+1) + ": " + e.title + ' ' + new Date(e.updated) + + "\nLink: " + e.link + '\n' + e.content); } } +****/ } diff --git a/apps/routerconsole/java/src/net/i2p/router/news/NewsXMLParser.java b/apps/routerconsole/java/src/net/i2p/router/news/NewsXMLParser.java index 20d8746c7c2539217c71eca3bc8b5fab3fc8deba..5f35fa8c6dd62719376a17c0334bc62e4d92f528 100644 --- a/apps/routerconsole/java/src/net/i2p/router/news/NewsXMLParser.java +++ b/apps/routerconsole/java/src/net/i2p/router/news/NewsXMLParser.java @@ -267,9 +267,9 @@ public class NewsXMLParser { } n = entry.getNode("link"); if (n != null) { - e.link = n.getValue(); - if (e.link != null) - e.link = e.link.trim(); + String a = n.getAttributeValue("href"); + if (a.length() > 0) + e.link = a.trim(); } n = entry.getNode("id"); if (n != null) { diff --git a/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java b/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java index 65e17c6bc2bc0744730e157c70d2c93c68862146..164b04422cf87d95c7a10b4fd89aa106e4eb6193 100644 --- a/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java +++ b/apps/routerconsole/java/src/net/i2p/router/news/PersistNews.java @@ -155,9 +155,9 @@ class PersistNews { } n = entry.getNode("link"); if (n != null) { - e.link = n.getValue(); - if (e.link != null) - e.link = e.link.trim(); + String a = n.getAttributeValue("href"); + if (a.length() > 0) + e.link = a.trim(); } n = entry.getNode("id"); if (n != null) { @@ -231,6 +231,7 @@ class PersistNews { return PFX + Base64.encode(hash) + SFX; } +/**** public static void main(String[] args) { if (args.length != 1) { System.err.println("Usage: PersistNews file.xml"); @@ -262,4 +263,5 @@ class PersistNews { System.out.println("\n****** News #" + (i+1) + ": " + e.title + '\n' + e.content); } } +****/ } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java index 7a9adae761efacad869eea4849110be66ee44fe7..ef2e7ea3754ce5153c3aceb06f6229a72fd8fe81 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java @@ -8,6 +8,7 @@ import java.util.TimeZone; import net.i2p.I2PAppContext; import net.i2p.app.ClientAppManager; +import net.i2p.data.DataHelper; import net.i2p.router.news.NewsEntry; import net.i2p.router.news.NewsManager; @@ -68,8 +69,12 @@ public class NewsFeedHelper extends HelperBase { buf.append(fmt.format(date)) .append(": "); } - buf.append(entry.title) - .append("</h3>\n<div class=\"newscontent\">\n") + if (entry.link != null) + buf.append("<a href=\"").append(DataHelper.escapeHTML(entry.link)).append("\">"); + buf.append(entry.title); + if (entry.link != null) + buf.append("</a>"); + buf.append("</h3>\n<div class=\"newscontent\">\n") .append(entry.content) .append("\n</div></div>\n"); if (i >= start + max)