Yesterday I talked about using RSSBus script to easily combine multiple feeds into one. The result of the script was a single RSS feed.
RSSBus also has the ability to let me easily expose the data contained in this feed in other formats, such as plain text, HTML, ATOM, etc. We do this through RSBTemplates, which are nothing more than script (such as that in the post from yesterday) intermixed with non-script (like plain text, HTML, etc).
As an example, I will build on yesterdays script. I'll start with that exact “multi-search” script from yesterday and replace the contents of the rsb:call element with this:
<a href="[rss:link]">[rss:title]</a> <br />
[rss:description] <p /><hr />
Now instead of pushing out an item to an RSS feed, I am outputing simple HTML for each item resulting from the call. The results of the template as a whole would be an HTML document with a series of links and descriptions.
What you get now is just search results from multiple sources shown in one rss feed or html document. Big deal right? Yes.
The rsb:call in this example is just to a feedUnion operation. I could be calling operations for all kinds of tasks. Examples you say?
- Check for new PayPal transactions, *make* a new PayPal transaction
- Perform a database query
- Consume a web service
- Read from an Excel sheet
- Track a FedEx or UPS package
- Transfer a file over FTP or HTTP
- Authenticate a user in Active Directory
- Get and Set QuickBooks records
- Download a bank statement from my bank
- Work with Amazon S3 Buckets and Objects
- Make SalesForce.com queries
- etc, etc, etc!
In fact...ALL of the operations I've listed above are already ready to be used inside RSSBus right now. Using simple scripting, I can pipeline these calls to each other. One rsb:call can be nested inside another. One example that I could do in just a few lines of script:
- Query Quickbooks for new customers (it can even be a *REMOTE* copy of QuickBooks!)
- For each new new customer I find, send them an email, send a SalesForce.com query, and insert them into a database.
- For each new customer I find, create an account for them in Active Directory