forked from I2P_Developers/i2p.i2p
News: connect it all together (ticket #1425):
- Enable new NewsManager to load/store feed items on disk by UUID - News items are stored forever, not lost when they are removed from feed - News read in once at startup, not at every summary bar refresh - Convert old initialNews.xml and news.xml to NewsEntry format - Limit display to 2 news items in summary bar, /home and /console - New /news page to show all news
This commit is contained in:
@@ -21,12 +21,14 @@ import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import net.i2p.app.ClientAppManager;
|
||||
import net.i2p.crypto.SU3File;
|
||||
import net.i2p.crypto.TrustedUpdate;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterVersion;
|
||||
import net.i2p.router.news.NewsEntry;
|
||||
import net.i2p.router.news.NewsManager;
|
||||
import net.i2p.router.news.NewsMetadata;
|
||||
import net.i2p.router.news.NewsXMLParser;
|
||||
import net.i2p.router.util.RFC822Date;
|
||||
@@ -45,6 +47,8 @@ import net.i2p.util.SSLEepGet;
|
||||
import net.i2p.util.Translate;
|
||||
import net.i2p.util.VersionComparator;
|
||||
|
||||
import org.cybergarage.xml.Node;
|
||||
|
||||
/**
|
||||
* Task to fetch updates to the news.xml, and to keep
|
||||
* track of whether that has an announcement for a new version.
|
||||
@@ -475,10 +479,21 @@ class NewsFetcher extends UpdateRunner {
|
||||
xml = to1;
|
||||
}
|
||||
NewsXMLParser parser = new NewsXMLParser(_context);
|
||||
parser.parse(xml);
|
||||
Node root = parser.parse(xml);
|
||||
xml.delete();
|
||||
NewsMetadata data = parser.getMetadata();
|
||||
List<NewsEntry> entries = parser.getEntries();
|
||||
// add entries to the news manager
|
||||
ClientAppManager cmgr = _context.clientAppManager();
|
||||
if (cmgr != null) {
|
||||
NewsManager nmgr = (NewsManager) cmgr.getRegisteredApp(NewsManager.APP_NAME);
|
||||
if (nmgr != null) {
|
||||
nmgr.addEntries(entries);
|
||||
List<Node> nodes = NewsXMLParser.getNodes(root, "entry");
|
||||
nmgr.storeEntries(nodes);
|
||||
}
|
||||
}
|
||||
// store entries and metadata in old news.xml format
|
||||
String sudVersion = su3.getVersionString();
|
||||
String signingKeyName = su3.getSignerString();
|
||||
File to3 = new File(_context.getTempDir(), "tmp3-" + _context.random().nextInt() + ".xml");
|
||||
|
||||
Reference in New Issue
Block a user