commit 7d9238c442e71ea7b906beb7d16e5550568ce326 from: Izzy Blacklock date: Mon May 15 18:43:08 2023 UTC Respond with private data in pm now. commit - 0b0333461f9db1d7b208b4b016de7f8b2e6cd86d commit + 7d9238c442e71ea7b906beb7d16e5550568ce326 blob - 486c369f0520dfad07d9650dd622651c16d8c600 blob + 8b11009dd0a28d30842f9ae9f0225f182d36fecc --- lib/Bot/BasicBot/Pluggable/Module/BotnowDB.pm +++ lib/Bot/BasicBot/Pluggable/Module/BotnowDB.pm @@ -51,6 +51,12 @@ sub disconnectDB { sub listUsers { my $self=shift; + my $msg=shift; + my $reply; + if ($msg->{channel} ne 'msg') { # Notify we are replying in PM. + $reply = "See Private Message"; + } + my $dbh=$self->connectDB(); my $stmt=qq{SELECT DISTINCT username,email,password from bnc}; my @lines; @@ -60,25 +66,32 @@ sub listUsers { next unless (defined $usr->[2]); push @lines, qq{$usr->[0] : $usr->[1] : $seen->{time}}; } - my $reply = join ("\n", @lines); $self->disconnectDB($dbh); + my $pm = join ("\n", @lines); + $self->say({who=>$msg->{who},channel=>'msg',body=>$pm}); return $reply; } sub getUser { my $self = shift; + my $msg=shift; my $user = shift; + my $reply; + if ($msg->{channel} ne 'msg') { # Notify we are replying in PM. + $reply = "See Private Message"; + } my $dbh = $self->connectDB(); my $stmt = qq{select username,email from bnc where username is ?}; my @userDetails = $dbh->selectrow_array($stmt, undef, $user); - my $reply = $userDetails[0] . ": " . $userDetails[1]; + my $pm = $userDetails[0] . ": " . $userDetails[1]; my $seen = $self->bot->module('seen')->get("seen_$user"); if (defined $seen) { - $reply .= "\nLast Seen: " . $seen->{time} . " in " . $seen->{channel} . "\n"; - $reply .= $seen->{what} . "."; + $pm .= "\nLast Seen: " . $seen->{time} . " in " . $seen->{channel} . "\n"; + $pm .= $seen->{what} . "."; } $self->disconnectDB($dbh); + $self->say({who=>$msg->{who},channel=>'msg',body=>$pm}); return $reply; } @@ -100,9 +113,6 @@ sub told { if($message->{address}) { my $body = $message->{body}; my $channel = $message->{channel}; - if ($channel eq 'msg') { # was a private message so respond in private message - $channel = $message->{who}; - } if($body =~ /^botnow/i) { # Only reply if line begins with botnow if (not $self->bot->module("Auth")->authed($message->{who})) { return "Please Authenticate"; @@ -110,14 +120,14 @@ sub told { my @cmds = split(' ',$body); shift @cmds; #pop botnow off command list my %actions = ( - users => sub { return $self->listUsers(@_) }, + users => sub { return $self->listUsers( @_ ) }, user => sub { return $self->getUser( @_ ) }, ); if (!defined($actions{$cmds[0]})) { return $self->help(); } - my $reply = $actions{$cmds[0]}->(@cmds[1,-1]) ; + my $reply = $actions{$cmds[0]}->($message, @cmds[1,-1]) ; return $reply; } }