]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Search.pl
* Add vim formatting comments ( # vim:ts=4:sw=4:expandtab:tw=80 )
[infobot.git] / src / Modules / Search.pl
index 0c0e3f32874c02d7127b72c41df07c40fedd5044..6541c0cd47e9a68ea3d47baf7133b66d8b9a46b8 100644 (file)
@@ -11,23 +11,29 @@ use strict;
 # Search(keys||vals, str);
 sub Search {
     my ($type, $str) = @_;
-    my $start_time = &main::timeget();
+    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::timedelta($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;
+
+# vim:ts=4:sw=4:expandtab:tw=80