From c6e280a592ae7d87268f7fbf4cd49ff1581796fd Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 9 Jun 2021 14:19:24 -0400 Subject: slacktopic.pl: handle multiple IRC connections correctly --- slacktopic.pl | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/slacktopic.pl b/slacktopic.pl index 9fe70b1..0b2e5af 100644 --- a/slacktopic.pl +++ b/slacktopic.pl @@ -57,6 +57,7 @@ use Irssi qw/ channel_find command command_bind + servers signal_add_last timeout_add timeout_add_once @@ -208,17 +209,21 @@ sub init { # undef (false) if none. sub get_channels { my @result; + my $s; + + for(servers()) { + $s = $_, last if($_->{address} =~ $server_regex); + } + + if(!defined($s)) { + errmsg("not connected to any server matching $server_regex"); + return; + } + for(@update_channels) { - my $chan = channel_find($_); + my $chan = $s->channel_find($_); if(!$chan) { - errmsg("not joined to $_"); - next; - } - - my $server = $chan->{server}->{address}; - if($server !~ $server_regex) { - errmsg("channel $_ server is wrong: " . - $chan->{server}->{address}); + errmsg("not joined to $_ on " . $s->{address}); next; } -- cgit v1.2.3