From 0efffcd7502c809f89887f9aa9731c04d2492353 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 29 Aug 2010 02:33:49 +0200 Subject: [PATCH] join IRC_ROOM and subscribe --- scripts/mqr-irc-client.pl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/mqr-irc-client.pl b/scripts/mqr-irc-client.pl index 63f8fee..9412ab9 100755 --- a/scripts/mqr-irc-client.pl +++ b/scripts/mqr-irc-client.pl @@ -13,14 +13,23 @@ use AnyEvent::Redis; use Data::Dump qw(dump); my $nick = $ENV{IRC_NICK} || die "IRC_NICK"; - -my $pub = AnyEvent::Redis->new( host => $ENV{REDIS_HOST}, port => $ENV{REDIS_PORT} ); -my $sub = AnyEvent::Redis->new( host => $ENV{REDIS_HOST}, port => $ENV{REDIS_PORT} ); +my $room = $ENV{IRC_ROOM} || die "IRC_ROOM"; my $c = AnyEvent->condvar; my $stdout = AnyEvent::Handle->new (fh => \*STDOUT); my $con = new AnyEvent::IRC::Client; +my $pub = AnyEvent::Redis->new( host => $ENV{REDIS_HOST}, port => $ENV{REDIS_PORT} ); +my $sub = AnyEvent::Redis->new( host => $ENV{REDIS_HOST}, port => $ENV{REDIS_PORT} ); + +$sub->psubscribe( 'channel *', sub { + my ( $message, $from ) = @_; + return unless $from !~ m/\Q$nick\E/; # skip our messages + warn "#Q<< $from | $message\n"; + my ( undef, $channel, $user ) = split(/ /,$from,3); + $con->send_msg( $room => join(' ',$channel, $user, $message) ); +}); + $con->reg_cb ( connect => sub { my ($con, $err) = @_; @@ -45,6 +54,8 @@ $con->reg_cb ( if ( $msg->{command} eq 'PRIVMSG' ) { my $channel = join(' ', 'channel', $msg->{params}->[0], $msg->{prefix}); $pub->publish( $channel, $msg->{params}->[1] ); + } elsif ( $msg->{command} eq 'MODE' ) { + $con->send_srv( JOIN => $room ); } }, debug_send => sub { -- 2.20.1