/** * Render the title from the given Channel to the given StringBuffer, * using standard Radeox filtering tags. * @param feed the RSS Channel we retrieved via the Feed URL * @param buf the StringBuffer we're using to prepare the output */ private void renderTitleDefault(SyndFeed feed, StringBuffer buf) { buf.append("__"); if (feed.getLink() != null) buf.append("{link:"); buf.append(feed.getTitle()); if (feed.getLink() != null) { buf.append("|") .append(feed.getLink()) .append("}"); } buf.append("__\n\n"); }
/** * Render the title from the given Channel to the given StringBuffer, * using CSS styled 'div' tags. In this case, the title will be enclosed * in a <div> with the class <code>rss.channel.title</code>. If * the channel includes a link, the title will be rendered as a link to * that URL, and the <a> tag will also be of class * <code>rss.channel.title</code> * @param feed the RSS Channel we retrieved via the Feed URL * @param buf the StringBuffer we're using to prepare the output * TODO Figure out how to stop Radeox from filtering the URLs */ private void renderTitleCSS(SyndFeed feed, StringBuffer buf) { buf.append(NEWLINE).append("<div class='rsschanneltitle'>"); if (feed.getLink() != null) { buf.append("<a class='rsschanneltitle' href=\"") .append(Encoder.escape(feed.getLink())) .append("\">"); } buf.append(feed.getTitle()); if (feed.getLink() != null) buf.append("</a>"); buf.append(NEWLINE).append("</div>"); }
private Map<Channel, List<Document>> buildChannelMap(long userId) { List<Source> sources; if (userId == PUB_USER_KEY) { sources = articleDao.getPublicSources(); } else if (articleDao.hasSubscriptions(userId)) { sources = articleDao.getSources(userId); } else { return Collections.emptyMap(); } List<RufusFeed> requests = sources.parallelStream().map(RufusFeed::generate).collect(Collectors.toList()); Map<Channel, List<Document>> ret = new HashMap<>(); requests.stream().filter(r -> r.getFeed() != null).forEach(r -> { Pair<SyndFeed, List<SyndEntry>> synd = feedPair(r); ret.put(Channel.of( synd.getKey().getTitle(), synd.getKey().getLanguage(), synd.getKey().getLink(), r.getSource()), extractDocuments(synd)); }); return ret; }
System.err.println(feedUrl + " has a title: " + feed.getTitle() + " and contains " + feed.getEntries().size() + " entries.");
System.err.println(feedUrl + " has a title: " + feed.getTitle() + " and contains " + feed.getEntries().size() + " entries.");
/** * @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse) */ public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.setContentType("text/html"); Context velocityContext = this.getContext(request); PortletPreferences prefs = request.getPreferences(); String url = prefs.getValue("url", "http://www.npr.org/rss/rss.php?topicId=4"); try { URL feedUrl = new URL(url); SyndFeedInput input = new SyndFeedInput(); SyndFeed feed = input.build(new XmlReader(feedUrl)); RssInfo rssInfo = new RssInfo(feed, new Integer(prefs.getValue("itemdisplayed", "15")).intValue(), new Boolean(prefs .getValue("openinpopup", "true")).booleanValue(), new Boolean(prefs.getValue("showdescription", "true")) .booleanValue(), new Boolean(prefs.getValue("showtitle", "true")).booleanValue(), new Boolean(prefs.getValue( "showtextinput", "true")).booleanValue()); if (feed.getTitle() != null) response.setTitle(feed.getTitle()); velocityContext.put("rssInfo", rssInfo); super.doView(request, response); } catch (Exception e) { throw new PortletException(new String("Failed to process RSS Feed: " + url + ", " + e)); } }
input.setPreserveWireFeed(true); SyndFeed feed = input.build(new XmlReader(urlConnection)); System.out.println("Feed Title: " + feed.getTitle()); for (SyndEntry entry : (List<SyndEntry>) feed.getEntries()) { System.out.println("Title: " + entry.getTitle());
public static ClientSource ofExisting(Source source) { SyndFeed syndFeed = RufusFeed.generate(source).getFeed(); return new ClientSource(FeedUtils.clean(syndFeed.getTitle()), source.getUrl().toExternalForm(), source.isFrontpage()); }
public static void main(String[] args) throws Exception { ClientResource mailClient = new ClientResource( "http://localhost:8111/accounts/chunkylover53/feeds/xyz"); // Display the retrieved Atom feed and entries Feed atomFeed = mailClient.get(Feed.class); System.out.println("\nAtom feed: " + atomFeed.getTitle() + "\n"); for (Entry entry : atomFeed.getEntries()) { System.out.println("Title : " + entry.getTitle()); System.out.println("Summary: " + entry.getSummary()); } // Display the retrieved RSS feed and entries SyndFeed rssFeed = mailClient.get(SyndFeed.class); System.out.println("\nRSS feed: " + rssFeed.getTitle() + "\n"); @SuppressWarnings("unchecked") List<SyndEntry> entries = (List<SyndEntry>) rssFeed.getEntries(); for (SyndEntry entry : entries) { System.out.println("Title : " + entry.getTitle()); System.out.println("Summary: " + entry.getDescription().getValue()); } } }
private static List<Document> extractDocuments(Pair<SyndFeed, List<SyndEntry>> feedEntry) { List<Document> ret = new ArrayList<>(); feedEntry.getRight().forEach(e -> { FeedUtils.mergeAuthors(e); String description = e.getDescription() != null ? FeedUtils.clean(e.getDescription().getValue()) : StringUtils.EMPTY; if (description.length() > FeedConstants.MAX_DESCRIP_LEN) { description = FeedUtils.truncate(description, FeedConstants.MAX_DESCRIP_LEN); } ret.add(Document.of( StringEscapeUtils.unescapeHtml4(e.getTitle()), e.getPublishedDate(), e.getAuthors(), description, e.getLink(), feedEntry.getLeft().getTitle() )); }); return ret; }
SyndFeed feed = new SyndFeedInput().build(new StringReader(feedXml)); JSONObject json = new JSONObject(); json.put("Title", feed.getTitle()); json.put("URL", feedUrl); json.put("Description", feed.getDescription());
System.out.println("\nRSS feed: " + rssFeed.getTitle() + "\n");
m_title = FormattedText.processEscapedHtml(feed.getTitle()); m_source = source; m_description = FormattedText.processEscapedHtml(feed.getDescription());
private static void _regexpStrip(SyndFeed syndFeed) { syndFeed.setTitle(_regexpStrip(syndFeed.getTitle())); syndFeed.setDescription(_regexpStrip(syndFeed.getDescription())); List<SyndEntry> syndEntries = syndFeed.getEntries(); for (SyndEntry syndEntry : syndEntries) { syndEntry.setTitle(_regexpStrip(syndEntry.getTitle())); SyndContent syndContent = syndEntry.getDescription(); syndContent.setValue(_regexpStrip(syndContent.getValue())); } }
String podcastTitle = syndFeed.getTitle(); podcast.setTitle(podcastTitle);
buf.appendHeading(4,feed.getTitle());
protected WireFeed createRealFeed(String type,SyndFeed syndFeed) { Channel channel = new Channel(type); channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules())); channel.setEncoding(syndFeed.getEncoding()); channel.setTitle(syndFeed.getTitle()); if (syndFeed.getLink() != null) { channel.setLink(syndFeed.getLink()); } else if (syndFeed.getLinks().size() > 0) { channel.setLink(((SyndLink)syndFeed.getLinks().get(0)).getHref()); } channel.setDescription(syndFeed.getDescription()); SyndImage sImage = syndFeed.getImage(); if (sImage!=null) { channel.setImage(createRSSImage(sImage)); } List sEntries = syndFeed.getEntries(); if (sEntries!=null) { channel.setItems(createRSSItems(sEntries)); } if (((List)syndFeed.getForeignMarkup()).size() > 0) { channel.setForeignMarkup(syndFeed.getForeignMarkup()); } return channel; }
protected WireFeed createRealFeed(String type,SyndFeed syndFeed) { Channel channel = new Channel(type); channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules())); channel.setEncoding(syndFeed.getEncoding()); channel.setTitle(syndFeed.getTitle()); if (syndFeed.getLink() != null) { channel.setLink(syndFeed.getLink()); } else if (syndFeed.getLinks().size() > 0) { channel.setLink(((SyndLink)syndFeed.getLinks().get(0)).getHref()); } channel.setDescription(syndFeed.getDescription()); SyndImage sImage = syndFeed.getImage(); if (sImage!=null) { channel.setImage(createRSSImage(sImage)); } List sEntries = syndFeed.getEntries(); if (sEntries!=null) { channel.setItems(createRSSItems(sEntries)); } if (((List)syndFeed.getForeignMarkup()).size() > 0) { channel.setForeignMarkup(syndFeed.getForeignMarkup()); } return channel; }
protected WireFeed createRealFeed(String type,SyndFeed syndFeed) { Channel channel = new Channel(type); channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules())); channel.setEncoding(syndFeed.getEncoding()); channel.setTitle(syndFeed.getTitle()); if (syndFeed.getLink() != null) { channel.setLink(syndFeed.getLink()); } else if (syndFeed.getLinks().size() > 0) { channel.setLink(((SyndLink)syndFeed.getLinks().get(0)).getHref()); } channel.setDescription(syndFeed.getDescription()); SyndImage sImage = syndFeed.getImage(); if (sImage!=null) { channel.setImage(createRSSImage(sImage)); } List sEntries = syndFeed.getEntries(); if (sEntries!=null) { channel.setItems(createRSSItems(sEntries)); } if (((List)syndFeed.getForeignMarkup()).size() > 0) { channel.setForeignMarkup(syndFeed.getForeignMarkup()); } return channel; }
protected WireFeed createRealFeed(String type,SyndFeed syndFeed) { Channel channel = new Channel(type); channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules())); channel.setEncoding(syndFeed.getEncoding()); channel.setTitle(syndFeed.getTitle()); if (syndFeed.getLink() != null) { channel.setLink(syndFeed.getLink()); } else if (syndFeed.getLinks().size() > 0) { channel.setLink(((SyndLink)syndFeed.getLinks().get(0)).getHref()); } channel.setDescription(syndFeed.getDescription()); SyndImage sImage = syndFeed.getImage(); if (sImage!=null) { channel.setImage(createRSSImage(sImage)); } List sEntries = syndFeed.getEntries(); if (sEntries!=null) { channel.setItems(createRSSItems(sEntries)); } if (((List)syndFeed.getForeignMarkup()).size() > 0) { channel.setForeignMarkup(syndFeed.getForeignMarkup()); } return channel; }