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;
}


has _loop => (

lib/Adam/Logger/API.pm  view on Meta::CPAN

package Adam::Logger::API;
# ABSTRACT: API Role for the Adam logger
our $VERSION = '1.003';
use Moose::Role;
use namespace::autoclean;


requires qw(
  log
  debug
  info
  notice
  warning
  error
  critical
  alert
  emergency
);

1;

lib/Adam/Logger/Default.pm  view on Meta::CPAN

package Adam::Logger::Default;
# ABSTRACT: Default logger for Adam bots
our $VERSION = '1.003';
use Moose;
use POSIX qw( strftime );


sub log_dispatch_conf {
  return {
    class     => 'Log::Dispatch::Screen',
    min_level => 'debug',
    stderr    => 1,
    callbacks => sub {
      my %p = @_;
      my $ts = strftime('%Y-%m-%d %H:%M:%S', localtime);
      return "[$ts] [$p{level}] $p{message}\n";
    },
  };
}

with qw(



( run in 1.900 second using v1.01-cache-2.11-cpan-0bd6704ced7 )