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 or JSON 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. Networks The "networks" 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" if not defined at the top level) is 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. OUTPUT Here is some example output from the program: $ pocoirc -f example/config.yml 2010-09-26 02:49:41 Started (pid 27534) 2010-09-26 02:49:41 Constructing global plugins 2010-09-26 02:49:41 [freenode] Constructing local plugins 2010-09-26 02:49:41 [freenode] Spawning IRC component 2010-09-26 02:49:41 [magnet] Constructing local plugins 2010-09-26 02:49:41 [magnet] Spawning IRC component 2010-09-26 02:49:41 [freenode] Registering plugins 2010-09-26 02:49:41 [magnet] Registering plugins 2010-09-26 02:49:41 [freenode] Connecting to IRC 2010-09-26 02:49:41 [magnet] Connecting to IRC 2010-09-26 02:49:41 [freenode] Added plugin Whois3 2010-09-26 02:49:41 [freenode] Added plugin ISupport3 2010-09-26 02:49:41 [freenode] Added plugin DCC3 2010-09-26 02:49:41 [magnet] Added plugin Whois6 2010-09-26 02:49:41 [magnet] Added plugin ISupport6 2010-09-26 02:49:41 [magnet] Added plugin DCC6 2010-09-26 02:49:41 [freenode] Added plugin CTCP2 2010-09-26 02:49:41 [freenode] Added plugin AutoJoin2 2010-09-26 02:49:41 [freenode] Added plugin PocoircStatus2 2010-09-26 02:49:41 [magnet] Added plugin CTCP2 2010-09-26 02:49:41 [magnet] Added plugin PocoircStatus2 2010-09-26 02:49:41 [magnet] Connected to server 217.168.153.160 2010-09-26 02:49:41 [freenode] Connected to server 130.237.188.200 2010-09-26 02:49:41 [magnet] Server notice: *** Looking up your hostname... 2010-09-26 02:49:41 [magnet] Server notice: *** Checking Ident 2010-09-26 02:49:41 [freenode] Server notice: *** Looking up your hostname... 2010-09-26 02:49:41 [freenode] Server notice: *** Checking Ident 2010-09-26 02:49:41 [freenode] Server notice: *** Found your hostname 2010-09-26 02:49:41 [magnet] Server notice: *** Found your hostname 2010-09-26 02:49:51 [magnet] Server notice: *** No Ident response 2010-09-26 02:49:51 [magnet] Logged in to server electret.shadowcat.co.uk with nick hlagherf32fr 2010-09-26 02:49:55 [freenode] Server notice: *** No Ident response 2010-09-26 02:49:55 [freenode] Logged in to server lindbohm.freenode.net with nick foobar1234 2010-09-26 02:50:00 [freenode] Joined channel #foodsfdsf 2010-09-26 02:50:15 Exiting due to SIGINT 2010-09-26 02:50:15 Waiting up to 5 seconds for IRC server(s) to disconnect us 2010-09-26 02:50:15 [magnet] Error from IRC server: Closing Link: 212-30-192-157.static.simnet.is () 2010-09-26 02:50:15 [magnet] Disconnected from server 217.168.153.160 2010-09-26 02:50:15 [magnet] Shutting down 2010-09-26 02:50:15 [freenode] Quit from IRC (Client Quit) 2010-09-26 02:50:15 [magnet] Deleted plugin DCC6 2010-09-26 02:50:15 [magnet] Deleted plugin ISupport6 2010-09-26 02:50:15 [magnet] Deleted plugin CTCP2 2010-09-26 02:50:15 [magnet] Deleted plugin Whois6 2010-09-26 02:50:15 [magnet] Deleted plugin PocoircStatus2 2010-09-26 02:50:15 [freenode] Error from IRC server: Closing Link: 212-30-192-157.static.simnet.is (Client Quit) 2010-09-26 02:50:15 [freenode] Disconnected from server 130.237.188.200 2010-09-26 02:50:15 [freenode] Shutting down 2010-09-26 02:50:15 [freenode] Deleted plugin DCC3 2010-09-26 02:50:15 [freenode] Deleted plugin AutoJoin2 2010-09-26 02:50:15 [freenode] Deleted plugin CTCP2 2010-09-26 02:50:15 [freenode] Deleted plugin Whois3 2010-09-26 02:50:15 [freenode] Deleted plugin PocoircStatus2 2010-09-26 02:50:15 [freenode] Deleted plugin ISupport3 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.