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.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access