GOOGLE_SEARCH = "http://www.google.com/search?oe=UTF-8&q="
GOOGLE_WAP_SEARCH = "http://www.google.com/wml/search?hl=en&q="
GOOGLE_WAP_LINK = /<a accesskey="(\d)" href=".*?u=(.*?)">(.*?)<\/a>/im
-GOOGLE_CALC_RESULT = %r{<p><table><tr><td><img src=/images/calc_img\.gif(?: alt="")?></td><td> </td><td nowrap>(?:<h2 class=r>)?<font size=\+1><b>(.+)</b>(?:</h2>)?</td></tr><tr><td>}
+GOOGLE_CALC_RESULT = %r{<img src=/images/calc_img\.gif(?: width=40 height=30 alt="")?></td><td> </td><td nowrap>(?:<h2 class=r>)?<font size=\+1><b>(.+)</b>(?:</h2>)?</td>}
GOOGLE_DEF_RESULT = %r{<p> (Web definitions for .*?)<br/>(.*?)<br/>(.*?)\s-\s+<a href}
class SearchPlugin < Plugin
- BotConfig.register BotConfigIntegerValue.new('google.hits',
+ Config.register Config::IntegerValue.new('google.hits',
:default => 3,
:desc => "Number of hits to return from Google searches")
- BotConfig.register BotConfigIntegerValue.new('google.first_par',
+ Config.register Config::IntegerValue.new('google.first_par',
:default => 0,
:desc => "When set to n > 0, the bot will return the first paragraph from the first n search hits")
- BotConfig.register BotConfigIntegerValue.new('wikipedia.hits',
+ Config.register Config::IntegerValue.new('wikipedia.hits',
:default => 3,
:desc => "Number of hits to return from Wikipedia searches")
- BotConfig.register BotConfigIntegerValue.new('wikipedia.first_par',
+ Config.register Config::IntegerValue.new('wikipedia.first_par',
:default => 1,
:desc => "When set to n > 0, the bot will return the first paragraph from the first n wikipedia search hits")
plugin = SearchPlugin.new
-plugin.map "search *words", :action => 'google'
-plugin.map "google *words", :action => 'google'
-plugin.map "gcalc *words", :action => 'gcalc'
-plugin.map "gdef *words", :action => 'gdef'
-plugin.map "wp :lang *words", :action => 'wikipedia', :requirements => { :lang => /^\w\w\w?$/ }
-plugin.map "wp *words", :action => 'wikipedia'
-plugin.map "unpedia *words", :action => 'unpedia'
+plugin.map "search *words", :action => 'google', :threaded => true
+plugin.map "google *words", :action => 'google', :threaded => true
+plugin.map "gcalc *words", :action => 'gcalc', :threaded => true
+plugin.map "gdef *words", :action => 'gdef', :threaded => true
+plugin.map "wp :lang *words", :action => 'wikipedia', :requirements => { :lang => /^\w\w\w?$/ }, :threaded => true
+plugin.map "wp *words", :action => 'wikipedia', :threaded => true
+plugin.map "unpedia *words", :action => 'unpedia', :threaded => true