From de9ddb8a7eb436c0cb8db81289373dc169f484ba Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 4 Nov 2007 21:51:49 +0000 Subject: keywords plugin: keyword wipe command to remove unforgettable keywords --- data/rbot/plugins/keywords.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'data/rbot/plugins/keywords.rb') diff --git a/data/rbot/plugins/keywords.rb b/data/rbot/plugins/keywords.rb index 3cf19599..5ed52565 100644 --- a/data/rbot/plugins/keywords.rb +++ b/data/rbot/plugins/keywords.rb @@ -450,6 +450,18 @@ class Keywords < Plugin end end + # low-level keyword wipe command for when forget doesn't work + def keyword_wipe(m, key) + reg = @keywords.registry + reg.env.begin(reg) { |t, b| + b.delete_if { |k, v| + (k == key) && (m.reply "wiping keyword #{key} with stored value #{Marshal.restore(v)}") + } + t.commit + } + m.reply "done" + end + # export keywords to factoids file def keyword_factoids_export ar = Array.new @@ -489,6 +501,8 @@ class Keywords < Plugin keyword_command(m, $1, $2, $3) if @bot.auth.allow?('keycmd', m.source, m.replyto) when /^forget\s+(.+)$/ keyword_forget(m, $1) if @bot.auth.allow?('keycmd', m.source, m.replyto) + when /^wipe\s(.+)$/ # note that only one space is stripped, allowing removal of space-prefixed keywords + keyword_wipe(m, $1) if @bot.auth.allow?('keycmd', m.source, m.replyto) when /^lookup\s+(.+)$/ keyword_lookup(m, $1) if @bot.auth.allow?('keyword', m.source, m.replyto) when /^stats\s*$/ -- cgit v1.2.3