AnySan

 view release on metacpan or  search on metacpan

eg/friend_feed.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnySan;
use AnySan::Provider::FriendFeed;

my $request = $ARGV[0] || '/feed/cpan';

my $friend_feed = friend_feed
    request => $request
    ;

eg/japan-earthquake-growler.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnyEvent;
use Cocoa::EventLoop;
use Cocoa::Growl ':all';

use AnySan;
use AnySan::Provider::Twitter;
use Config::Pit;
use Encode;

eg/japan-earthquake-growler.pl  view on Meta::CPAN

    follow   => '16052553', # 0000,11111,2222,3333,444
    ;

AnySan->register_listener(
    pikubo => {
        event => 'timeline',
        cb => sub {
            my $receive = shift;
            return unless $receive->message;
            my $msg = $receive->message;
            $msg = encode( utf8 => $msg ) if Encode::is_utf8($msg);
            printf "%s: %s\n", $receive->from_nickname, $msg;

            growl_notify(
                name        => 'JapanEarthQuakeGrowler',
                title       => $receive->from_nickname,
                description => $receive->message,
#                icon        => $img_url,
#                on_click    => sub { system 'open', $url }
            );
        },

eg/pikubo-growler.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnyEvent;
use Cocoa::EventLoop;
use Cocoa::Growl ':all';

use AnySan;
use AnySan::Provider::Twitter;
use Config::Pit;

my $config = pit_get("pikubo-growler", require => {

eg/tig-for-anysan.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnyEvent::IRC::Server;
use AnySan::Provider::Twitter;
use Config::Pit;
use Encode;

my $channel = '#twitter';

my $config = pit_get('tig-for-anysan', require => {
    consumer_key    => 'your twitter consumer_key',

eg/tig-for-anysan.pl  view on Meta::CPAN


my $ircd = AnyEvent::IRC::Server->new(
    port       => 6667,
    servername => '127.0.0.1',
);
$ircd->run();

$ircd->reg_cb(
    daemon_privmsg => sub {
        my ($irc, $nick, $chan, $text) = @_;
        $twitter->send_message(decode( utf8 => $text ));
    },
);

my %users;
AnySan->register_listener(
    tig => {
        event => 'timeline',
        cb => sub {
            my $receive = shift;
            return unless $receive->message;
            $users{$receive->from_nickname} ||= do {
                $ircd->daemon_cmd_join($receive->from_nickname, $channel, 'JOIN', dummyHandle->new);
                1;
            };
            $ircd->daemon_cmd_privmsg(
                $receive->from_nickname => $channel,
                encode( utf8 => $receive->message ),
            );
        },
    },
);

AnySan->run;

package
  dummyHandle;

eg/twitter-auto-responder.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnySan;
use AnySan::Provider::Twitter;
use Config::Pit;

my $username = shift;

my $config = pit_get("example.com", require => {
    consumer_key    => 'your twitter consumer_key',
    consumer_secret => 'your twitter consumer_secret',

eg/zenrartbot.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use utf8;

use AnySan::Provider::Twitter;
use Config::Pit;

my $config = pit_get('zenrabot', require => {
    consumer_key    => 'your twitter consumer_key',
    consumer_secret => 'your twitter consumer_secret',
    token           => 'your twitter access_token',
    token_secret    => 'your twitter access_token_secret',
});

lib/AnySan.pm  view on Meta::CPAN


    for my $hook (@hooks) {
        next unless $hook->{event} eq $receive->event;
        $hook->{cb}->($receive);
    }
}

1;
__END__

=encoding utf8

=head1 NAME

AnySan - ANY mesSaging protocol hANdler

=head1 SYNOPSIS

  # echo bot
  use AnySan;
  use AnySan::Provider::IRC;

lib/AnySan/Provider/IRC.pm  view on Meta::CPAN

}


sub event_callback {
    my($self, $receive, $type, @args) = @_;

    if ($type eq 'reply') {
        my $cmd = $receive->attribute('send_command') || 'NOTICE';
        my $send = '';
        my $msg = $args[0];
        $msg = encode( utf8 => $msg ) if Encode::is_utf8($msg);
        if ($receive->nickname eq $receive->attribute('channel')) {
            $send = mk_msg undef, $cmd => $receive->from_nickname, $msg;
        } else {
            $send = mk_msg undef, $cmd => $receive->attribute('channel'), $msg;
        }
        $self->_send_raw($send);
    }
}

sub _run {



( run in 1.282 second using v1.01-cache-2.11-cpan-49f99fa48dc )