RSS Aggregator Macro

Last modified by Vincent Massol on 2021/03/17 21:09

feedAggregates several RSS feeds in a table
TypeXAR
Category
Developed by

Jerome, Fernando Correia

Rating
0 Votes
LicenseGNU Lesser General Public License 2.1

Installable with the Extension Manager

Description

A macro that aggregates RSS feeds in a single table.

Usage

{{rssaggregator}}
http://www.xwiki.org/xwiki/bin/view/Blog/GlobalBlogRss?xpage=plain
http://feeds.feedburner.com/xwikicomblogen
http://jerome.myxwiki.org/xwiki/bin/view/Blog/CategoryRss?xpage=plain&category=code
{{/rssaggregator}}

See also Jerome's Blog post on this macro.

Result

rssaggregator.png

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

Release Notes

v1.2

  • Support for HTTP Basic Authentication with URLs in the form http://user:password@example.org/feed
  • Message when there is an error retrieving a feed
  • Preventing index out of bounds error when no items are read
  • Translation of example table titles to English

v1.1

I replaced the line 

entries.keySet() as List).reverse()[0..20].each() 

with 

def mysize = entries.keySet().size()
(entries.keySet() as List).reverse()[0..mysize-1].each()

in order to prevent the "IndexOutOfBoundsException" in case there are less than 20 results to display.

Get Connected