Polling the RSS sources
Next, we need some way of “interrupting” the process of checking
for incoming elements and dispatching them to the callbacks, while we
retrieve the RSS data and check for new items. Since we’re writing this component in Perl, we could use
the alarm()
feature to set an alarm and have a
subroutine invoked, to poll the RSS sources, when the alarm goes off.
However, this recipe uses the Jabber::Connection
library,
which negates the needs for an external alarm.
Instead, we need to take the following steps each time we want to poll the RSS sources:
Try to retrieve the source from the URL.
Attempt to parse the source’s XML.
Go through the items, until we come across one we’ve seen before; the ones we go through until then are deemed to be new. (We need a special case the first time around, so that we don’t flood everyone with every item of a source the first time it is retrieved.)
For new items, look in the registration database for the users that have registered for that source, construct a headline message like the one shown in Example 9-7, and send it to those users.
Remember the first of the new items, so that we don’t go beyond it next time.
Get Programming Jabber now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.