Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

poe::component::irc::cookbook(3pm) [debian man page]

POE::Component::IRC::Cookbook(3pm)			User Contributed Perl Documentation			POE::Component::IRC::Cookbook(3pm)

NAME
POE::Component::IRC::Cookbook - The PoCo-IRC Cookbook: Overview DESCRIPTION
POE::Component::IRC is a fully event-driven IRC client module built around POE. It can be used to write IRC client applications of any kind. This cookbook features working examples of programs demonstrating the capabilities of POE::Component::IRC. Note: This is a work in progress. The entries without hyperlinks indicate unwritten recipes. RECIPES
General Disconnecting Shows you how to disconnect gracefully. Bots A basic bot A basic bot demonstrating the basics of PoCo-IRC. Translator Add translating capabilities to your bot. Resolver Have your bot resolve DNS records for you. MegaHAL Allow your bot to talk, using artificial "intelligence". Seen Implement the "seen" feature found in many bots, which tells you when your bot last saw a particular user, and what they were doing/saying. Reload Structure your code in such a way that your bot can be reprogrammed at runtime without reconnecting to the IRC server. Feeds Use your bot as an RSS/Atom feed aggregator. Reminder Have your bot remind you about something at a later time. Messenger Have your bot deliver messages to users as soon as they become active. Eval Have your bot evaluate mathematical expressions and code. Clients Gtk2 A simple IRC client with a Gtk2 interface. ReadLine A simple IRC client with a ReadLine interface. AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook(3pm)

Check Out this Related Man Page

POE::Component::IRC::Cookbook::Translator(3pm)		User Contributed Perl Documentation	    POE::Component::IRC::Cookbook::Translator(3pm)

NAME
POE::Component::IRC::Cookbook::Translator - A bot that can translate text SYNOPSIS
This bot uses POE::Component::Lingua::Translate to translate text for channel members. It makes use of the "BotCommand" plugin to handle the translate command. DESCRIPTION
#!/usr/bin/env perl use strict; use warnings; use Encode qw(decode); use Encode::Guess; use IRC::Utils qw(decode_irc parse_user); use POE; use POE::Component::IRC::State; use POE::Component::IRC::Plugin::AutoJoin; use POE::Component::IRC::Plugin::BotCommand; use POE::Component::Lingua::Translate; POE::Session->create( package_states => [ main => [ qw(_start irc_botcmd_trans translated) ] ], heap => { translators => { }, } ); $poe_kernel->run(); sub _start { my $heap = $_[HEAP]; my $irc = POE::Component::IRC::State->spawn( Nick => 'translator_bot', Server => 'irc.freenode.net', ); $heap->{irc} = $irc; $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => [ '#test_channel1', '#test_channel2' ] )); $irc->plugin_add('BotCommand', POE::Component::IRC::Plugin::BotCommand->new( Commands => { trans => 'Usage: trans <from>,<to> <text>' } )); $irc->yield(register => 'botcmd_trans'); $irc->yield('connect'); return; } sub irc_botcmd_trans { my $heap = $_[HEAP]; my $irc = $heap->{irc}; my $nick = parse_user( $_[ARG0] ); my $channel = $_[ARG1]; my ($from, $to, $text) = split /,|s+/, $_[ARG2], 3; if (!exists $heap->{translators}->{$from . $to}) { eval { $heap->{translators}->{$from . $to} = POE::Component::Lingua::Translate->new( alias => $from . $to, back_end => 'Babelfish', src => $from, dest => $to, ); }; if ($@) { $irc->yield(privmsg => $channel, "$nick: There was an error: $@"); return; } } $poe_kernel->post($from . $to => translate => decode_irc($text), { channel => $channel, nick => $nick, } ); return; } sub translated { my $irc = $_[HEAP]->{irc}; my ($text, $context, $error) = @_[ARG0, ARG1, ARG2]; if ($error) { $irc->yield( 'privmsg', $context->{channel}, $context->{nick} . ": There was an error: $error", ); return; } $irc->yield( 'privmsg', $context->{channel}, $context->{nick} . ': ' . $text, ); return; } AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook::Translator(3pm)
Man Page