package AnySan::Provider::FriendFeed; use strict; use warnings; use base 'AnySan::Provider'; our @EXPORT = qw(friend_feed); use AnySan; use AnySan::Receive; use AnyEvent::FriendFeed::Realtime; sub friend_feed { my(%config) = @_; my $self = __PACKAGE__->new( client => undef, config => \%config, ); my $client = AnyEvent::FriendFeed::Realtime->new( username => $config{user}, remote_key => $config{remote_key}, request => $config{request}, on_entry => sub { my $entry = shift; my $receive; $receive = AnySan::Receive->new( provider => 'friend_feed', event => 'entry', message => $entry->{body}, nickname => $config{nickname} || '', from_nickname => $entry->{from}->{name}, attribute => { id => $entry->{id}, url => $entry->{url}, geo => $entry->{geo}, icon_url => $entry->{thumbnails}->[0]->{url}, created_at => $entry->{date}, }, cb => sub { $self->event_callback($receive, @_) }, ); AnySan->broadcast_message($receive); } ); $self->{client} = $client; return $self; } sub event_callback { my($self, $receive, $type, @args) = @_; if ($type eq 'reply') { warn 'send_replay is not suportted.'; } } sub send_message { warn 'send_message is not suportted.'; } 1;