Module declarations and variable definitions
We start out by using the Jabber::Connection library,
which is defined as follows:
use strict; use Jabber::Connection; use Jabber::NodeFactory; use Jabber::NS qw(:all); use MLDBM 'DB_File'; use LWP::Simple; use XML::RSS;
The Jabber::Connection library consists of the following three modules:
-
Jabber::Connection This module is used to manage the connection to the server and parses and dispatches incoming elements.
-
Jabber::NodeFactory This module allows us to manipulate elements, which are generically called nodes.
-
Jabber::NS The last module provides us with a list of constants that reflect namespaces and other common strings used in Jabber server, client, and component programming.
Next we need a way of storing the registration information between invocations
of the component script, and for that we’ll use the Multi-Level Database
Manager module, MLDBM.
MLDBM is a useful wrapper that can be placed around the
DB_File module. DB_File provides
access to Berlekey Database (Berkeley DB, at http://www.sleepycat.com) facilities using the tie()
function. While you can’t store references (i.e., complex data structures)
via DB_File, you can with the
MLDBM wrapper.
We will use the LWP::Simple module to grab the RSS
sources by URL and the XML::RSS module to parse those
sources once retrieved:
my $NAME = 'RSS News Agent'; my $ID = 'rss.qmacro.dyndns.org'; my $VERSION = '0.1'; my $reg_file = 'registrations'; my %reg; my %cache; my %sources = ...
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