commit - b2b8298e78436b45bd4e6e53c748746f99cca3e5
commit + 917188509192877feb9d6024b7e242810142d665
blob - a596a0dcc4888321007d0101794ea518d3d730c2
blob + 4ca243f3159767e56176d2f1887bb08d1697892f
--- lib/Bot/BasicBot/Pluggable/Module/BotnowDB.pm
+++ lib/Bot/BasicBot/Pluggable/Module/BotnowDB.pm
# Database modules for botnow.db
use DBI;
use DBD::SQLite;
+use DateTime;
# setup log level constents
use constant {
my $stmt = qq{select username,email from bnc where username is ?};
my @userDetails = $dbh->selectrow_array($stmt, undef, $user);
my $pm = $userDetails[0] . ": " . $userDetails[1];
+
+ # Check last time connected to znc
+ my $zncSeen = $dbh->selectrow_arrayref(qq{
+ SELECT * FROM zncLog WHERE user=? ORDER BY epoch DESC LIMIT 1
+ }, undef, $user);
+ if (defined $zncSeen) {
+ $pm .= "\nZNC Last Connected: " . $zncSeen->[2];
+ }
+ # Check last time bot seen user
my $seen = $self->bot->module('seen')->get("seen_$user");
if (defined $seen) {
$pm .= "\nLast Seen: " . $seen->{time} . " in " . $seen->{channel} . "\n";
my $pm = join (", ", @$users);
$self->disconnectDB($dbh);
$self->say({who=>$msg->{who}, channel=>'msg',body=>$pm});
+}
+use Data::Dumper;
+sub getIP {
+ my $self = shift;
+ my $msg=shift;
+ my $ip = shift;
+ my $dbh = $self->connectDB();
+ my $stmts = [
+ qq{SELECT irc.localtime,username FROM bnc JOIN irc ON (bnc.ircid = irc.id) WHERE ip IS ?},
+ qq{SELECT max(epoch),user FROM znclog WHERE address = ? GROUP BY user},
+ ];
+ my @users;
+ my $pm = "";
+ for my $stmt (@$stmts) {
+ for my $rows ($dbh->selectall_arrayref($stmt, undef, $ip)) {
+ for my $row (@$rows) {
+# push @users, $row;
+ my $dt = DateTime->from_epoch(epoch => $row->[0]);
+
+ $pm .= $dt->strftime('%Y-%m-%d %H:%M:%S') . " -- " . $row->[1] . "\n";
+ }
+ }
+ }
+ $self->disconnectDB($dbh);
+ $self->say({who=>$msg->{who}, channel=>'msg', body=>$pm});
+ return 1;
}
+
# my $stmt=qq{select * from bnc join irc on (bnc.ircid = irc.id) where username is ?};
# my $sth=$dbh->prepare($stmt);
# $sth->execute($username) or die "execution failed: $dbh->errstr()";
# while (my $row=$sth->fetchrow_hashref) {
-
-
sub help {
- return "botnowdb: Database interface for botnow.db";
+ return qq{botnowdb: Database interface for botnow.db
+ botnow User <username>
+ botnow email <email address>
+ botnow ip <IP Address>
+ };
}
sub told {
users => sub { return $self->listUsers( @_ ) },
user => sub { return $self->getUser( @_ ) },
email => sub { return $self->getEmail( @_ ) },
+ ip => sub { return $self->getIP( @_ ) },
);
if (!defined($actions{$cmds[0]})) {
return $self->help();