diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2007-11-04 15:14:21 +0000 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2007-11-04 15:14:21 +0000 |
commit | 4fc8902653b4e083dae6586d5fce234a1854757b (patch) | |
tree | e29e3f8d29a889a829d46c3b6ba7b61a894e10e8 /data | |
parent | 90f968e96fe0bc59924f41e6d61e9efee871c003 (diff) |
factoids plugin: command to forget a fact by index rather than text
Diffstat (limited to 'data')
-rw-r--r-- | data/rbot/plugins/factoids.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/data/rbot/plugins/factoids.rb b/data/rbot/plugins/factoids.rb index 5d6401ef..9d01a75a 100644 --- a/data/rbot/plugins/factoids.rb +++ b/data/rbot/plugins/factoids.rb @@ -171,12 +171,27 @@ class FactoidsPlugin < Plugin 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 @@ -321,6 +336,7 @@ plugin.default_auth('import', false) 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+$/ } |