App-RoboBot

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "AnyEvent::IRC::Client" : "0",
            "AnyEvent::Mattermost" : "0",
            "AnyEvent::SlackRTM" : "0",
            "App::Sqitch" : "0",
            "Clone" : "0",
            "Config::Any::Merge" : "0",
            "Config::General" : "0",
            "DBD::Pg" : "0",
            "DBIx::DataStore" : "0",
            "Data::Dumper" : "0",
            "DateTime" : "0",
            "DateTime::Format::Pg" : "0",
            "EV" : "0",
            "Exporter::Easy" : "0",
            "File::HomeDir" : "0",
            "File::ShareDir" : "0",
            "FileHandle" : "0",
            "Getopt::Long::Descriptive" : "0",
            "HTML::TreeBuilder::LibXML" : "0",
            "HTML::TreeBuilder::XPath" : "0",
            "HTTP::Request" : "0",
            "IPC::Open2" : "0",

META.yml  view on Meta::CPAN

  AnyEvent::IRC::Client: '0'
  AnyEvent::Mattermost: '0'
  AnyEvent::SlackRTM: '0'
  App::Sqitch: '0'
  Clone: '0'
  Config::Any::Merge: '0'
  Config::General: '0'
  DBD::Pg: '0'
  DBIx::DataStore: '0'
  Data::Dumper: '0'
  DateTime: '0'
  DateTime::Format::Pg: '0'
  EV: '0'
  Exporter::Easy: '0'
  File::HomeDir: '0'
  File::ShareDir: '0'
  FileHandle: '0'
  Getopt::Long::Descriptive: '0'
  HTML::TreeBuilder::LibXML: '0'
  HTML::TreeBuilder::XPath: '0'
  HTTP::Request: '0'
  IPC::Open2: '0'

Makefile.PL  view on Meta::CPAN

    "AnyEvent::IRC::Client" => 0,
    "AnyEvent::Mattermost" => 0,
    "AnyEvent::SlackRTM" => 0,
    "App::Sqitch" => 0,
    "Clone" => 0,
    "Config::Any::Merge" => 0,
    "Config::General" => 0,
    "DBD::Pg" => 0,
    "DBIx::DataStore" => 0,
    "Data::Dumper" => 0,
    "DateTime" => 0,
    "DateTime::Format::Pg" => 0,
    "EV" => 0,
    "Exporter::Easy" => 0,
    "File::HomeDir" => 0,
    "File::ShareDir" => 0,
    "FileHandle" => 0,
    "Getopt::Long::Descriptive" => 0,
    "HTML::TreeBuilder::LibXML" => 0,
    "HTML::TreeBuilder::XPath" => 0,
    "HTTP::Request" => 0,
    "IPC::Open2" => 0,

Makefile.PL  view on Meta::CPAN

  "AnyEvent::IRC::Client" => 0,
  "AnyEvent::Mattermost" => 0,
  "AnyEvent::SlackRTM" => 0,
  "App::Sqitch" => 0,
  "Clone" => 0,
  "Config::Any::Merge" => 0,
  "Config::General" => 0,
  "DBD::Pg" => 0,
  "DBIx::DataStore" => 0,
  "Data::Dumper" => 0,
  "DateTime" => 0,
  "DateTime::Format::Pg" => 0,
  "EV" => 0,
  "Exporter::Easy" => 0,
  "ExtUtils::MakeMaker" => 0,
  "File::HomeDir" => 0,
  "File::ShareDir" => 0,
  "File::Spec" => 0,
  "FileHandle" => 0,
  "Getopt::Long::Descriptive" => 0,
  "HTML::TreeBuilder::LibXML" => 0,
  "HTML::TreeBuilder::XPath" => 0,

lib/App/RoboBot/Macro.pm  view on Meta::CPAN


use Moose;
use MooseX::ClassAttribute;
use MooseX::SetOnce;

use App::RoboBot::Nick;
use App::RoboBot::Parser;

use Clone qw( clone );
use Data::Dumper;
use DateTime;
use DateTime::Format::Pg;
use JSON;
use Scalar::Util qw( blessed );

has 'bot' => (
    is       => 'ro',
    isa      => 'App::RoboBot',
    required => 1,
);

has 'id' => (

lib/App/RoboBot/Macro.pm  view on Meta::CPAN

);

has 'definer' => (
    is        => 'rw',
    isa       => 'App::RoboBot::Nick',
    predicate => 'has_definer',
);

has 'timestamp' => (
    is       => 'rw',
    isa      => 'DateTime',
    traits   => [qw( SetOnce )],
    default  => sub { DateTime->now() },
    required => 1,
);

has 'is_locked' => (
    is      => 'rw',
    isa     => 'Bool',
    default => 0,
);

has 'valid' => (

lib/App/RoboBot/Macro.pm  view on Meta::CPAN

        $macros{$network->id} = {} unless exists $macros{$network->id};

        $macros{$network->id}{$res->{'name'}} = $class->new(
            bot        => $bot,
            id         => $res->{'macro_id'},
            network    => $network,
            name       => $res->{'name'},
            arguments  => decode_json($res->{'arguments'}),
            definition => $res->{'definition'},
            definer    => App::RoboBot::Nick->new( config => $bot->config, name => $res->{'nick'} ),
            timestamp  => DateTime::Format::Pg->parse_datetime($res->{'defined_at'}),
            is_locked  => $res->{'is_locked'},
        );
    }

    $logger->debug('All macros loaded. Returning collection.');

    return %macros;
}

sub save {

lib/App/RoboBot/Message.pm  view on Meta::CPAN

package App::RoboBot::Message;
$App::RoboBot::Message::VERSION = '4.004';
use v5.20;

use namespace::autoclean;

use Moose;
use MooseX::ClassAttribute;
use MooseX::SetOnce;

use DateTime;

use App::RoboBot::Parser;
use App::RoboBot::Response;

has 'raw' => (
    is       => 'rw',
    isa      => 'Str',
    required => 1,
);

lib/App/RoboBot/Message.pm  view on Meta::CPAN


has 'network' => (
    is       => 'rw',
    isa      => 'Object',
    traits   => [qw( SetOnce )],
    required => 1,
);

has 'timestamp' => (
    is       => 'ro',
    isa      => 'DateTime',
    default  => sub { DateTime->now },
    required => 1,
);

has 'response' => (
    is        => 'rw',
    isa       => 'App::RoboBot::Response',
    predicate => 'has_response',
);

has 'vars' => (

lib/App/RoboBot/Plugin/API/Kegerator.pm  view on Meta::CPAN

    default => sub {
        my $ua = LWP::UserAgent->new;
        $ua->agent('App::RoboBot');
        $ua->timeout(5);
        return $ua;
    },
);

has 'last_check' => (
    is      => 'rw',
    isa     => 'DateTime',
    default => sub { DateTime->now },
);

has 'beer_cache' => (
    is      => 'rw',
    isa     => 'HashRef',
    default => sub { {} },
);

has 'valid_config' => (
    is      => 'rw',

lib/App/RoboBot/Plugin/API/PagerDuty.pm  view on Meta::CPAN

$App::RoboBot::Plugin::API::PagerDuty::VERSION = '4.004';
use v5.20;

use namespace::autoclean;

use Moose;
use MooseX::SetOnce;

use AnyEvent;
use Data::Dumper;
use DateTime;
use HTTP::Request;
use JSON;
use LWP::UserAgent;
use LWP::Protocol::https;
use URI;

use App::RoboBot::Channel;
use App::RoboBot::Response;

extends 'App::RoboBot::Plugin';

lib/App/RoboBot/Plugin/API/PagerDuty.pm  view on Meta::CPAN

    eval {
        $json = decode_json($response->decoded_content);
    };
    return if $@;
    return $json;
}

sub now {
    my ($self) = @_;

    return DateTime->now->iso8601 . 'Z';
}

sub _validate_config {
    my ($self, $message) = @_;

    unless (exists $self->bot->config->plugins->{'pagerduty'}
            && exists $self->bot->config->plugins->{'pagerduty'}{'group'}
            && ref($self->bot->config->plugins->{'pagerduty'}{'group'}) eq 'HASH')
    {
        $message->response->raise('PagerDuty groups not properly configured. Please contact bot administrator.');

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'AnyEvent::IRC::Client' => '0',
                                      'AnyEvent::Mattermost' => '0',
                                      'AnyEvent::SlackRTM' => '0',
                                      'App::Sqitch' => '0',
                                      'Clone' => '0',
                                      'Config::Any::Merge' => '0',
                                      'Config::General' => '0',
                                      'DBD::Pg' => '0',
                                      'DBIx::DataStore' => '0',
                                      'Data::Dumper' => '0',
                                      'DateTime' => '0',
                                      'DateTime::Format::Pg' => '0',
                                      'EV' => '0',
                                      'Exporter::Easy' => '0',
                                      'File::HomeDir' => '0',
                                      'File::ShareDir' => '0',
                                      'FileHandle' => '0',
                                      'Getopt::Long::Descriptive' => '0',
                                      'HTML::TreeBuilder::LibXML' => '0',
                                      'HTML::TreeBuilder::XPath' => '0',
                                      'HTTP::Request' => '0',
                                      'IPC::Open2' => '0',



( run in 0.420 second using v1.01-cache-2.11-cpan-05444aca049 )