X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fkeywords.rb;h=70802e35971555fcc64d26abb2772a9b4a2a12c6;hb=992ef2edbf3eed7cb1d7c4c22f72cd203aff2aa5;hp=3305af299899bab8116e1b3156448a530a75f64b;hpb=2a96c9198c1f6e13407d0999083f6ce5e0bc06fa;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/keywords.rb b/lib/rbot/keywords.rb index 3305af29..70802e35 100644 --- a/lib/rbot/keywords.rb +++ b/lib/rbot/keywords.rb @@ -8,7 +8,7 @@ module Irc # is, and has a single value of bar). # Keywords can have multiple values, to_s() will choose one at random class Keyword - + # type of keyword (e.g. "is" or "are") attr_reader :type @@ -81,6 +81,10 @@ module Irc # handle it, checks for a keyword command or lookup, otherwise the message # is delegated to plugins class Keywords + BotConfig.register('keyword.listen', :type => :boolean, :default => false, + :desc => "Should the bot listen to all chat and attempt to automatically detect keywords? (e.g. by spotting someone say 'foo is bar')") + BotConfig.register('keyword.address', :type => :boolean, :default => true, + :desc => "Should the bot require that keyword lookups are addressed to it? If not, the bot will attempt to lookup foo if someone says 'foo?' in channel") # create a new Keywords instance, associated to bot +bot+ def initialize(bot) @@ -415,7 +419,7 @@ module Irc end else # in channel message, not to me - if(m.message =~ /^'(.*)$/ || (!@bot.config["keyword.noaddress"] && m.message =~ /^(.*\S)\s*\?\s*$/)) + if(m.message =~ /^'(.*)$/ || (!@bot.config["keyword.address"] && m.message =~ /^(.*\S)\s*\?\s*$/)) keyword m, $1, false if(@bot.auth.allow?("keyword", m.source)) elsif(@bot.config["keyword.listen"] == true && (m.message =~ /^(.*?)\s+(is|are)\s+(.*)$/)) # TODO MUCH more selective on what's allowed here