equal
deleted
inserted
replaced
|
1 |
|
2 local function dict (args) |
|
3 if not args then return nil, "Give me a word, please" end |
|
4 -- Be careful as we pass it as an argument to a shell command |
|
5 local word = string.match(args, "^(%w+)[%s%?%.%!]*$") |
|
6 if not word then return nil, "Can you repeat please?" end |
|
7 |
|
8 local cmd = "/usr/bin/dict "..word.." 2> /dev/null" |
|
9 local fh = io.popen(cmd) |
|
10 result = fh:read("*a") -- read dict output |
|
11 fh:close() |
|
12 if result:match("^$") then return nil, "dict: No output" end |
|
13 |
|
14 -- Sometimes dict outpur is ugly... Let's filter out whitespace. |
|
15 result = result:gsub("[ \t]+\n", "\n"):gsub("\n\n\n+", "\n\n") |
|
16 -- Trim trailing newlines |
|
17 return result:gsub("\n+$", "") |
|
18 end |
|
19 |
|
20 mcbot_register_command("dict", dict) |