# Splitted: SQLExtras.pl
#
-if (&IsParam("useStrict")) { use strict; }
+use strict;
+
+use vars qw($dbh $who);
+use vars qw(%param);
###
# Usage: &CmdFactInfo($faqtoid, $query);
return;
}
- my %factinfo = &dbGetColNiceHash("factoids", "*", "factoid_key=".&dbQuote($faqtoid));
+ my %factinfo = &sqlSelectRowHash("factoids", "*",
+ { factoid_key => $faqtoid }
+ );
# factoid does not exist.
if (scalar (keys %factinfo) <= 1) {
if ($time) {
if (time() - $time > 60*60*24*7) {
my $days = int( (time() - $time)/60/60/24 );
- $string .= " at \037". scalar(localtime $time). "\037" .
+ $string .= " at \037". scalar(gmtime $time). "\037" .
" ($days days)";
} else {
$string .= " ".&Time2String(time() - $time)." ago";
}
# modified:
-# if ($factinfo{'modified_by'}) {
-# $string = "last modified";
-#
-# my $time = $factinfo{'modified_time'};
-# if ($time) {
-# if (time() - $time > 60*60*24*7) {
-# $string .= " at \037". scalar(localtime $time). "\037";
-# } else {
-# $string .= " ".&Time2String(time() - $time)." ago";
-# }
-# }
-#
-# my @x;
-# foreach (split ",", $factinfo{'modified_by'}) {
-# /\!/;
-# push(@x, $`);
-# }
-# $string .= "by ".&IJoin(@x);
-#
-# $i++;
-# push(@array,$string);
-# }
+ if (0 && $factinfo{'modified_by'}) {
+ $string = "last modified";
+
+ my $time = $factinfo{'modified_time'};
+ if ($time) {
+ if (time() - $time > 60*60*24*7) {
+ $string .= " at \037". scalar(gmtime $time). "\037";
+ } else {
+ $string .= " ".&Time2String(time() - $time)." ago ";
+ }
+ }
+
+ $string .= " by ".(split ",", $factinfo{'modified_by'})[0];
+
+ push(@array,$string);
+ }
# requested:
if ($factinfo{'requested_by'}) {
$string .= "\002". $requested_count. "\002 ".
&fixPlural("time", $requested_count);
}
- }
-
- $string .= ", " if ($string ne "");
- my $requested_by = $factinfo{'requested_by'};
- $requested_by =~ /\!/;
- $string .= "last by $`";
+ my $requested_by = $factinfo{'requested_by'};
+ $requested_by =~ /\!/;
+ $string .= ", last by $`";
- my $requested_time = $factinfo{'requested_time'};
- if ($requested_time) {
- if (time() - $requested_time > 60*60*24*7) {
- $string .= " at \037". scalar(localtime $requested_time). "\037";
- } else {
- $string .= ", ".&Time2String(time() - $requested_time)." ago";
+ my $requested_time = $factinfo{'requested_time'};
+ if ($requested_time) {
+ if (time() - $requested_time > 60*60*24*7) {
+ $string .= " at \037". scalar(localtime $requested_time). "\037";
+ } else {
+ $string .= ", ".&Time2String(time() - $requested_time)." ago";
+ }
}
+ } else {
+ $string = "has not been requested yet";
}
- push(@array,$string);
+ push(@array, $string);
}
# locked:
return;
}
- &performStrictReply("$factinfo{'factoid_key'} -- ". join("; ", @array) .".");
+ &pSReply("$factinfo{'factoid_key'} -- ". join("; ", @array) .".");
return;
}
my ($type) = @_;
if ($type =~ /^author$/i) {
- my %hash = &dbGetCol("factoids", "factoid_key,created_by", "created_by IS NOT NULL");
+ my @array = &sqlSelectColArray("factoids",
+ "factoid_key,created_by", { },
+ "created_by IS NOT NULL"
+ );
my %author;
- foreach (keys %hash) {
+ foreach (@array) {
my $thisnuh = $hash{$_};
$thisnuh =~ /^(\S+)!\S+@\S+$/;
} elsif ($type =~ /^vandalism$/i) {
&status("factstats(vandalism): starting...");
my $start_time = &timeget();
- my %data = &dbGetCol("factoids", "factoid_key,factoid_value", "factoid_value IS NOT NULL");
+ my %data = &sqlSelectColHash("factoids",
+ "factoid_key,factoid_value", { },
+ "factoid_value IS NOT NULL"
+ );
my @list;
my $delta_time = &timedelta($start_time);
push(@list, "total prepared for deletion - $str");
# total unique authors.
- foreach ( &dbRawReturn("SELECT created_by FROM factoids WHERE created_by IS NOT NULL") ) {
+ # todo: convert to sqlSelectColHash ? (or ColArray?)
+ foreach ( &sqlRawReturn("SELECT created_by FROM factoids WHERE created_by IS NOT NULL") ) {
/^(\S+)!/;
my $nick = lc $1;
$hash{$nick}++;
undef %hash;
# total unique requesters.
- foreach ( &dbRawReturn("SELECT requested_by FROM factoids WHERE requested_by IS NOT NULL") ) {
+ foreach ( &sqlRawReturn("SELECT requested_by FROM factoids WHERE requested_by IS NOT NULL") ) {
/^(\S+)!/;
my $nick = lc $1;
$hash{$nick}++;
for (@list) {
my $factoid = $_;
my $val = &getFactInfo($factoid, "factoid_value");
- if ($val =~ /^<REPLY> see( also)? (.*?)\.?$/i) {
+ if ($val =~ /^<REPLY> ?see( also)? (.*?)\.?$/i) {
my $redirf = lc $2;
my $redir = &getFactInfo($redirf, "factoid_value");
next if (defined $redir);
} elsif ($type =~ /^dup(licate|e)$/i) {
&status("factstats(dupe): starting...");
my $start_time = &timeget();
- my %hash = &dbGetCol("factoids", "factoid_key,factoid_value", "factoid_value IS NOT NULL", 1);
+ my %hash = &sqlSelectColHash("factoids",
+ "factoid_key,factoid_value", { },
+ "factoid_value IS NOT NULL", 1
+ );
my $refs = 0;
my @list;
my $v;
return &formListReply(1, $prefix, @list);
} elsif ($type =~ /^locked$/i) {
- my %hash = &dbGetCol("factoids", "factoid_key,locked_by", "locked_by IS NOT NULL");
+ my %hash = &sqlSelectColhash("factoids",
+ "factoid_key,locked_by", { },
+ "locked_by IS NOT NULL"
+ );
my @list = keys %hash;
for (@list) {
return &formListReply(0, $prefix, @list);
} elsif ($type =~ /^new$/i) {
- my %hash = &dbGetCol("factoids", "factoid_key,created_time", "created_time IS NOT NULL");
+ my %hash = &sqlSelectColHash("factoids",
+ "factoid_key,created_time", { },
+ "created_time IS NOT NULL"
+ );
my %age;
foreach (keys %hash) {
return &formListReply(1, $prefix, @list);
} elsif ($type =~ /^profanity$/i) {
- my %data = &dbGetCol("factoids", "factoid_key,factoid_value", "factoid_value IS NOT NULL");
+ my %data = &sqlSelectColHash("factoids",
+ "factoid_key,factoid_value", { },
+ "factoid_value IS NOT NULL"
+ );
my @list;
foreach (keys %data) {
return &formListReply(1, $prefix, @newlist);
} elsif ($type =~ /^request(ed)?$/i) {
- my %hash = &dbGetCol("factoids", "factoid_key,requested_count", "requested_count IS NOT NULL", 1);
+ my %hash = &sqlSelectColHash("factoids",
+ "factoid_key,requested_count", { },
+ "requested_count IS NOT NULL", 1
+ );
if (!scalar keys %hash) {
return 'sorry, no factoids have been questioned.';
return &formListReply(0, $prefix, @list);
} elsif ($type =~ /^reqrate$/i) {
- my %hash = &dbGetCol("factoids",
- "factoid_key,(unix_timestamp() - created_time)/requested_count as rate",
- "requested_by IS NOT NULL and created_time IS NOT NULL ORDER BY rate LIMIT 15", 1);
+ my %hash = &sqlSelectColHash("factoids",
+ "factoid_key,(unix_timestamp() - created_time)/requested_count as rate", { },
+ "requested_by IS NOT NULL and created_time IS NOT NULL ORDER BY rate LIMIT 15", 1
+ );
my $rate;
my @list;
return &formListReply(0, $prefix, @list);
} elsif ($type =~ /^requesters?$/i) {
- my %hash = &dbGetCol("factoids", "factoid_key,requested_by", "requested_by IS NOT NULL");
+ my %hash = &sqlSelectColHash("factoids",
+ "factoid_key,requested_by", { },
+ "requested_by IS NOT NULL"
+ );
my %requester;
foreach (keys %hash) {
} elsif ($type =~ /^(2|too)long$/i) {
my @list;
+ my $query;
# factoid_key.
$query = "SELECT factoid_key FROM factoids WHERE length(factoid_key) >= $param{'maxKeySize'}";
while (my @row = $sth->fetchrow_array) {
push(@list,$row[0]);
}
+ $sth->finish;
# factoid_value.
- my $query = "SELECT factoid_key,factoid_value FROM factoids WHERE length(factoid_value) >= $param{'maxDataSize'}";
+ $query = "SELECT factoid_key,factoid_value FROM factoids WHERE length(factoid_value) >= $param{'maxDataSize'}";
$sth = $dbh->prepare($query);
$sth->execute;
while (my @row = $sth->fetchrow_array) {
push(@list,sprintf("\002%s\002 - %s", length($row[1]), $row[0]));
}
+ $sth->finish;
if (scalar @list == 0) {
return "good. no factoids exceed length.";
return &formListReply(1, $prefix, @list);
} elsif ($type =~ /^unrequest(ed)?$/i) {
- my @list = &dbRawReturn("SELECT factoid_key FROM factoids WHERE requested_count IS NULL");
+ # todo: use sqlSelect()
+ my @list = &sqlRawReturn("SELECT factoid_key FROM factoids WHERE requested_count IS NULL");
for (@list) {
s/([\,\;]+)/\037$1\037/g;