end
meta = ""
metadata = []
- if fact[:who]
- metadata << _("from %{who}" % fact.to_hash)
+ if @hash[:who]
+ metadata << _("from %{who}" % @hash)
end
- if fact[:when]
- metadata << _("on %{when}" % fact.to_hash)
+ if @hash[:when]
+ metadata << _("on %{when}" % @hash)
end
- if fact[:where]
- metadata << _("in %{where}" % fact.to_hash)
+ if @hash[:where]
+ metadata << _("in %{where}" % @hash)
end
unless metadata.empty?
- meta << _(" [learnt %{data}]" % {:data => metadata.join(" ")})
+ meta << _(" [%{data}]" % {:data => metadata.join(" ")})
end
return fact+meta
end
:who => m.source.fullform,
:where => m.channel.to_s
)
- if @factoids.index(factoid)
- m.reply _("I already know that %{factoid}" % { :factoid => factoid })
+ if idx = @factoids.index(factoid)
+ m.reply _("I already know that %{factoid} [#%{idx}]" % {
+ :factoid => factoid,
+ :idx => idx
+ })
else
@factoids << factoid
@changed = true
m.okay
+ fact(m, :index => @factoids.length.to_s)
end
end
def forget(m, params)
- factoid = params[:stuff].to_s
- if @factoids.delete(factoid)
- @changed = true
- m.okay
+ if params[:index]
+ idx = params[:index].scan(/\d+/).first.to_i
+ total = @factoids.length
+ if idx <= 0 or idx > total
+ m.reply _("please select a fact number between 1 and %{total}" % { :total => total })
+ return
+ end
+ if factoid = @factoids.delete_at(idx-1)
+ m.reply _("I forgot that %{factoid}" % { :factoid => factoid })
+ @changed = true
+ else
+ m.reply _("I couldn't delete factoid %{idx}" % { :idx => idx })
+ end
else
- m.reply _("I didn't know that %{factoid}" % { :factoid => factoid })
+ factoid = params[:stuff].to_s
+ if @factoids.delete(factoid)
+ @changed = true
+ m.okay
+ else
+ m.reply _("I didn't know that %{factoid}" % { :factoid => factoid })
+ end
end
end
plugin.map 'learn that *stuff'
plugin.map 'forget that *stuff', :auth_path => 'edit'
+plugin.map 'forget fact :index', :requirements => { :index => /^#?\d+$/ }, :auth_path => 'edit'
plugin.map 'facts [about *words]'
plugin.map 'fact [about *words]'
plugin.map 'fact :index', :requirements => { :index => /^#?\d+$/ }