From e7ad516685ceeed00426136945e7392442dd9048 Mon Sep 17 00:00:00 2001 From: ragnarok Date: Sun, 9 Oct 2005 03:32:34 +0000 Subject: [PATCH] * Beautify PetNameDB API. * Start of syndie auto address export. --- .../java/src/net/i2p/syndie/BlogManager.java | 10 ++--- .../i2p/syndie/sml/HTMLPreviewRenderer.java | 8 ++-- .../src/net/i2p/syndie/sml/HTMLRenderer.java | 45 ++++++++++++------- .../src/net/i2p/syndie/sml/RSSRenderer.java | 16 ++++--- .../net/i2p/syndie/web/ArchiveViewerBean.java | 27 +++++------ .../java/src/net/i2p/syndie/web/PostBean.java | 2 +- .../net/i2p/syndie/web/RemoteArchiveBean.java | 5 ++- apps/syndie/jsp/_bodyindex.jsp | 7 +-- apps/syndie/jsp/addresses.jsp | 16 +++---- apps/syndie/jsp/post.jsp | 4 +- apps/syndie/jsp/remote.jsp | 6 +-- .../src/net/i2p/client/naming/PetNameDB.java | 28 +++++++----- .../client/naming/PetNameNamingService.java | 4 +- 13 files changed, 100 insertions(+), 78 deletions(-) diff --git a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java index 5399e6cd8..e9cba3d9e 100644 --- a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java +++ b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java @@ -416,12 +416,12 @@ public class BlogManager { PetNameDB userDb = user.getPetNameDB(); PetNameDB routerDb = _context.petnameDb(); // horribly inefficient... - for (Iterator names = userDb.getNames().iterator(); names.hasNext();) { - PetName pn = userDb.get((String)names.next()); + for (Iterator iter = userDb.iterator(); iter.hasNext();) { + PetName pn = (PetName)iter.next(); if (pn == null) continue; Destination existing = _context.namingService().lookup(pn.getName()); if (existing == null && pn.getNetwork().equalsIgnoreCase("i2p")) { - routerDb.set(pn.getName(), pn); + routerDb.add(pn); try { routerDb.store(); } catch (IOException ioe) { @@ -567,10 +567,10 @@ public class BlogManager { // no need to quote user/location further, as they've been sanitized PetNameDB names = user.getPetNameDB(); - if (names.exists(name)) + if (names.containsName(name)) return "Name is already in use"; PetName pn = new PetName(name, schema, protocol, location); - names.set(name, pn); + names.add(pn); try { names.store(user.getAddressbookLocation()); diff --git a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLPreviewRenderer.java b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLPreviewRenderer.java index 62de7b09f..a4d70bfc3 100644 --- a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLPreviewRenderer.java +++ b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLPreviewRenderer.java @@ -4,6 +4,7 @@ import java.io.*; import java.text.*; import java.util.*; import net.i2p.I2PAppContext; +import net.i2p.client.naming.PetName; import net.i2p.data.*; import net.i2p.syndie.*; import net.i2p.syndie.data.*; @@ -104,7 +105,7 @@ public class HTMLPreviewRenderer extends HTMLRenderer { String knownName = null; if (_user != null) - knownName = _user.getPetNameDB().getNameByLocation(a.location); + knownName = _user.getPetNameDB().getLocation(a.location).getName(); if (knownName != null) { _postBodyBuffer.append(' ').append(getSpan("summDetailAddrKnown")); _postBodyBuffer.append(sanitizeString(knownName)).append(""); @@ -119,7 +120,8 @@ public class HTMLPreviewRenderer extends HTMLRenderer { if (a.protocol != null) _postBodyBuffer.append("protocol=").append(sanitizeTagParam(a.protocol)).append('&'); _postBodyBuffer.append("\">").append(sanitizeString(a.name)).append(""); - } + } + importAddress(a); } _postBodyBuffer.append("
\n"); } @@ -132,7 +134,7 @@ public class HTMLPreviewRenderer extends HTMLRenderer { _postBodyBuffer.append("\">").append(sanitizeString(a.name)).append(""); if (a.description != null) _postBodyBuffer.append(": ").append(getSpan("summDetailArchiveDesc")).append(sanitizeString(a.description)).append(""); - if (null == _user.getPetNameDB().getNameByLocation(a.location)) { + if (null == _user.getPetNameDB().getLocation(a.location)) { _postBodyBuffer.append(" bookmark"); diff --git a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java index ada257d2b..cb54d1c40 100644 --- a/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java +++ b/apps/syndie/java/src/net/i2p/syndie/sml/HTMLRenderer.java @@ -441,6 +441,21 @@ public class HTMLRenderer extends EventReceiverImpl { return DataHelper.eq(schema, a.schema) && DataHelper.eq(location, a.location) && DataHelper.eq(protocol, a.protocol) && DataHelper.eq(name, a.name); } } + + public void importAddress(Address a) { + if (I2PAppContext.getGlobalContext().getProperty("syndie.addressExport", "false").equalsIgnoreCase("true") + && I2PAppContext.getGlobalContext().namingService().lookup(a.name) == null + && a.schema.equalsIgnoreCase("i2p")) { + PetName pn = new PetName(a.name, a.schema, a.protocol, a.location); + I2PAppContext.getGlobalContext().petnameDb().add(pn); + try { + I2PAppContext.getGlobalContext().petnameDb().store(); + } catch (IOException ioe) { + //ignore + } + } + } + public void receiveAddress(String name, String schema, String protocol, String location, String anchorText) { Address a = new Address(); a.name = name; @@ -451,12 +466,12 @@ public class HTMLRenderer extends EventReceiverImpl { _addresses.add(a); if (!continueBody()) { return; } if ( (schema == null) || (location == null) ) return; - String knownName = null; + PetName pn = null; if (_user != null) - knownName = _user.getPetNameDB().getNameByLocation(location); - if (knownName != null) { + pn = _user.getPetNameDB().getLocation(location); + if (pn != null) { _bodyBuffer.append(getSpan("addr")).append(sanitizeString(anchorText)).append(""); - _bodyBuffer.append(getSpan("addrKnownName")).append("(").append(sanitizeString(knownName)).append(")"); + _bodyBuffer.append(getSpan("addrKnownName")).append("(").append(sanitizeString(pn.getName())).append(")"); } else { if (_log.shouldLog(Log.DEBUG)) _log.debug("Receiving address [" + location + "]"); @@ -616,12 +631,12 @@ public class HTMLRenderer extends EventReceiverImpl { for (int i = 0; i < _addresses.size(); i++) { Address a = (Address)_addresses.get(i); - String knownName = null; + PetName pn = null; if (_user != null) - knownName = _user.getPetNameDB().getNameByLocation(a.location); - if (knownName != null) { + pn = _user.getPetNameDB().getLocation(a.location); + if (pn != null) { _postBodyBuffer.append(' ').append(getSpan("summDetailAddrKnown")); - _postBodyBuffer.append(sanitizeString(knownName)).append(""); + _postBodyBuffer.append(sanitizeString(pn.getName())).append(""); } else { _postBodyBuffer.append(" ").append(sanitizeString(a.name)).append(""); - } + } + importAddress(a); } _postBodyBuffer.append("
\n"); } @@ -646,7 +662,7 @@ public class HTMLRenderer extends EventReceiverImpl { _postBodyBuffer.append("\">").append(sanitizeString(a.name)).append(""); if (a.description != null) _postBodyBuffer.append(": ").append(getSpan("summDetailArchiveDesc")).append(sanitizeString(a.description)).append(""); - if (null == _user.getPetNameDB().getNameByLocation(a.location)) { + if (null == _user.getPetNameDB().getLocation(a.location)) { _postBodyBuffer.append(" bookmark it"); @@ -749,9 +765,9 @@ public class HTMLRenderer extends EventReceiverImpl { _preBodyBuffer.append("\n"); - String knownName = null; + PetName pn = null; if ( (_entry != null) && (_user != null) ) - knownName = _user.getPetNameDB().getNameByLocation(_entry.getURI().getKeyHash().toBase64()); + pn = _user.getPetNameDB().getLocation(_entry.getURI().getKeyHash().toBase64()); //if (knownName != null) // _preBodyBuffer.append("Pet name: ").append(sanitizeString(knownName)).append(" "); @@ -760,8 +776,8 @@ public class HTMLRenderer extends EventReceiverImpl { info = _archive.getBlogInfo(_entry.getURI()); if (info != null) { _preBodyBuffer.append(""); - if (knownName != null) { - _preBodyBuffer.append(getSpan("metaKnown")).append(sanitizeString(knownName)).append(""); + if (pn != null) { + _preBodyBuffer.append(getSpan("metaKnown")).append(sanitizeString(pn.getName())).append(""); } else { String nameStr = info.getProperty("Name"); if (nameStr == null) @@ -776,7 +792,6 @@ public class HTMLRenderer extends EventReceiverImpl { if ( (_user != null) && (_user.getAuthenticated()) && (_entry != null) ) { - PetName pn = _user.getPetNameDB().get(knownName); if ( (pn == null) || (!pn.isMember("Favorites")) ) _preBodyBuffer.append(" "); if ( (pn == null) || (!pn.isMember("Ignore")) ) diff --git a/apps/syndie/java/src/net/i2p/syndie/sml/RSSRenderer.java b/apps/syndie/java/src/net/i2p/syndie/sml/RSSRenderer.java index a85d7332d..86414c57c 100644 --- a/apps/syndie/java/src/net/i2p/syndie/sml/RSSRenderer.java +++ b/apps/syndie/java/src/net/i2p/syndie/sml/RSSRenderer.java @@ -4,6 +4,7 @@ import java.io.*; import java.util.*; import java.text.SimpleDateFormat; import net.i2p.I2PAppContext; +import net.i2p.client.naming.PetName; import net.i2p.data.*; import net.i2p.syndie.*; import net.i2p.syndie.data.*; @@ -26,7 +27,8 @@ public class RSSRenderer extends HTMLRenderer { out.write(" " + urlPrefix + sanitizeXML(getEntryURL()) + "\n"); out.write(" " + urlPrefix + entry.getURI().toString() + "\n"); out.write(" " + getRFC822Date(entry.getURI().getEntryId()) + "\n"); - String author = user.getPetNameDB().getNameByLocation(entry.getURI().getKeyHash().toBase64()); + PetName pn = user.getPetNameDB().getLocation(entry.getURI().getKeyHash().toBase64()); + String author = pn.getName(); if (author == null) { BlogInfo info = archive.getBlogInfo(entry.getURI()); if (info != null) @@ -192,10 +194,10 @@ public class RSSRenderer extends HTMLRenderer { _addresses.add(a); if (!continueBody()) { return; } if ( (schema == null) || (location == null) ) return; - String knownName = null; + PetName pn = null; if (_user != null) - knownName = _user.getPetNameDB().getNameByLocation(location); - if (knownName != null) { + pn = _user.getPetNameDB().getLocation(location); + if (pn != null) { _bodyBuffer.append(sanitizeString(anchorText)); } else { _bodyBuffer.append(sanitizeString(anchorText)); @@ -250,10 +252,10 @@ public class RSSRenderer extends HTMLRenderer { for (int i = 0; i < _addresses.size(); i++) { Address a = (Address)_addresses.get(i); - String knownName = null; + PetName pn = null; if (_user != null) - knownName = _user.getPetNameDB().getNameByLocation(a.location); - if (knownName == null) { + pn = _user.getPetNameDB().getLocation(a.location); + if (pn == null) { StringBuffer url = new StringBuffer(128); url.append("addresses.jsp?network="); url.append(sanitizeTagParam(a.schema)).append("&location="); diff --git a/apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java b/apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java index 3f84b0e07..c0e64de46 100644 --- a/apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java +++ b/apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java @@ -100,10 +100,9 @@ public class ArchiveViewerBean { for (int i = 0; i < index.getNewestBlogCount(); i++) { Hash cur = index.getNewestBlog(i); - String knownName = user.getPetNameDB().getNameByLocation(cur.toBase64()); - PetName pn = null; - if (knownName != null) { - pn = user.getPetNameDB().get(knownName); + PetName pn = user.getPetNameDB().getLocation(cur.toBase64()); + String knownName = null; + if (pn != null) { knownName = pn.getName(); } if ( (pn != null) && (pn.isMember("Ignore")) ) @@ -128,10 +127,9 @@ public class ArchiveViewerBean { Set blogs = index.getUniqueBlogs(); for (Iterator iter = blogs.iterator(); iter.hasNext(); ) { Hash cur = (Hash)iter.next(); - String knownName = user.getPetNameDB().getNameByLocation(cur.toBase64()); - PetName pn = null; - if (knownName != null) { - pn = user.getPetNameDB().get(knownName); + PetName pn = user.getPetNameDB().getLocation(cur.toBase64()); + String knownName = null; + if (pn != null) { knownName = pn.getName(); } if ( (pn != null) && (pn.isMember("Ignore")) ) @@ -494,7 +492,7 @@ public class ArchiveViewerBean { PetNameDB db = user.getPetNameDB(); for (Iterator iter = db.getNames().iterator(); iter.hasNext(); ) { String name = (String)iter.next(); - PetName pn = db.get(name); + PetName pn = db.getName(name); if ("syndie".equals(pn.getNetwork()) && "syndieblog".equals(pn.getProtocol()) && pn.isMember(group)) { byte pnLoc[] = Base64.decode(pn.getLocation()); if (pnLoc != null) { @@ -517,13 +515,10 @@ public class ArchiveViewerBean { BlogURI uri = (BlogURI)uris.get(i); Hash k = uri.getKeyHash(); if (k == null) continue; - String pname = user.getPetNameDB().getNameByLocation(k.toBase64()); - if (pname != null) { - PetName pn = user.getPetNameDB().get(pname); - if ( (pn != null) && (pn.isMember("Ignore")) ) { - uris.remove(i); - i--; - } + PetName pn = user.getPetNameDB().getLocation(k.toBase64()); + if ( (pn != null) && (pn.isMember("Ignore")) ) { + uris.remove(i); + i--; } } } diff --git a/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java b/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java index a058a26f4..53e911d37 100644 --- a/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java +++ b/apps/syndie/java/src/net/i2p/syndie/web/PostBean.java @@ -99,7 +99,7 @@ public class PostBean { if (_log.shouldLog(Log.DEBUG)) _log.debug("Posted the entry " + uri.toString() + " (archive = " + _archive + ")"); if ( (uri != null) && BlogManager.instance().authorizeRemote(_user) ) { - PetName pn = _user.getPetNameDB().get(_archive); + PetName pn = _user.getPetNameDB().getName(_archive); if (_log.shouldLog(Log.DEBUG)) _log.debug("Archive to petname? " + pn + " (protocol: " + (pn != null ? pn.getProtocol() : "") + ")"); if ( (pn != null) && ("syndiearchive".equals(pn.getProtocol())) ) { diff --git a/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java b/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java index ed57d826c..300605eb2 100644 --- a/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java +++ b/apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java @@ -6,6 +6,7 @@ import java.util.*; import java.util.zip.*; import net.i2p.I2PAppContext; import net.i2p.client.naming.PetNameDB; +import net.i2p.client.naming.PetName; import net.i2p.data.*; import net.i2p.util.EepGet; import net.i2p.util.EepGetScheduler; @@ -61,8 +62,8 @@ public class RemoteArchiveBean { private boolean ignoreBlog(User user, Hash blog) { PetNameDB db = user.getPetNameDB(); - String name = db.getNameByLocation(blog.toBase64()); - return ( (name != null) && (db.get(name).isMember("Ignore")) ); + PetName pn = db.getLocation(blog.toBase64()); + return ( (pn!= null) && (pn.isMember("Ignore")) ); } public void fetchMetadata(User user, Map parameters) { diff --git a/apps/syndie/jsp/_bodyindex.jsp b/apps/syndie/jsp/_bodyindex.jsp index fe80cd836..ed3f51cb2 100644 --- a/apps/syndie/jsp/_bodyindex.jsp +++ b/apps/syndie/jsp/_bodyindex.jsp @@ -11,13 +11,14 @@ if (user.getAuthenticated() && (null != request.getParameter("action")) ) { group = "Ignore"; boolean unignore = ("Unignore blog".equals(request.getParameter("action"))); - String name = user.getPetNameDB().getNameByLocation(blog); + PetName pn = user.getPetNameDB().getLocation(blog); + String name = null; + if (pn != null) name = pn.getName(); if (name == null) name = request.getParameter("name"); if (name == null) name = blog; if ( (name != null) && (blog != null) && ( (group != null) || (unignore) ) ) { - PetName pn = user.getPetNameDB().get(name); if (pn != null) { if (unignore) pn.removeGroup("Ignore"); @@ -26,7 +27,7 @@ if (user.getAuthenticated() && (null != request.getParameter("action")) ) { } else { pn = new PetName(name, "syndie", "syndieblog", blog); pn.addGroup(group); - user.getPetNameDB().set(name, pn); + user.getPetNameDB().add(pn); } BlogManager.instance().saveUser(user); } diff --git a/apps/syndie/jsp/addresses.jsp b/apps/syndie/jsp/addresses.jsp index d0c8ba754..941c2c4a8 100644 --- a/apps/syndie/jsp/addresses.jsp +++ b/apps/syndie/jsp/addresses.jsp @@ -20,7 +20,7 @@ if (!user.getAuthenticated()) { String action = request.getParameter("action"); if ( (action != null) && ("Change".equals(action)) ) { String oldPetname = request.getParameter("petname"); - PetName cur = names.get(oldPetname); + PetName cur = names.getName(oldPetname); if (cur != null) { cur.setName(request.getParameter("name")); cur.setNetwork(request.getParameter("network")); @@ -28,8 +28,8 @@ if (!user.getAuthenticated()) { cur.setIsPublic(null != request.getParameter("isPublic")); cur.setLocation(request.getParameter("location")); cur.setGroups(request.getParameter("groups")); - names.remove(oldPetname); - names.set(cur.getName(), cur); + names.removeName(oldPetname); + names.add(cur); names.store(user.getAddressbookLocation()); if ( ("syndiearchive".equals(cur.getProtocol())) && (BlogManager.instance().authorizeRemote(user)) ) { if (null != request.getParameter("scheduleSyndication")) { @@ -43,7 +43,7 @@ if (!user.getAuthenticated()) { %>Address updated<% } } else if ( (action != null) && ("Add".equals(action)) ) { - PetName cur = names.get(request.getParameter("name")); + PetName cur = names.getName(request.getParameter("name")); if (cur != null) { %>Address already exists<% } else { cur = new PetName(); cur.setName(request.getParameter("name")); @@ -52,7 +52,7 @@ if (!user.getAuthenticated()) { cur.setIsPublic(null != request.getParameter("isPublic")); cur.setLocation(request.getParameter("location")); cur.setGroups(request.getParameter("groups")); - names.set(cur.getName(), cur); + names.add(cur); names.store(user.getAddressbookLocation()); if ( ("syndiearchive".equals(cur.getProtocol())) && (BlogManager.instance().authorizeRemote(user)) ) { if (null != request.getParameter("scheduleSyndication")) { @@ -63,13 +63,13 @@ if (!user.getAuthenticated()) { %>Address added<% } } else if ( (action != null) && ("Delete".equals(action)) ) { - PetName cur = names.get(request.getParameter("name")); + PetName cur = names.getName(request.getParameter("name")); if (cur != null) { if ( ("syndiearchive".equals(cur.getProtocol())) && (BlogManager.instance().authorizeRemote(user)) ) { BlogManager.instance().unscheduleSyndication(cur.getLocation()); BlogManager.instance().writeConfig(); } - names.remove(cur.getName()); + names.removeName(cur.getName()); names.store(user.getAddressbookLocation()); %>Address removed<% } @@ -90,7 +90,7 @@ if (!user.getAuthenticated()) { <% StringBuffer buf = new StringBuffer(128); for (Iterator iter = sorted.iterator(); iter.hasNext(); ) { - PetName name = names.get((String)iter.next()); + PetName name = names.getName((String)iter.next()); buf.append("
"); buf.append(""); buf.append(""); diff --git a/apps/syndie/jsp/post.jsp b/apps/syndie/jsp/post.jsp index 0b9b048fd..3b751a74c 100644 --- a/apps/syndie/jsp/post.jsp +++ b/apps/syndie/jsp/post.jsp @@ -66,7 +66,7 @@ if (!user.getAuthenticated()) { PetNameDB db = user.getPetNameDB(); if (entryHeaders == null) entryHeaders = ""; for (Iterator iter = db.getNames().iterator(); iter.hasNext(); ) { - PetName pn = db.get((String)iter.next()); + PetName pn = db.getName((String)iter.next()); if ( (pn != null) && (pn.getIsPublic()) ) { entryHeaders = entryHeaders + '\n' + HTMLRenderer.HEADER_PETNAME + ": " + pn.getName() + "\t" + pn.getNetwork() + "\t" + pn.getProtocol() + "\t" + pn.getLocation(); @@ -107,7 +107,7 @@ PetNameDB db = user.getPetNameDB(); TreeSet names = new TreeSet(); for (Iterator iter = db.getNames().iterator(); iter.hasNext(); ) { String name = (String)iter.next(); - PetName pn = db.get(name); + PetName pn = db.getName(name); if ("syndiearchive".equals(pn.getProtocol())) names.add(pn.getName()); } diff --git a/apps/syndie/jsp/remote.jsp b/apps/syndie/jsp/remote.jsp index 0bdf684cc..7e7ad680c 100644 --- a/apps/syndie/jsp/remote.jsp +++ b/apps/syndie/jsp/remote.jsp @@ -29,8 +29,8 @@ if (!BlogManager.instance().authorizeRemote(user)) {
Bookmarked archives: