diff --git a/lib/Carol/IRCGateway/Wassr.pm b/lib/Carol/IRCGateway/Wassr.pm index 06608ce..f4fd387 100644 --- a/lib/Carol/IRCGateway/Wassr.pm +++ b/lib/Carol/IRCGateway/Wassr.pm @@ -74,9 +74,12 @@ sub register_post_wassr { daemon_privmsg => sub { my ($irc, $nick, $chan, $text ) = @_; if ( $chan eq $channel ) { + my $cv = AnyEvent->condvar; + $cv->begin; $self->request_wassr(POST => '/statuses/update.json?source=carol_wig&status=' . URI::Escape::uri_escape($text) . '&id=' . $self->account->{login_id}, authorize => 1, sub { + $cv->end; }); } }, @@ -107,14 +110,16 @@ sub publish_privmsg { user => $status->{user_login_id}, servername => "wig" ); - $server->event( - join => +{ - params => [ - "$channel,", - ], - }, - $dummy_handle, - ); + if ( $status->{user_login_id} ne $self->account->{login_id} ) { + $server->event( + join => +{ + params => [ + "$channel,", + ], + }, + $dummy_handle, + ); + } $server->daemon_cmd_privmsg($status->{user_login_id}, $channel, $self->status2irc_message($status)); debugf(sprintf("send privmsg: %s %s", $status->{user_login_id}, $status->{text})); }, diff --git a/scripts/carol.pl b/scripts/carol.pl index 2465e20..d5e784c 100755 --- a/scripts/carol.pl +++ b/scripts/carol.pl @@ -1,6 +1,8 @@ #!perl use strict; use warnings; +use AnyEvent; +use AnyEvent::Impl::Event; use AnyEvent::IRC::Server; use opts; use Filesys::Notify::Simple;