public void downloadPost(JDFeedMeFeed feed, JDFeedMePost post, String post_description) { String link_list_to_download = null; // check if we have a valid files field if ((link_list_to_download == null) && (post.hasValidFiles())) { // just take the files field link_list_to_download = extractLinksFromHtml(post.getFiles(), feed.getHoster(), JDFeedMeFeed.HOSTER_EXCLUDE); } // no file fields, maybe we have a good link if ((link_list_to_download == null) && (post.hasValidLink())) { // try to follow this link try { Browser browser = new Browser(); browser.setFollowRedirects(true); // support redirects since some feeds have them String response = browser.getPage(post.getLink()); link_list_to_download = extractLinksFromHtml(response, feed.getHoster(), JDFeedMeFeed.HOSTER_EXCLUDE); } catch (Exception e) { logger.severe("JDFeedMe could not follow feed item link: " + post.getLink()); } } // no good link, try the description if ((link_list_to_download == null) && (post_description != null) && (post_description.trim().length() > 0)) { link_list_to_download = extractLinksFromHtml(post_description, feed.getHoster(), JDFeedMeFeed.HOSTER_EXCLUDE); } // nothing, exit if (link_list_to_download == null) { post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES); return; } // JOptionPane.showMessageDialog(new JFrame(), "JDFeedMe says we need to download link: // "+rssitem.link); logger.info("JDFeedMe attempting to download: " + link_list_to_download); // let's download the links.. finally.. boolean anything_downloaded = downloadLinks(link_list_to_download, feed, post); if (anything_downloaded) { post.setAdded(JDFeedMePost.ADDED_YES); gui.notifyPostAddedInOtherFeed(post, feed); } else post.setAdded(JDFeedMePost.ADDED_YES_NO_FILES); }
// return true if the post is new, false if old private boolean handlePost( JDFeedMeFeed feed, JDFeedMePost post, String post_description, String timestamp) { // make sure this rss item is indeed newer than what we have if (post.isTimestampNewer(timestamp)) { if (JDFeedMe.VERBOSE) logger.info("JDFeedMe found new item with timestamp: [" + post.getTimestamp() + "]"); post.setNewpost(true); // check for filters on this item (see if it passes download filters) boolean need_to_add = runFilterOnPost(feed, post, post_description); // if we don't need to add, we can return now if (!need_to_add) { if (JDFeedMe.VERBOSE) logger.info( "JDFeedMe new item title: [" + post.getTitle() + "] description: [" + post_description + "] did not pass filters"); post.setAdded(JDFeedMePost.ADDED_NO); } else { // start processing this rss item - we're going to download it downloadPost(feed, post, post_description); } // update the post history gui.addPostToFeed(post, feed); return true; } else { if (JDFeedMe.VERBOSE) logger.info("JDFeedMe ignoring item with old timestamp: [" + post.getTimestamp() + "]"); return false; } }