local dict = { ["desc"] = "Dictionnary" }
function dict.cmd (args)
if not args then return nil, "Give me a word, please" end
-- Be careful as we pass it as an argument to a shell command
local word = string.match(args, "^(%w+)[%s%?%.%!]*$")
if not word then return nil, "Can you repeat please?" end
local cmd = "/usr/bin/dict "..word.." 2> /dev/null"
local fh = io.popen(cmd)
result = fh:read("*a") -- read dict output
fh:close()
if not result or result:match("^$") then return nil, "dict: No output" end
-- Sometimes dict outpur is ugly... Let's filter out whitespace.
result = result:gsub("[ \t]+\n", "\n"):gsub("\n\n\n+", "\n\n")
-- Trim trailing newlines
result = result:gsub("\n+$", "")
return result
end
mcbot_register_command("dict", dict)