summaryrefslogtreecommitdiff
path: root/rbot/plugins/spell.rb
diff options
context:
space:
mode:
Diffstat (limited to 'rbot/plugins/spell.rb')
-rw-r--r--rbot/plugins/spell.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/rbot/plugins/spell.rb b/rbot/plugins/spell.rb
new file mode 100644
index 00000000..eb80a48d
--- /dev/null
+++ b/rbot/plugins/spell.rb
@@ -0,0 +1,36 @@
+class SpellPlugin < Plugin
+ def help(plugin, topic="")
+ "spell <word> => check spelling of <word>, suggest alternatives"
+ end
+ def privmsg(m)
+ unless(m.params && m.params =~ /^\w+$/)
+ m.reply "incorrect usage: " + help(m.plugin)
+ return
+ end
+ p = IO.popen("ispell -a -S", "w+")
+ if(p)
+ p.puts m.params
+ p.close_write
+ p.each_line {|l|
+ if(l =~ /^\*/)
+ m.reply "#{m.params} may be spelled correctly"
+ return
+ elsif(l =~ /^\s*&.*: (.*)$/)
+ m.reply "#{m.params}: #$1"
+ return
+ elsif(l =~ /^\s*\+ (.*)$/)
+ m.reply "#{m.params} is presumably derived from " + $1.downcase
+ return
+ elsif(l =~ /^\s*#/)
+ m.reply "#{m.params}: no suggestions"
+ return
+ end
+ }
+ else
+ m.reply "couldn't exec ispell :("
+ return
+ end
+ end
+end
+plugin = SpellPlugin.new
+plugin.register("spell")