NAME
    App::Pocoirc - The guts of pocoirc

DESCRIPTION
    This distribution provides a generic way to launch IRC clients which use
    POE::Component::IRC. The main features are:

    *   Prints useful status information (to your terminal and/or a log
        file)

    *   Will daemonize if you so wish

    *   Supports a configuration file

    *   Offers a user friendly way to pass arguments to POE::Component::IRC

    *   Supports multiple IRC components and lets you specify which plugins
        to load locally (one object per component) or globally (single
        object)

CONFIGURATION
     nick: foobar1234
     username: foobar

     global_plugins:
       - [CTCP]

     local_plugins:
       - [BotTraffic]

     networks:
       - name:   freenode
         server: irc.freenode.net
         local_plugins:
           - [AutoJoin, { Channels: ['#foodsfdsf'] } ]

       - name:   magnet
         server: irc.perl.org
         nick:   hlagherf32fr

    The configuration file is in YAML format. It consists of a hash
    containing "global_plugins", "local_plugins", "networks", "lib",
    "log_file", and default parameters to POE::Component::IRC. Only
    "networks" is required.

    "lib" is an array of directories containing Perl modules (e.g. plugins).
    Just like Perl's *-I*.

    "log_file" is the path to a log to which status messages will be
    written.

  "network"
    The "network" option should be an array of network hashes. A network
    hash consists of "name", "local_plugins", and parameters to
    POE::Component::IRC. Only "name" and "server" (a POE::Component::IRC
    parameter) are required. The POE::Component::IRC parameters specified in
    this hash will override the ones specified at the top level.

  Plugins
    The "global_plugins" and "local_plugins" options should consist of an
    array containing the short plugin class name (e.g. 'AutoJoin') and
    optionally a hash of arguments to that plugin. App::Pocoirc will first
    try to load POE::Component::IRC::Plugin::*your_plugin* before trying to
    load *your_plugin*.

    The plugins in "global_plugins" will be instantiated once and then added
    to all IRC components. Note: not all plugins are designed to be used
    with multiple IRC components simultaneously

    If you specify "local_plugins" at the top level, it will serve as a
    default list of local plugins, which can be overridden in a network
    hash.

TODO
    *   Check if a plugin is already loaded before calling require() on it

AUTHOR
    Hinrik Örn Sigurðsson, hinrik.sig@gmail.com

LICENSE AND COPYRIGHT
    Copyright 2010 Hinrik Örn Sigurðsson

    This program is free software, you can redistribute it and/or modify it
    under the same terms as Perl itself.

