Adam
view release on metacpan or search on metacpan
ex/ncbot.pl view on Meta::CPAN
has tcp_server => (
isa => 'Int',
is => 'ro',
lazy_build => 1
);
method _build_tcp_server {
TCPServer->new(
Port => $self->listen,
ClientConnected => sub {
$self->debug("client connected from $_[HEAP]{remote_ip}");
},
ClientInput => sub {
$self->handle_nc_command( $_[ARG0] );
$_[HEAP]{client}->put('ok');
$_[KERNEL]->yield("shutdown");
return;
},
);
}
lib/Adam.pm view on Meta::CPAN
has plugin_manager => (
isa => 'POE::Component::IRC::Plugin::PlugMan',
is => 'ro',
lazy_build => 1,
);
sub _build_plugin_manager {
POE::Component::IRC::Plugin::PlugMan->new(
botowner => $_[0]->get_owner,
debug => 1
);
}
before 'START' => sub {
my ($self) = @_;
$self->plugin_add( 'PlugMan' => $self->plugin_manager );
};
has poco_irc_args => (
isa => 'HashRef',
lib/Adam.pm view on Meta::CPAN
sub load_plugin {
my ( $self, $name, $plugin ) = @_;
$self->plugin_manager->load( $name => $plugin, bot => $self );
}
event irc_plugin_add => sub {
my ( $self, $desc, $plugin ) = @_[ OBJECT, ARG0, ARG1 ];
$self->info("loaded plugin: $desc");
if ( $desc eq 'PlugMan' ) {
$self->debug("loading other plugins");
for my $name ( sort $self->plugin_names ) {
$self->debug("loading $name");
$plugin = $self->get_plugin($name);
$self->load_plugin( $name => $plugin );
}
}
};
event irc_connected => sub {
my ( $self, $sender ) = @_[ OBJECT, SENDER ];
$self->info( "connected to " . $self->get_server . ':' . $self->get_port );
return;
};
# We registered for all events, this will produce some debug info.
sub DEFAULT {
my ( $self, $event, $args ) = @_[ OBJECT, ARG0 .. $#_ ];
my @output = ("$event: ");
foreach my $arg (@$args) {
if ( ref($arg) eq ' ARRAY ' ) {
push( @output, "[" . join( " ,", @$arg ) . "]" );
}
else {
push( @output, "'$arg' " );
}
}
$self->debug( join ' ', @output );
return 0;
}
sub run {
$_[0]->new_with_options unless blessed $_[0];
POE::Kernel->run;
}
1; # Magic true value required at end of module
lib/Adam/Logger/API.pm view on Meta::CPAN
BEGIN {
$Adam::Logger::API::VERSION = '0.91';
}
# ABSTRACT: API Role for the Adam logger
# Dist::Zilla: +PodWeaver
use Moose::Role;
use namespace::autoclean;
requires qw(
log
debug
info
notice
warning
error
critical
alert
emergency
);
1;
( run in 1.011 second using v1.01-cache-2.11-cpan-49f99fa48dc )