#!/usr/bin/perl
# Showactive
# Prints a list of active webwork users.
# Author: Nandor Sieben
@config= `cat $ENV{WEBWORK_ROOT}/conf/global.conf`;
for $line (@config) {
if ($line =~ /\$database_username.*=.*"(.+)"/) {
$database_username = $1;
}
if ($line =~ /\$database_password.*=.*"(.+)"/) {
$database_password = $1;
}
}
sub mysql {
my ($sql) = @_;
qx[mysql -s -u $database_username -p$database_password webwork << EOF
$sql
quit
EOF
];
}
@tables= mysql(q[show tables like '%key';]);
$ctime=time;
foreach $table (@tables) {
chop $table;
next if ($table =~ /-/);
# print "|$table|\n";
@rows=mysql(qq[select user_id, timestamp from $table]);
foreach $row (@rows) {
if ( $row =~ /(\S+)\s+(\S+)/) {
$name=$1;
$stamp=$2;
$name =~ s/_.+//;
$age =($ctime - $stamp) / 60;
if ($age < 10) {
$table =~ s/_key//;
print "$table\t $name\t $age\n";
}
}
}
}