do

local function getUrbanDictionary(term)
  local url = 'http://api.urbandictionary.com/v0/define?term='..term
  local res,code  = http.request(url)
  local data = json:decode(res)
  if code ~= 200 then return "HTTP-Fehler" end
  if data.result_type == 'no_results' then return "Nichts gefunden!" end
 
  local word = data.list[1].word
  local dev = data.list[1].definition
  local exam = data.list[1].example
  local url = data.list[1].permalink
  if data.sounds[1] then
    sound = data.sounds[1]
  end
  
  local text = unescape(word..'\n'..dev..string.gsub('\n\nBeispiel: "'..exam..'"\n', '""', '"'))..url
 
  if data.sounds[1] then
    return text, sound
  else
    return text
  end
end

local function run(msg, matches)
  local term = string.gsub(matches[1], ' ', '%%20')
  local text, sound = getUrbanDictionary(term)
  local receiver = get_receiver(msg)
  if sound then
    local file = download_to_file(sound, term..'.mp3')
    send_audio(receiver, file, ok_cb, false)
  end
  return text
end

return {
    description = "Zeigt eine Urban Dictionary Definition",
    usage = {"#ud [Begriff]"},
    patterns = {"^#[Uu][Dd] (.*)$",
				"^http://([A-Za-z0-9-_-]+).urbanup.com/",
				"^http://www.urbandictionary.com/define.php%?term=([A-Za-z0-9-_-]+)"
				},
    run = run
}

--by Akamaru [https://ponywave.de]

end