- def listen(m)
- return if m.replied?
- if(m.address?)
- if(!(m.message =~ /\\\?\s*$/) && m.message =~ /^(.*\S)\s*\?\s*$/)
- keyword m, $1 if(@bot.auth.allow?("keyword", m.source, m.replyto))
- elsif(m.message =~ /^(.*?)\s+(is|are)\s+(.*)$/)
- keyword_command(m.sourcenick, m.replyto, $1, $2, $3) if(@bot.auth.allow?("keycmd", m.source, m.replyto))
+ def privmsg(m)
+ case m.plugin
+ when "keyword"
+ case m.params
+ when /^export$/
+ begin
+ keyword_factoids_export
+ m.okay
+ rescue
+ m.reply _("failed to export keywords as factoids (%{err})" % {:err => $!})
+ end
+ when /^set\s+(.+?)\s+(is|are)\s+(.+)$/
+ keyword_command(m, $1, $2, $3) if @bot.auth.allow?('keycmd', m.source, m.replyto)
+ when /^forget\s+(.+)$/
+ keyword_forget(m, $1) if @bot.auth.allow?('keycmd', m.source, m.replyto)
+ when /^wipe\s(.+)$/ # note that only one space is stripped, allowing removal of space-prefixed keywords
+ keyword_wipe(m, $1) if @bot.auth.allow?('keycmd', m.source, m.replyto)
+ when /^lookup\s+(.+)$/
+ keyword_lookup(m, $1) if @bot.auth.allow?('keyword', m.source, m.replyto)
+ when /^stats\s*$/
+ keyword_stats(m) if @bot.auth.allow?('keyword', m.source, m.replyto)
+ when /^search\s+(.+)$/
+ key = $1
+ full = key.sub!('--full ', '')
+ all = key.sub!('--all ', '')
+ if key.sub!(/--from (\d+) /, '')
+ from = $1.to_i
+ else
+ from = 1
+ end
+ from = 1 unless from > 0
+ keyword_search(m, key, full, all, from) if @bot.auth.allow?('keyword', m.source, m.replyto)
+ when /^tell\s+(\S+)\s+about\s+(.+)$/
+ keyword_tell(m, $1, $2) if @bot.auth.allow?('keyword', m.source, m.replyto)
+ else
+ keyword_lookup(m, m.params) if @bot.auth.allow?('keyword', m.source, m.replyto)