The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Skype::Any::Declare - Addition of an interface similar to hubot for Skype::Any

SYNOPSIS

  use Skype::Any::Declare;

  skype(name => 'ping-pong');

  hear 'ping' => sub {
      my ($msg) = @_;
      $msg->chat->send_message('pong');
  };

  run;

DESCRIPTION

Skype::Any::Declare has interface similar to hubot.

FUNCTIONS

skype

Return Skype::Any object. Also, this function can specify arguments to pass to the object.

respond

  respond qr/pattern/ => sub { my ($chatmessage, @match) = @_; ... };
  respond 'string' => sub { my ($chatmessage, @match) = @_; ... };

Register handlers which is called if a message matches regexp. (Only when you received a message from 1:1 chat)

$chatmessage is Skype::Any::Object::ChatMessage object, @match is subgroups in regexp.

  respond 'yes'     => sub { $_[0]->chat->send_message('no') },
          'stop'    => sub { $_[0]->chat->send_message('go go go') },
          'goodbye' => sub { $_[0]->chat->send_message('hello') };

hear

  hear qr/pattern/ => sub { my ($chatmessage, @match) = @_; ... };
  hear 'string' => sub { my ($chatmessage, @match) = @_; ... };

Register handlers which is called if a message matches regexp. (Only when you received a message from group chat)

$chatmessage is Skype::Any::Object::ChatMessage object, @match is subgroups in regexp.

  hear qr/\A([0-9]{1,2}) : ([0-9]{1,2}) \s+ (.+)\z/xms => sub {
      my ($msg, $hour, $min, $reminder) = @_;
      ...
  };

run

  run;

Running event loop.

SEE ALSO

Skype::Any