IRC::Indexer::POD::ServerSpec - Export format for a single server
This document describes the format of IRC::Indexer exports from a single trawler; this is the hash returned by IRC::Indexer::Report::Server after a trawler run has completed.
See IRC::Indexer::POD::NetworkSpec for details on the format of network-wide information exports as provided by IRC::Indexer::Report::Network.
Current as of IRC::Indexer 0.01
JSON is the preferred format for network transmission; it is light and support is fairly universal.
IRC::Indexer also provides support for YAML and pure-perl serialization formats. This layout definition applies to any IRC::Indexer::Output format.
The export is a hash. This is called "associative array" in some languages; this document will use the term "ARRAY" to refer to a list and "HASH" to refer to an associative key=>value mapping. In Perl these data structures deserialize to an array reference and a hash reference respectively.
The term undef will be used to refer to what some languages call null.
Status Failure StartedAt ConnectedAt FinishedAt ConnectedTo ServerName NetName IRCD MOTD GlobalUsers OperCount ChanCount HashChans ListChans ListLinks
Status => STRING describing status (or undef) Failure => STRING describing failure (or undef)
All times are in epoch seconds.
StartedAt => TIME of object construction ConnectedAt => TIME of socket creation (or undef) FinishedAt => TIME the trawl run completed (or undef)
In Perl, you can use these to create a DateTime object, for example:
my $dt = DateTime->new(from_epoch => $secs); print $dt->mdy;
ConnectedTo => STRING server address we connected to ServerName => STRING server name announced by the server NetName => STRING network name announced by the server (or undef if no NETWORK= specified by server) GlobalUsers => INT total number of global users OperCount => INT total number of global operators (optional, undef if not announced in LUSERS) IRCD => STRING IRCD version if available
MOTD => [ ARRAY of MOTD lines ]
MOTD is saved as an array of lines as they are received, without newlines.
ChanCount => INT (public channels only) ListChans => ARRAY (of arrays) HashChans => HASH
HashChans->{$channel} = { Users => INT Topic => STRING }
HashChans is a hash, keyed on channel name, containing the number of users and the topic under the keys Users and Topic respectively.
If no topic is set, Topic should be the empty string, NOT undef.
ListChans = [ [ CHANNEL, USERS, TOPIC ], [ CHANNEL, USERS, TOPIC ], ],
ListChans is an array whose members are arrays containing three elements: channel name, channel users, channel topic.
IRC::Indexer generates ListChans if $trawler->info->channels() is called; it is not guaranteed to be available.
ListChans is provided as a convenience to frontends, so they do not need to execute possibly expensive sort routines themselves. If provided in exported output, ListChans must be sorted by user count, highest first.
The channel data should otherwise match HashChans.
ListLinks => ARRAY
Array containing the raw data from LINKS, if available.
Jon Portnoy <avenj@cobaltirc.org>
http://www.cobaltirc.org
To install IRC::Indexer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IRC::Indexer
CPAN shell
perl -MCPAN -e shell install IRC::Indexer
For more information on module installation, please visit the detailed CPAN module installation guide.