]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Search.pl
take a few more things literally
[infobot.git] / src / Modules / Search.pl
index e307902ecf6128b5737f685da5dfeab000b26596..5f4108abe3f0a733c74399bfa0062c7ea79e1813 100644 (file)
@@ -11,23 +11,27 @@ use strict;
 # Search(keys||vals, str);
 sub Search {
     my ($type, $str) = @_;
-    my $start_time = &main::gettimeofday();
+    my $start_time = &::timeget();
     my @list;
+    my $maxshow = &::getChanConfDefault('maxListReplyCount', 15, $::chan);
 
     $type =~ s/s$//;   # nice work-around.
 
-    if ($type eq "value") {    # search by value.
-       @list = &main::searchTable("factoids", "factoid_key", "factoid_value", $str);
-    } else {                   # search by key.
-       @list = &main::searchTable("factoids", "factoid_key", "factoid_key", $str);
+    if ($type eq 'value') {
+       # search by value.
+       @list = &::searchTable('factoids', 'factoid_key', 'factoid_value', $str);
+    } else {
+       # search by key.
+       @list = &::searchTable('factoids', 'factoid_key', 'factoid_key', $str);
     }
 
-    my $delta_time = sprintf("%.02f", &main::gettimeofday() - $start_time);
-    &main::status("search: took $delta_time sec for query.") if ($delta_time > 0);
+    @list=grep(!/\#DEL\#$/,@list) if (scalar(@list) > $maxshow);
+    my $delta_time = sprintf("%.02f", &::timedelta($start_time) );
+    &::status("search: took $delta_time sec for query.") if ($delta_time > 0);
 
     my $prefix = "Factoid search of '\002$str\002' by $type ";
 
-    &main::performStrictReply( &main::formListReply(1, $prefix, @list) );
+    &::performStrictReply( &::formListReply(1, $prefix, @list) );
 }
 
 1;