diff --git a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java index d250ea903..9822f6b22 100644 --- a/apps/syndie/java/src/net/i2p/syndie/BlogManager.java +++ b/apps/syndie/java/src/net/i2p/syndie/BlogManager.java @@ -364,8 +364,8 @@ public class BlogManager { return ( (isSingle != null) && (Boolean.valueOf(isSingle).booleanValue()) ); } - public String getDefaultProxyHost() { return _context.getProperty("syndie.defaultProxyHost", ""); } - public String getDefaultProxyPort() { return _context.getProperty("syndie.defaultProxyPort", ""); } + public String getDefaultProxyHost() { return _context.getProperty("syndie.defaultProxyHost", "localhost"); } + public String getDefaultProxyPort() { return _context.getProperty("syndie.defaultProxyPort", "4444"); } public String[] getUpdateArchives() { return _context.getProperty("syndie.updateArchives", "").split(","); } public boolean getImportAddresses() { return _context.getProperty("syndie.importAddresses", "false").equals("true"); } public int getUpdateDelay() { diff --git a/apps/syndie/java/src/net/i2p/syndie/Sucker.java b/apps/syndie/java/src/net/i2p/syndie/Sucker.java index 3d0f25a17..6574132a8 100644 --- a/apps/syndie/java/src/net/i2p/syndie/Sucker.java +++ b/apps/syndie/java/src/net/i2p/syndie/Sucker.java @@ -78,8 +78,8 @@ public class Sucker { } catch (IOException e) { e.printStackTrace(); } - proxyPort="4444"; - proxyHost="localhost"; + proxyPort = BlogManager.instance().getDefaultProxyPort(); + proxyHost = BlogManager.instance().getDefaultProxyHost(); bm = BlogManager.instance(); Hash blogHash = new Hash(); @@ -171,6 +171,8 @@ public class Sucker { messageNumber=bm.getNextBlogEntry(user); } + _log.debug("message number: " + messageNumber); + // Create historyFile if missing historyFile = new File(historyPath); if (!historyFile.exists()) @@ -195,13 +197,19 @@ public class Sucker { numRetries, fetched.getAbsolutePath(), urlToLoad); SuckerFetchListener lsnr = new SuckerFetchListener(); get.addStatusListener(lsnr); + + _log.debug("fetching [" + urlToLoad + "] / " + shouldProxy + "/" + proxyHost + "/" + proxyHost); + get.fetch(); + _log.debug("fetched: " + get.getNotModified() + "/" + get.getETag()); boolean ok = lsnr.waitForSuccess(); if (!ok) { + _log.debug("success? " + ok); System.err.println("Unable to retrieve the url after " + numRetries + " tries."); fetched.delete(); return; } + _log.debug("fetched successfully? " + ok); if(get.getNotModified()) { debugLog("not modified, saving network bytes from useless fetch"); fetched.delete(); @@ -214,6 +222,8 @@ public class Sucker { List entries = feed.getEntries(); + _log.debug("entries: " + entries.size()); + FileOutputStream hos = new FileOutputStream(historyFile, true); // Process list backwards to get syndie to display the @@ -223,6 +233,9 @@ public class Sucker { attachmentCounter=0; + if (_log.shouldLog(Log.DEBUG)) + _log.debug("Syndicate entry: " + e.getLink()); + String messageId = convertToSml(e); if (messageId!=null) { hos.write(messageId.getBytes()); @@ -234,6 +247,8 @@ public class Sucker { FileOutputStream fos = new FileOutputStream(lastIdFile); fos.write(("" + messageNumber).getBytes()); } + + _log.debug("done fetching"); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { diff --git a/apps/syndie/java/src/net/i2p/syndie/web/ImportFeedServlet.java b/apps/syndie/java/src/net/i2p/syndie/web/ImportFeedServlet.java new file mode 100644 index 000000000..f3342b56b --- /dev/null +++ b/apps/syndie/java/src/net/i2p/syndie/web/ImportFeedServlet.java @@ -0,0 +1,158 @@ +package net.i2p.syndie.web; + +import java.io.*; +import java.util.*; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.ServletException; + +import net.i2p.I2PAppContext; +import net.i2p.client.naming.*; +import net.i2p.data.*; +import net.i2p.syndie.*; +import net.i2p.syndie.data.*; +import net.i2p.syndie.sml.*; + +/** + * Schedule the import of atom/rss feeds + * + *
caching (eepget should do it) + *
enclosures support (requires cvs rome) + *
syndie.sucker.minHistory/maxHistory used to roll over the history file? + *
configurable update period + * + */ +public class ImportFeedServlet extends BaseServlet { + protected String getTitle() { return "Syndie :: Import feed"; } + + protected void renderServletDetails(User user, HttpServletRequest req, PrintWriter out, ThreadIndex index, + int threadOffset, BlogURI visibleEntry, Archive archive) throws IOException { + + if (!BlogManager.instance().authorizeRemote(user)) { + out.write("
Here you can add RSS feeds that will be periodically polled and added to your syndie.
"); + out.write("\n"); + + List feedList = BlogManager.instance().getRssFeeds(); + if (feedList.size()>0) { + out.write("Url | \n"); + out.write("Blog | \n"); + out.write("TagPrefix | \n"); + out.write("|
<%
-
-BlogManager bm = BlogManager.instance();
-if (!user.getAuthenticated()) {
- %>Please log in.<%
-}
-else if(!bm.authorizeRemote(user)) {
- %>You are not authorized for remote access.<%
-} else {
- String url=request.getParameter("url");
- if(url!=null) url=url.trim();
- String blog=request.getParameter("blog");
- if(blog!=null) blog=blog.trim();
- String tagPrefix=request.getParameter("tagprefix");
- if(tagPrefix!=null) tagPrefix=tagPrefix.trim();
- String action = request.getParameter("action");
- if ( (action != null) && ("Add".equals(action)) ) {
- if(url==null || blog==null || tagPrefix==null) {
- %>Please fill in all fields <% - } else { - boolean ret=bm.addRssFeed(url,blog,tagPrefix); - if(!ret) { - %>addRssFeed failure.<% - } else { - %>RSS feed added.<% - } - } - } else if ( (action != null) && ("Change".equals(action)) ) { - String lastUrl=request.getParameter("lasturl"); - String lastBlog=request.getParameter("lastblog"); - String lastTagPrefix=request.getParameter("lasttagprefix"); - if(url==null || blog==null || tagPrefix==null || lastUrl==null || lastBlog==null || lastTagPrefix==null) { - %>error, some fields were empty. <% - } else { - boolean ret=bm.deleteRssFeed(lastUrl,lastBlog,lastTagPrefix); - if(!ret) { - %>Could not delete while attempting to change.<% - } else { - ret=bm.addRssFeed(url,blog,tagPrefix); - if(!ret) { - %>Could not add while attempting to change.<% - } else { - %>Ok, changed successfully.<% - } - } - } - } else if ( (action != null) && ("Delete".equals(action)) ) { - %>Delete some thing <% - if(url==null || blog==null || tagPrefix==null) { - %>error, some fields were empty. <% - } else { - boolean ret=bm.instance().deleteRssFeed(url,blog,tagPrefix); - if(!ret) { - %>error, could not delete.<% - } else { - %>ok, deleted successfully.<% - } - } - } - String blogStr=user.getBlogStr(); - if(blogStr==null) - blogStr=""; - - /////////////////////////////////////////////// -%> - Here you can add RSS feeds that will be periodically polled and added to your syndie. - -<% -/////////////////////////////////////////////// - List feedList = bm.getRssFeeds(); - if(feedList.size()>0) { -%> -Subscriptions:-
-<% -} -%> - |