The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

cpan_bot - an IRC CPAN Info bot

DESCRIPTION

An IRC bot to report recent uploads to PAUSE and provide information about CPAN authors/distributions/modules, as well as gives out links to documentation on http://search.cpan.org/

USAGE

    perl cpan_bot.pl

CONFIG

The config file is a file containing a simple hashref which the script will do'' default location the script will look for is ~/.cpan_bot/config however the path can be changed via enviromental variable CPAN_BOT_DIR, thus config file will be located at "$CPAN_BOT_DIR/config"

The sample config file is as follows:

    {
        nick    => 'CPAN2',
        server  => 'irc.freenode.net',
        port    => 6667,
        ircname => 'CPAN bot',
        
        do_nickserv   => 1,
        nickserv_pass => 'passo-word',
        channels      => [ '#zofbot' ],
        PAUSE_options => [
            store => '/home/zoffix/.cpan_bot/pause.data',
            login   => 'ZOFFIX',
            pass    => 'passo-word',
            interval => 600,
            channels => [ '#zofbot' ],
        ],
        CPANInfo_options => [
            path    => '/home/zoffix/.cpan_bot/',
        ],
        CPANLinks_to_docs_options => [
            # nothing to see here :)
        ],
    }
nick

Bot's nickname. Note: PoCo::IRC::NickReclaim is used, thus if nick is taken, bot will use nick with an underscore appended.

server

The IRC server to connect to.

port

The port of IRC server to connect to.

ircname

Whatever it is, will be passed to POE::Component::IRC constructor as a value for 'ircname'

do_nickserv

This is was developed for FreeNode IRC network. If set to a true value will identify with services before joining any channels. Not tested on any other networks, make sure to set to 0 if you can't identify or bot will not join anything.

nickserv_pass

Password to use for identification with NickServ. Ignored if do_nickserv is set to a false value.

channels

Takes an arrayref of channels to join.

PAUSE_options

Takes an arrayref, this is what to pass to POE::Component::IRC::Plugin::PAUSE::RecentUploads constructor.

CPANInfo_options

Takes an arrayref, this is what to pass to POE::Component::IRC::Plugin::CPAN::Info constructor.

item CPANLinks_to_docs_options

Takes an arrayref, this is what to pass to POE::Component::IRC::Plugin::CPAN::LinksToDocs::No404s constructor.

AUTHOR

Zoffix Znet <zoffix@cpan.org> ( http://zoffix.com, http://haslayout.net )

ACKNOWLEDGEMENTS

Thanks to Juerd (http://tnx.nl/404) for providing base code for CPA::LinksToDocs::No404s module.

LICENSE

Same as Perl