-- This module is part of the McBot / mcabbot project
--
-- Copyright (C) 2010-2012 Mikael Berthe <mikael@lilotux.net>
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or (at
-- your option) any later version.
--
-- Please check the license in the COPYING file at the root of the tree.
--
local littre = { ["desc"] = "French Dictionnary Littré" }
function littre.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/sdcv --non-interactive -- "'..word..'" 2> /dev/null'
local fh = io.popen(cmd)
result = fh:read("*a") -- read littre output
fh:close()
if not result or result:match("^$") then return nil, "littre: No output" end
-- 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("littre", littre)