@Override protected void createFeed(SyndFeed feed, Map model) { @SuppressWarnings("unchecked") List<PreparedUserEvent> list = (List<PreparedUserEvent>) model.get("topicsList"); String s = "Ответы на комментарии пользователя " + model.get("nick"); feed.setTitle(s); feed.setLink("http://www.linux.org.ru"); feed.setUri("http://www.linux.org.ru"); feed.setAuthor(""); feed.setDescription(s); Date lastModified; if (!list.isEmpty()) { lastModified = list.get(0).getEvent().getEventDate(); } else { lastModified = new Date(); } feed.setPublishedDate(lastModified); List<SyndEntry> entries = new ArrayList<>(); feed.setEntries(entries); for (PreparedUserEvent preparedUserEvent : list) { UserEvent item = preparedUserEvent.getEvent(); SyndEntry feedEntry = new SyndEntryImpl(); feedEntry.setPublishedDate(item.getEventDate()); feedEntry.setTitle(StringEscapeUtils.unescapeHtml4(item.getSubj())); String link; if (item.getCid() != 0) { feedEntry.setAuthor(preparedUserEvent.getAuthor().getNick()); link = String.format( "http://www.linux.org.ru/jump-message.jsp?msgid=%s&cid=%s", String.valueOf(item.getTopicId()), String.valueOf(item.getCid())); } else { link = String.format( "http://www.linux.org.ru/view-message.jsp?msgid=%s", String.valueOf(item.getTopicId())); } feedEntry.setLink(link); feedEntry.setUri(link); if (preparedUserEvent.getMessageText() != null) { SyndContent message = new SyndContentImpl(); message.setValue(StringUtil.removeInvalidXmlChars(preparedUserEvent.getMessageText())); message.setType("text/html"); feedEntry.setDescription(message); } entries.add(feedEntry); } }
/** * Overwrites the current values of the given feed entry with new ones computed from the specified * source document. * * @param entry the feed entry whose fields are going to be overwritten * @param doc the source for the new values to be set on the fields of the feed entry * @param params parameters to adjust the computation. Each concrete strategy may define its own * (key, value) pairs * @param context the XWiki context * @throws XWikiException */ public void sourceDocument( SyndEntry entry, Document doc, Map<String, Object> params, XWikiContext context) throws XWikiException { entry.setUri(getURI(doc, params, context)); entry.setLink(getLink(doc, params, context)); entry.setTitle(getTitle(doc, params, context)); entry.setDescription(getDescription(doc, params, context)); entry.setCategories(getCategories(doc, params, context)); entry.setPublishedDate(getPublishedDate(doc, params, context)); entry.setUpdatedDate(getUpdateDate(doc, params, context)); entry.setAuthor(getAuthor(doc, params, context)); entry.setContributors(getContributors(doc, params, context)); }
public static SyndFeed create( List<Bookmark> bookmarks, String author, String title, String link, Date pubDate, String feedUri) { logger.debug("SyndFeedFactory create method called"); logger.debug("bookmarks=" + bookmarks); logger.debug("author=" + author); logger.debug("title=" + title); logger.debug("link=" + link); logger.debug("pubDate=" + pubDate); logger.debug("feedUri=" + feedUri); SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setAuthor(author); syndFeed.setTitle(title); syndFeed.setUri(feedUri); syndFeed.setLink(link); syndFeed.setPublishedDate(pubDate); List<SyndEntry> entries = new ArrayList<SyndEntry>(); for (Bookmark bmark : bookmarks) { SyndEntry entry = new SyndEntryImpl(); entry.setTitle(bmark.getTitle()); entry.setAuthor(bmark.getUser().getUsername()); entry.setLink(bmark.getLink().getUrl()); entry.setUri("urn:bookmark:" + bmark.getId()); entry.setUpdatedDate(bmark.getLastUpdated()); List<String> tags = bmark.getTagList(); List<SyndCategory> cats = new ArrayList<SyndCategory>(); for (String aTag : tags) { SyndCategory aCat = new SyndCategoryImpl(); aCat.setName(aTag); cats.add(aCat); } if (cats.isEmpty() == false) { entry.setCategories(cats); } SyndContent cnt = new SyndContentImpl(); cnt.setType("text/html"); cnt.setValue(bmark.getNotes()); entry.setDescription(cnt); entries.add(entry); } syndFeed.setEntries(entries); syndFeed.setEncoding("UTF-8"); logger.debug("done initializing syndFeed object"); return syndFeed; }
public SyndEntry build() { final SyndEntry entry = new SyndEntryImpl(); if (uri != null) { entry.setUri(uri); } if (title != null) { entry.setTitleEx(title); } if (link != null) { entry.setLink(link); } if (links != null) { entry.setLinks(links); } if (description != null) { entry.setDescription(description); } if (contents != null) { entry.setContents(contents); } if (enclosures != null) { entry.setEnclosures(enclosures); } if (publishedDate != null) { entry.setPublishedDate(publishedDate); } if (updatedDate != null) { entry.setUpdatedDate(updatedDate); } if (author != null) { entry.setAuthor(author); } if (authors != null) { entry.setAuthors(authors); } if (contributors != null) { entry.setContributors(contributors); } if (categories != null) { entry.setCategories(categories); } return entry; }
/** * Create new entry * * @param uri uri of item * @param title title of item * @param link link to this item * @param listContent the content of item * @param description the description for this item * @return SyndEntry */ public static SyndEntry createNewEntry( String uri, String title, String link, List<String> listContent, SyndContent description, Date pubDate, String author) { SyndEntry entry = new SyndEntryImpl(); entry.setUri(uri); entry.setTitle(title); entry.setLink(link + uri); entry.setContributors(listContent); entry.setDescription(description); entry.setPublishedDate(pubDate); entry.setAuthor(author); return entry; }
@Override public SyndEntry getSyndEntry( HttpServletRequest request, HttpServletResponse response, Object bean) { CMTeasable teasable = (CMTeasable) bean; SyndPerson syndPerson = new SyndPersonImpl(); syndPerson.setName(AUTHOR_NAME); SyndEntry entry = new SyndEntryImpl(); entry.setAuthor(AUTHOR_NAME); entry.setAuthors(Collections.singletonList(syndPerson)); entry.getModules().add(createMediaEntryModule(request, response, teasable)); // NOSONAR entry.setCategories(Collections.<String>emptyList()); entry.setTitle(getTitle(request, response, teasable)); entry.setPublishedDate(teasable.getContent().getCreationDate().getTime()); entry.setUpdatedDate(teasable.getContent().getModificationDate().getTime()); entry.setLink(getLink(request, response, teasable, null)); entry.setDescription(createSyndContent(teasable)); return entry; }
public static SyndFeed createFromBookmarkDoc( List<BookmarkDoc> bookmarks, String author, String title, String link, Date pubDate, String feedUri) { logger.debug("SyndFeedFactory create method called"); logger.debug("bookmarks=" + bookmarks); logger.debug("author=" + author); logger.debug("title=" + title); logger.debug("link=" + link); logger.debug("pubDate=" + pubDate); logger.debug("feedUri=" + feedUri); SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setAuthor(author); syndFeed.setTitle(title); syndFeed.setUri(feedUri); syndFeed.setLink(link); syndFeed.setPublishedDate(pubDate); List<SyndEntry> entries = new ArrayList<SyndEntry>(); for (BookmarkDoc bmark : bookmarks) { SyndEntry entry = new SyndEntryImpl(); entry.setTitle(bmark.getTitle()); entry.setAuthor(bmark.getUsername()); entry.setLink(bmark.getUrl()); entry.setUri("urn-x:gnizr:bookmark:" + bmark.getBookmarkId()); SyndContent cnt = new SyndContentImpl(); cnt.setType("text/html"); if (bmark.getNotes() != null) { cnt.setValue(bmark.getNotes()); entry.setDescription(cnt); } entries.add(entry); } syndFeed.setEntries(entries); syndFeed.setEncoding("UTF-8"); logger.debug("done initializing syndFeed object"); return syndFeed; }
protected SyndEntry createSyndEntry(Item item) { SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setModules(ModuleUtils.cloneModules(item.getModules())); if (((List) item.getForeignMarkup()).size() > 0) { syndEntry.setForeignMarkup(item.getForeignMarkup()); } syndEntry.setUri(item.getUri()); syndEntry.setLink(item.getLink()); syndEntry.setTitle(item.getTitle()); if (item.getDescription() != null) { SyndContent description = new SyndContentImpl(); description.setValue(item.getDescription().getValue()); syndEntry.setDescription(description); } if (item.getAuthor() != null) syndEntry.setAuthor(item.getAuthor()); if (item.getPubDate() != null) syndEntry.setPublishedDate(item.getPubDate()); syndEntry.setCategories(item.getCategories()); return syndEntry; }
protected String exportToRSS( ResourceRequest resourceRequest, ResourceResponse resourceResponse, JournalFeed feed, String languageId, Layout layout, ThemeDisplay themeDisplay) throws Exception { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(feed.getDescription()); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); List<JournalArticle> articles = JournalRSSUtil.getArticles(feed); if (_log.isDebugEnabled()) { _log.debug("Syndicating " + articles.size() + " articles"); } for (JournalArticle article : articles) { SyndEntry syndEntry = new SyndEntryImpl(); String author = PortalUtil.getUserName(article); syndEntry.setAuthor(author); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); String value = article.getDescription(languageId); try { value = processContent(feed, article, languageId, themeDisplay, syndEntry, syndContent); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn(e, e); } } syndContent.setValue(value); syndEntry.setDescription(syndContent); String link = getEntryURL(resourceRequest, feed, article, layout, themeDisplay); syndEntry.setLink(link); syndEntry.setPublishedDate(article.getDisplayDate()); syndEntry.setTitle(article.getTitle(languageId)); syndEntry.setUpdatedDate(article.getModifiedDate()); syndEntry.setUri(link); syndEntries.add(syndEntry); } syndFeed.setFeedType(feed.getFeedType() + "_" + feed.getFeedVersion()); List<SyndLink> syndLinks = new ArrayList<SyndLink>(); syndFeed.setLinks(syndLinks); SyndLink selfSyndLink = new SyndLinkImpl(); syndLinks.add(selfSyndLink); ResourceURL feedURL = resourceResponse.createResourceURL(); feedURL.setCacheability(ResourceURL.FULL); feedURL.setParameter("struts_action", "/journal/rss"); feedURL.setParameter("groupId", String.valueOf(feed.getGroupId())); feedURL.setParameter("feedId", String.valueOf(feed.getFeedId())); String link = feedURL.toString(); selfSyndLink.setHref(link); selfSyndLink.setRel("self"); syndFeed.setTitle(feed.getName()); syndFeed.setPublishedDate(new Date()); syndFeed.setUri(feedURL.toString()); try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
protected String exportToRSS( PortletRequest portletRequest, PortletResponse portletResponse, String name, String description, String type, double version, String displayStyle, String linkBehavior, List<AssetEntry> assetEntries) throws Exception { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name); syndFeed.setLink(getFeedURL(portletRequest)); syndFeed.setDescription(GetterUtil.getString(description, name)); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); for (AssetEntry assetEntry : assetEntries) { String link = getEntryURL(portletRequest, portletResponse, linkBehavior, assetEntry); String author = PortalUtil.getUserName(assetEntry); String value = null; String languageId = LanguageUtil.getLanguageId(portletRequest); if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = assetEntry.getSummary(languageId, true); } SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(assetEntry.getTitle(languageId, true)); syndEntry.setLink(link); syndEntry.setUri(syndEntry.getLink()); syndEntry.setPublishedDate(assetEntry.getCreateDate()); syndEntry.setUpdatedDate(assetEntry.getModifiedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } return RSSUtil.export(syndFeed); }
protected String exportToRSS( String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List blogsEntries) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(type + "_" + version); syndFeed.setTitle(name); syndFeed.setLink(feedURL); syndFeed.setDescription(GetterUtil.getString(description, name)); List entries = new ArrayList(); syndFeed.setEntries(entries); Iterator itr = blogsEntries.iterator(); while (itr.hasNext()) { BlogsEntry entry = (BlogsEntry) itr.next(); String author = PortalUtil.getUserName(entry.getUserId(), entry.getUserName()); String link = entryURL; if (link.endsWith("/blogs/rss")) { link = link.substring(0, link.length() - 3) + entry.getUrlTitle(); } else { if (!link.endsWith("?")) { link += "&"; } link += "entryId=" + entry.getEntryId(); } String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten( Html.stripHtml(entry.getContent()), _RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else { value = entry.getContent(); } SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(entry.getTitle()); syndEntry.setLink(link); syndEntry.setPublishedDate(entry.getCreateDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType("html"); syndContent.setValue(value); syndEntry.setDescription(syndContent); entries.add(syndEntry); } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } catch (IOException ioe) { throw new SystemException(ioe); } }
protected String exportToRSS( String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<MBMessage> messages, ThemeDisplay themeDisplay) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); for (MBMessage message : messages) { SyndEntry syndEntry = new SyndEntryImpl(); if (!message.isAnonymous()) { String author = PortalUtil.getUserName(message); syndEntry.setAuthor(author); } SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten( HtmlUtil.extractText(message.getBody()), PropsValues.MESSAGE_BOARDS_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else if (message.isFormatBBCode()) { value = BBCodeTranslatorUtil.getHTML(message.getBody()); value = MBUtil.replaceMessageBodyPaths(themeDisplay, value); } else { value = message.getBody(); } syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntry.setLink(entryURL + "&messageId=" + message.getMessageId()); syndEntry.setPublishedDate(message.getCreateDate()); syndEntry.setTitle(message.getSubject()); syndEntry.setUpdatedDate(message.getModifiedDate()); syndEntry.setUri(syndEntry.getLink()); syndEntries.add(syndEntry); } syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); List<SyndLink> syndLinks = new ArrayList<SyndLink>(); syndFeed.setLinks(syndLinks); SyndLink selfSyndLink = new SyndLinkImpl(); syndLinks.add(selfSyndLink); selfSyndLink.setHref(feedURL); selfSyndLink.setRel("self"); syndFeed.setPublishedDate(new Date()); syndFeed.setTitle(name); syndFeed.setUri(feedURL); try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
protected static String exportToRSS( PortletRequest portletRequest, PortletResponse portletResponse, String name, String description, String format, double version, String displayStyle, String linkBehavior, List<AssetEntry> assetEntries) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setDescription(GetterUtil.getString(description, name)); List<SyndEntry> syndEntries = new ArrayList<>(); syndFeed.setEntries(syndEntries); for (AssetEntry assetEntry : assetEntries) { SyndEntry syndEntry = new SyndEntryImpl(); String author = PortalUtil.getUserName(assetEntry); syndEntry.setAuthor(author); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); String value = null; String languageId = LanguageUtil.getLanguageId(portletRequest); if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = assetEntry.getSummary(languageId, true); } syndContent.setValue(value); syndEntry.setDescription(syndContent); String link = getEntryURL(portletRequest, portletResponse, linkBehavior, assetEntry); syndEntry.setLink(link); syndEntry.setPublishedDate(assetEntry.getPublishDate()); syndEntry.setTitle(assetEntry.getTitle(languageId, true)); syndEntry.setUpdatedDate(assetEntry.getModifiedDate()); syndEntry.setUri(syndEntry.getLink()); syndEntries.add(syndEntry); } syndFeed.setFeedType(RSSUtil.getFeedType(format, version)); List<SyndLink> syndLinks = new ArrayList<>(); syndFeed.setLinks(syndLinks); SyndLink selfSyndLink = new SyndLinkImpl(); syndLinks.add(selfSyndLink); String feedURL = getFeedURL(portletRequest); selfSyndLink.setHref(feedURL); selfSyndLink.setRel("self"); SyndLink alternateSyndLink = new SyndLinkImpl(); syndLinks.add(alternateSyndLink); alternateSyndLink.setHref(PortalUtil.getLayoutFullURL(themeDisplay)); alternateSyndLink.setRel("alternate"); syndFeed.setPublishedDate(new Date()); syndFeed.setTitle(name); syndFeed.setUri(feedURL); return RSSUtil.export(syndFeed); }
// Logs a new ATOM entry public static synchronized void addATOMEntry( String title, String link, String description, File atomFile, String context) { try { if (atomFile.exists()) { // System.out.println("ATOM file found!"); /** Namespace URI for content:encoded elements */ String CONTENT_NS = "http://www.w3.org/2005/Atom"; /** Parses RSS or Atom to instantiate a SyndFeed. */ SyndFeedInput input = new SyndFeedInput(); /** Transforms SyndFeed to RSS or Atom XML. */ SyndFeedOutput output = new SyndFeedOutput(); // Load the feed, regardless of RSS or Atom type SyndFeed feed = input.build(new XmlReader(atomFile)); // Set the output format of the feed feed.setFeedType("atom_1.0"); List<SyndEntry> items = feed.getEntries(); int numItems = items.size(); if (numItems > 9) { items.remove(0); feed.setEntries(items); } SyndEntry newItem = new SyndEntryImpl(); newItem.setTitle(title); newItem.setLink(link); newItem.setUri(link); SyndContent desc = new SyndContentImpl(); desc.setType("text/html"); desc.setValue(description); newItem.setDescription(desc); desc.setType("text/html"); newItem.setPublishedDate(new java.util.Date()); List<SyndCategory> categories = new ArrayList<SyndCategory>(); if (CommonConfiguration.getProperty("htmlTitle", context) != null) { SyndCategory category2 = new SyndCategoryImpl(); category2.setName(CommonConfiguration.getProperty("htmlTitle", context)); categories.add(category2); } newItem.setCategories(categories); if (CommonConfiguration.getProperty("htmlAuthor", context) != null) { newItem.setAuthor(CommonConfiguration.getProperty("htmlAuthor", context)); } items.add(newItem); feed.setEntries(items); feed.setPublishedDate(new java.util.Date()); FileWriter writer = new FileWriter(atomFile); output.output(feed, writer); writer.toString(); } } catch (IOException ioe) { System.out.println("ERROR: Could not find the ATOM file."); ioe.printStackTrace(); } catch (Exception e) { System.out.println("Unknown exception trying to add an entry to the ATOM file."); e.printStackTrace(); } }
/** Fills in the feed and entry-level metadata from DSpace objects. */ public void populate(HttpServletRequest request, SummaryStatBean bean) { Locale locale = request.getLocale(); ResourceBundle msgs = ResourceBundle.getBundle("Messages", locale); int type = bean.getType(); int freq = bean.getFreq(); // String logoURL = ConfigurationManager // .getProperty("webui.feed.stats.logo.url"); String objectURL = bean.getObjectURL(); feed.setTitle( MessageFormat.format( localize(msgs, MSG_FEED_TITLE, freq, type, null, null), bean.getObjectName())); feed.setDescription( MessageFormat.format( localize(msgs, MSG_FEED_DESCRIPTION, freq, type, null, null), bean.getObjectName())); feed.setLink(objectURL); feed.setPublishedDate(new Date()); feed.setUri(objectURL); // // add logo if we found one: // if (logoURL != null) // { // // we use the path to the logo for this, the logo itself cannot // // be contained in the rdf. Not all RSS-viewers show this logo. // SyndImage image = new SyndImageImpl(); // image.setLink(objectURL); // image.setTitle(localize(labels, MSG_LOGO_TITLE, freq, type)); // image.setUrl(logoURL); // feed.setImage(image); // } // add entries for items if (bean.getData() != null) { List<SyndEntry> entries = new ArrayList<SyndEntry>(); for (SummaryStatBean.StatDataBean dataBean : bean.getData()) { Date date = dataBean.getDate(); SyndEntry entry = new SyndEntryImpl(); entries.add(entry); // all the feed has the same url... details on the statistics // page entry.setLink(bean.getStatURL() + "&freq=" + bean.getFreq() + "&date=" + date.getTime()); // entry.setUri(); entry.setTitle( MessageFormat.format( localize(msgs, MSG_ENTRY_TITLE, freq, type, null, null), bean.getObjectName(), dataBean.getDate())); Calendar c1 = Calendar.getInstance(); c1.setTime(date); if (bean.getFreq() != StatSubscription.FREQUENCY_MONTHLY) { c1.add(Calendar.DAY_OF_MONTH, 1); } else { c1.add(Calendar.MONTH, 1); } date = c1.getTime(); entry.setPublishedDate(date); // date of last change to Item entry.setUpdatedDate(dataBean.getDate()); SyndContent desc = new SyndContentImpl(); desc.setType("text/html"); String tmpMessage = ""; tmpMessage += MessageFormat.format( localize( msgs, MSG_ENTRY_DESCRIPTION, freq, type, AStatComponentService._SELECTED_OBJECT, "view"), dataBean.getPeriodSelectedView(), dataBean.getTotalSelectedView()); if (dataBean.isShowSelectedObjectDownload()) { tmpMessage += MessageFormat.format( localize( msgs, MSG_ENTRY_DESCRIPTION, freq, type, AStatComponentService._SELECTED_OBJECT, "download"), dataBean.getPeriodSelectedDownload(), dataBean.getTotalSelectedDownload()); } for (String key : dataBean.getPeriodAndTotalTopView().keySet()) { if (dataBean.getPeriodAndTotalTopView().get(key) != null) { if (dataBean.getPeriodAndTotalTopView().get(key).size() > 0) { tmpMessage += MessageFormat.format( localize(msgs, MSG_ENTRY_DESCRIPTION, freq, type, key, "view"), dataBean.getPeriodAndTotalTopView().get(key).get(0), dataBean.getPeriodAndTotalTopView().get(key).get(1)); } if (dataBean.getPeriodAndTotalTopDownload().get(key) != null) { if (dataBean.getPeriodAndTotalTopDownload().get(key).size() > 0) { tmpMessage += MessageFormat.format( localize(msgs, MSG_ENTRY_DESCRIPTION, freq, type, key, "download"), dataBean.getPeriodAndTotalTopDownload().get(key).get(0), dataBean.getPeriodAndTotalTopDownload().get(key).get(1)); } } } } String message = MessageFormat.format( localize(msgs, MSG_ENTRY_DESCRIPTION, freq, type, null, null), bean.getObjectName(), dataBean.getDate(), tmpMessage); desc.setValue(message); entry.setDescription(desc); entry.setAuthor(ConfigurationManager.getProperty("webui.feed.stats.authors")); } feed.setEntries(entries); } }
protected String exportToRSS( long companyId, String name, String description, String type, double version, String displayStyle, String feedURL, String entryURL, List<WikiPage> pages, boolean diff, Locale locale) throws SystemException { SyndFeed syndFeed = new SyndFeedImpl(); syndFeed.setFeedType(RSSUtil.getFeedType(type, version)); syndFeed.setTitle(name); syndFeed.setLink(feedURL); syndFeed.setDescription(description); List<SyndEntry> syndEntries = new ArrayList<SyndEntry>(); syndFeed.setEntries(syndEntries); WikiPage latestPage = null; StringBundler link = new StringBundler(7); for (WikiPage page : pages) { String author = HtmlUtil.escape(PortalUtil.getUserName(page.getUserId(), page.getUserName())); String title = page.getTitle() + StringPool.SPACE + page.getVersion(); if (page.isMinorEdit()) { title += StringPool.SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(locale, "minor-edit") + StringPool.CLOSE_PARENTHESIS; } link.setIndex(0); link.append(entryURL); link.append(StringPool.AMPERSAND); link.append(HttpUtil.encodeURL(page.getTitle())); SyndEntry syndEntry = new SyndEntryImpl(); syndEntry.setAuthor(author); syndEntry.setTitle(title); syndEntry.setPublishedDate(page.getCreateDate()); syndEntry.setUpdatedDate(page.getModifiedDate()); SyndContent syndContent = new SyndContentImpl(); syndContent.setType(RSSUtil.ENTRY_TYPE_DEFAULT); if (diff) { if (latestPage != null) { link.append(StringPool.QUESTION); link.append(PortalUtil.getPortletNamespace(PortletKeys.WIKI)); link.append("version="); link.append(page.getVersion()); String value = getPageDiff(companyId, latestPage, page, locale); syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } } else { String value = null; if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_ABSTRACT)) { value = StringUtil.shorten( HtmlUtil.extractText(page.getContent()), PropsValues.WIKI_RSS_ABSTRACT_LENGTH, StringPool.BLANK); } else if (displayStyle.equals(RSSUtil.DISPLAY_STYLE_TITLE)) { value = StringPool.BLANK; } else { value = page.getContent(); } syndContent.setValue(value); syndEntry.setDescription(syndContent); syndEntries.add(syndEntry); } syndEntry.setLink(link.toString()); syndEntry.setUri(syndEntry.getLink()); latestPage = page; } try { return RSSUtil.export(syndFeed); } catch (FeedException fe) { throw new SystemException(fe); } }
@SuppressWarnings("unchecked") private void serializeToFeed( OutputStream outputStream, GeolocResultsDto geolocResultsDto, String feedVersion, int startPaginationIndex) { SyndFeed synFeed = new SyndFeedImpl(); Writer oWriter = null; try { synFeed.setFeedType(feedVersion); synFeed.setTitle(Constants.FEED_TITLE); synFeed.setLink(Constants.FEED_LINK); synFeed.setDescription(Constants.FEED_DESCRIPTION); List<SyndEntry> entries = new ArrayList<SyndEntry>(); for (GisFeatureDistance gisFeatureDistance : geolocResultsDto.getResult()) { SyndEntry entry = new SyndEntryImpl(); GeoRSSModule geoRSSModuleGML = new GMLModuleImpl(); OpenSearchModule openSearchModule = new OpenSearchModuleImpl(); geoRSSModuleGML.setLatitude(gisFeatureDistance.getLat()); geoRSSModuleGML.setLongitude(gisFeatureDistance.getLng()); openSearchModule.setItemsPerPage(Pagination.DEFAULT_MAX_RESULTS); openSearchModule.setTotalResults(geolocResultsDto.getNumFound()); openSearchModule.setStartIndex(startPaginationIndex); entry.getModules().add(openSearchModule); entry.getModules().add(geoRSSModuleGML); entry.setTitle(gisFeatureDistance.getName()); entry.setAuthor(Constants.MAIL_ADDRESS); entry.setLink(Constants.GISFEATURE_BASE_URL + +gisFeatureDistance.getFeatureId()); SyndContent description = new SyndContentImpl(); description.setType(OutputFormat.ATOM.getContentType()); description.setValue(gisFeatureDistance.getName()); entry.setDescription(description); entries.add(entry); } synFeed.setEntries(entries); try { oWriter = new OutputStreamWriter(outputStream, Constants.CHARSET); } catch (UnsupportedEncodingException e) { throw new RuntimeException("unknow encoding " + Constants.CHARSET); } // Copy synfeed to output SyndFeedOutput output = new SyndFeedOutput(); try { output.output(synFeed, oWriter); // Flush oWriter.flush(); } catch (Exception e) { throw new RuntimeException(e); } } finally { if (oWriter != null) try { oWriter.close(); } catch (IOException e) { throw new RuntimeException(e); } if (outputStream != null) try { outputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } } }