* Beautify PetNameDB API.
* Start of syndie auto address export.
This commit is contained in:
@ -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 "<span class=\"b_addrMsgErr\">Name is already in use</span>";
|
||||
PetName pn = new PetName(name, schema, protocol, location);
|
||||
names.set(name, pn);
|
||||
names.add(pn);
|
||||
|
||||
try {
|
||||
names.store(user.getAddressbookLocation());
|
||||
|
@ -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("</span>");
|
||||
@ -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("</a>");
|
||||
}
|
||||
}
|
||||
importAddress(a);
|
||||
}
|
||||
_postBodyBuffer.append("<br />\n");
|
||||
}
|
||||
@ -132,7 +134,7 @@ public class HTMLPreviewRenderer extends HTMLRenderer {
|
||||
_postBodyBuffer.append("\">").append(sanitizeString(a.name)).append("</a>");
|
||||
if (a.description != null)
|
||||
_postBodyBuffer.append(": ").append(getSpan("summDetailArchiveDesc")).append(sanitizeString(a.description)).append("</span>");
|
||||
if (null == _user.getPetNameDB().getNameByLocation(a.location)) {
|
||||
if (null == _user.getPetNameDB().getLocation(a.location)) {
|
||||
_postBodyBuffer.append(" <a ").append(getClass("summDetailArchiveBookmark")).append(" href=\"");
|
||||
_postBodyBuffer.append(getBookmarkURL(a.name, a.location, a.locationSchema, "syndiearchive"));
|
||||
_postBodyBuffer.append("\">bookmark</a>");
|
||||
|
@ -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("</span>");
|
||||
_bodyBuffer.append(getSpan("addrKnownName")).append("(").append(sanitizeString(knownName)).append(")</span>");
|
||||
_bodyBuffer.append(getSpan("addrKnownName")).append("(").append(sanitizeString(pn.getName())).append(")</span>");
|
||||
} 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("</span>");
|
||||
_postBodyBuffer.append(sanitizeString(pn.getName())).append("</span>");
|
||||
} else {
|
||||
_postBodyBuffer.append(" <a ").append(getClass("summDetailAddrLink")).append(" href=\"addresses.jsp?");
|
||||
if (a.schema != null)
|
||||
@ -633,7 +648,8 @@ public class HTMLRenderer extends EventReceiverImpl {
|
||||
if (a.protocol != null)
|
||||
_postBodyBuffer.append("protocol=").append(sanitizeTagParam(a.protocol)).append('&');
|
||||
_postBodyBuffer.append("\">").append(sanitizeString(a.name)).append("</a>");
|
||||
}
|
||||
}
|
||||
importAddress(a);
|
||||
}
|
||||
_postBodyBuffer.append("<br />\n");
|
||||
}
|
||||
@ -646,7 +662,7 @@ public class HTMLRenderer extends EventReceiverImpl {
|
||||
_postBodyBuffer.append("\">").append(sanitizeString(a.name)).append("</a>");
|
||||
if (a.description != null)
|
||||
_postBodyBuffer.append(": ").append(getSpan("summDetailArchiveDesc")).append(sanitizeString(a.description)).append("</span>");
|
||||
if (null == _user.getPetNameDB().getNameByLocation(a.location)) {
|
||||
if (null == _user.getPetNameDB().getLocation(a.location)) {
|
||||
_postBodyBuffer.append(" <a ").append(getClass("summDetailArchiveBookmark")).append(" href=\"");
|
||||
_postBodyBuffer.append(getBookmarkURL(a.name, a.location, a.locationSchema, "syndiearchive"));
|
||||
_postBodyBuffer.append("\">bookmark it</a>");
|
||||
@ -749,9 +765,9 @@ public class HTMLRenderer extends EventReceiverImpl {
|
||||
_preBodyBuffer.append("<td nowrap=\"nowrap\" align=\"right\" valign=\"top\" ");
|
||||
_preBodyBuffer.append(getClass("meta")).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("<a ").append(getClass("metaLink")).append(" href=\"").append(getMetadataURL()).append("\">");
|
||||
if (knownName != null) {
|
||||
_preBodyBuffer.append(getSpan("metaKnown")).append(sanitizeString(knownName)).append("</span>");
|
||||
if (pn != null) {
|
||||
_preBodyBuffer.append(getSpan("metaKnown")).append(sanitizeString(pn.getName())).append("</span>");
|
||||
} 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(" <input ").append(getClass("bookmark")).append(" type=\"submit\" name=\"action\" value=\"Bookmark blog\" />");
|
||||
if ( (pn == null) || (!pn.isMember("Ignore")) )
|
||||
|
@ -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(" <link>" + urlPrefix + sanitizeXML(getEntryURL()) + "</link>\n");
|
||||
out.write(" <guid isPermalink=\"false\">" + urlPrefix + entry.getURI().toString() + "</guid>\n");
|
||||
out.write(" <pubDate>" + getRFC822Date(entry.getURI().getEntryId()) + "</pubDate>\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=");
|
||||
|
@ -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--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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())) ) {
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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()) {
|
||||
%><span class="b_addrMsgOk">Address updated</span><%
|
||||
}
|
||||
} else if ( (action != null) && ("Add".equals(action)) ) {
|
||||
PetName cur = names.get(request.getParameter("name"));
|
||||
PetName cur = names.getName(request.getParameter("name"));
|
||||
if (cur != null) { %><span class="b_addrMsgErr">Address already exists</span><% } 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()) {
|
||||
%><span class="b_addrMsgOk">Address added</span><%
|
||||
}
|
||||
} 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());
|
||||
%><span class="b_addrMsgOk">Address removed</span><%
|
||||
}
|
||||
@ -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("<tr class=\"b_addrDetail\"><form action=\"addresses.jsp\" method=\"POST\">");
|
||||
buf.append("<input type=\"hidden\" name=\"petname\" value=\"").append(name.getName()).append("\" />");
|
||||
buf.append("<td class=\"b_addrName\"><input class=\"b_addrName\" type=\"text\" size=\"20\" name=\"name\" value=\"").append(name.getName()).append("\" /></td>");
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -29,8 +29,8 @@ if (!BlogManager.instance().authorizeRemote(user)) {
|
||||
<input class="b_remoteChooserHost" type="text" size="10" name="proxyhost" value="<%=BlogManager.instance().getDefaultProxyHost()%>" />
|
||||
<input class="b_remoteChooserPort" type="text" size="4" name="proxyport" value="<%=BlogManager.instance().getDefaultProxyPort()%>" /><br />
|
||||
<span class="b_remoteChooserField">Bookmarked archives:</span> <select class="b_remoteChooserPN" name="archivepetname"><option value="">Custom location</option><%
|
||||
for (Iterator iter = user.getPetNameDB().getNames().iterator(); iter.hasNext(); ) {
|
||||
PetName pn = user.getPetNameDB().get((String)iter.next());
|
||||
for (Iterator iter = user.getPetNameDB().iterator(); iter.hasNext(); ) {
|
||||
PetName pn = (PetName)iter.next();
|
||||
if ("syndiearchive".equals(pn.getProtocol())) {
|
||||
%><option value="<%=HTMLRenderer.sanitizeTagParam(pn.getName())%>"><%=HTMLRenderer.sanitizeString(pn.getName())%></option><%
|
||||
}
|
||||
@ -45,7 +45,7 @@ for (Iterator iter = user.getPetNameDB().getNames().iterator(); iter.hasNext();
|
||||
String location = request.getParameter("location");
|
||||
String pn = request.getParameter("archivepetname");
|
||||
if ( (pn != null) && (pn.trim().length() > 0) ) {
|
||||
PetName pnval = user.getPetNameDB().get(pn);
|
||||
PetName pnval = user.getPetNameDB().getName(pn);
|
||||
if (pnval != null) location = pnval.getLocation();
|
||||
}
|
||||
remote.fetchIndex(user, request.getParameter("schema"), location, request.getParameter("proxyhost"), request.getParameter("proxyport"));
|
||||
|
@ -16,14 +16,20 @@ public class PetNameDB {
|
||||
_names = Collections.synchronizedMap(new HashMap());
|
||||
}
|
||||
|
||||
public PetName get(String name) { return (PetName)_names.get(name); }
|
||||
public boolean exists(String name) { return _names.containsKey(name); }
|
||||
public void set(String name, PetName pn) { _names.put(name, pn); }
|
||||
public void remove(String name) { _names.remove(name); }
|
||||
public PetName getName(String name) { return (PetName)_names.get(name); }
|
||||
public void add(PetName pn) { _names.put(pn.getName(), pn); }
|
||||
public void clear() { _names.clear(); }
|
||||
public boolean contains(PetName pn) { return _names.containsValue(pn); }
|
||||
public boolean containsName(String name) { return _names.containsKey(name); }
|
||||
public boolean isEmpty() { return _names.isEmpty(); }
|
||||
public Iterator iterator() { return new LinkedList(_names.values()).iterator(); }
|
||||
public void remove(PetName pn) { _names.values().remove(pn); }
|
||||
public void removeName(String name) { _names.remove(name); }
|
||||
public int size() { return _names.size(); }
|
||||
public Set getNames() { return new HashSet(_names.keySet()); }
|
||||
public List getGroups() {
|
||||
List rv = new ArrayList();
|
||||
for (Iterator iter = new HashSet(_names.values()).iterator(); iter.hasNext(); ) {
|
||||
for (Iterator iter = iterator(); iter.hasNext(); ) {
|
||||
PetName name = (PetName)iter.next();
|
||||
for (int i = 0; i < name.getGroupCount(); i++)
|
||||
if (!rv.contains(name.getGroup(i)))
|
||||
@ -32,13 +38,13 @@ public class PetNameDB {
|
||||
return rv;
|
||||
}
|
||||
|
||||
public String getNameByLocation(String location) {
|
||||
public PetName getLocation(String location) {
|
||||
if (location == null) return null;
|
||||
synchronized (_names) {
|
||||
for (Iterator iter = _names.values().iterator(); iter.hasNext(); ) {
|
||||
for (Iterator iter = iterator(); iter.hasNext(); ) {
|
||||
PetName name = (PetName)iter.next();
|
||||
if ( (name.getLocation() != null) && (name.getLocation().trim().equals(location.trim())) )
|
||||
return name.getName();
|
||||
return name;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -55,7 +61,7 @@ public class PetNameDB {
|
||||
while ( (line = in.readLine()) != null) {
|
||||
PetName name = new PetName(line);
|
||||
if (name.getName() != null)
|
||||
_names.put(name.getName(), name);
|
||||
add(name);
|
||||
}
|
||||
} finally {
|
||||
in.close();
|
||||
@ -66,8 +72,8 @@ public class PetNameDB {
|
||||
Writer out = null;
|
||||
try {
|
||||
out = new OutputStreamWriter(new FileOutputStream(location), "UTF-8");
|
||||
for (Iterator names = getNames().iterator(); names.hasNext(); ) {
|
||||
PetName name = get((String)names.next());
|
||||
for (Iterator iter = iterator(); iter.hasNext(); ) {
|
||||
PetName name = (PetName)iter.next();
|
||||
if (name != null)
|
||||
out.write(name.toString() + "\n");
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ public class PetNameNamingService extends NamingService {
|
||||
}
|
||||
|
||||
public Destination lookup(String hostname) {
|
||||
PetName name = _petnameDb.get(hostname);
|
||||
PetName name = _petnameDb.getName(hostname);
|
||||
if (name != null && name.getNetwork().equalsIgnoreCase("i2p")) {
|
||||
return lookupBase64(name.getLocation());
|
||||
} else {
|
||||
@ -60,6 +60,6 @@ public class PetNameNamingService extends NamingService {
|
||||
}
|
||||
|
||||
public String reverseLookup(Destination dest) {
|
||||
return _petnameDb.getNameByLocation(dest.toBase64());
|
||||
return _petnameDb.getLocation(dest.toBase64()).getName();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user