diff options
Diffstat (limited to 'rbot/plugins/spell.rb')
-rw-r--r-- | rbot/plugins/spell.rb | 36 |
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") |