From e625e67b5d1469d8c3784bcab853498e8914f229 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Thu, 22 Dec 2016 12:03:28 +0000 Subject: [PATCH] Console: Limit age of news entries displayed --- .../src/net/i2p/router/web/NewsFeedHelper.java | 14 +++++++++----- .../java/src/net/i2p/router/web/NewsHelper.java | 3 ++- .../src/net/i2p/router/web/SummaryBarRenderer.java | 7 ++++++- 3 files changed, 17 insertions(+), 7 deletions(-) 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 a40e3061a6..5bbf5a0712 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java @@ -20,7 +20,7 @@ import net.i2p.util.SystemVersion; */ public class NewsFeedHelper extends HelperBase { - private int _start = 0; + private int _start; private int _limit = 2; /** @@ -35,14 +35,15 @@ public class NewsFeedHelper extends HelperBase { } public String getEntries() { - return getEntries(_context, _start, _limit); + return getEntries(_context, _start, _limit, 0); } /** * @param max less than or equal to zero means all + * @param ageLimit time before now, less than or equal to zero means all (after the first) * @return non-null, "" if none */ - static String getEntries(I2PAppContext ctx, int start, int max) { + static String getEntries(I2PAppContext ctx, int start, int max, long ageLimit) { if (max <= 0) max = Integer.MAX_VALUE; StringBuilder buf = new StringBuilder(512); @@ -69,8 +70,11 @@ public class NewsFeedHelper extends HelperBase { fmt.setTimeZone(SystemVersion.getSystemTimeZone(ctx)); int i = 0; for (NewsEntry entry : entries) { - if (i++ < start) + if (i < start) continue; + if (i > start && entry.updated > 0 && ageLimit > 0 && + entry.updated < ctx.clock().now() - ageLimit) + break; buf.append("<div class=\"newsentry\"><h3>"); if (entry.updated > 0) { Date date = new Date(entry.updated); @@ -91,7 +95,7 @@ public class NewsFeedHelper extends HelperBase { buf.append("</h3>\n<div class=\"newscontent\">\n") .append(entry.content) .append("\n</div></div>\n"); - if (i >= start + max) + if (++i >= start + max) break; } } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsHelper.java index ee353925a5..f8bd51e6fd 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NewsHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsHelper.java @@ -231,7 +231,8 @@ public class NewsHelper extends ContentHelper { */ @Override public String getContent() { - return NewsFeedHelper.getEntries(_context, 0, 2); + // show a min of 1, max of 3, none older than 60 days over min + return NewsFeedHelper.getEntries(_context, 0, 3, 60*24*60*60*1000L); } /** diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java index e6fba27109..c4847df604 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java @@ -637,8 +637,13 @@ class SummaryBarRenderer { // the router sets the JVM time zone to UTC but saves the original here so we can get it fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context)); int i = 0; - final int max = 2; + // show a min of 1, max of 3, none older than 60 days over min + final int min = 1; + final int max = 3; for (NewsEntry entry : entries) { + if (i >= min && entry.updated > 0 && + entry.updated < _context.clock().now() - 60*24*60*60*1000L) + break; buf.append("<li><a href=\"/?news=1&consoleNonce=") .append(consoleNonce) .append("\">"); -- GitLab