summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-11-04 15:14:21 +0000
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-11-04 15:14:21 +0000
commit4fc8902653b4e083dae6586d5fce234a1854757b (patch)
treee29e3f8d29a889a829d46c3b6ba7b61a894e10e8 /data
parent90f968e96fe0bc59924f41e6d61e9efee871c003 (diff)
factoids plugin: command to forget a fact by index rather than text
Diffstat (limited to 'data')
-rw-r--r--data/rbot/plugins/factoids.rb26
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+$/ }