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 )