super
# TODO config
- @dir = File.join(@bot.botclass,"factoids")
+ @dir = datafile
@filename = "factoids.rbot"
@factoids = FactoidList.new
@triggers = Set.new
if params[:words].nil_or_empty? and params[:rx].nil_or_empty?
m.reply _("I know %{total} facts" % { :total => total })
else
- if params[:words].empty?
+ unless params.key? :words and not params[:words].empty?
rx = Regexp.new(params[:rx].to_s, true)
else
rx = words2rx(params[:words])
known = @factoids.grep(rx)
reply = []
if known.empty?
- reply << _("I know nothing about %{words}" % params)
+ if params.key? :words
+ reply << _("I know nothing about %{words}" % params)
+ else params.key? :rx
+ reply << _("I know nothing matching %{rx}" % params)
+ end
else
max_facts = @bot.config['factoids.search_results']
len = known.length
return if @triggers.empty?
query = $1.strip.downcase
if @triggers.include?(query)
- facts(m, :words => query.split)
+ words = query.split
+ words.instance_variable_set(:@string_value, query)
+ def words.to_s
+ @string_value
+ end
+ facts(m, :words => words)
end
else
return if m.address? # we don't learn stuff directed at us which is not an explicit learn command