Urban Dictionary Plugin neu geschrieben
This commit is contained in:
parent
d38e9caa20
commit
6e4ff13e59
@ -1,42 +1,50 @@
|
||||
function getUrbanDictionary(text)
|
||||
local topic = string.match(text, "/ud (.+)") or string.match(text, "http://([A-Za-z0-9-_-]+).urbanup.com/") or string.match(text, "http://www.urbandictionary.com/define.php[?]term=([A-Za-z0-9-_-]+)")
|
||||
topic = url_encode(topic)
|
||||
b = http.request("http://api.urbandictionary.com/v0/define?term=" .. topic)
|
||||
res = json:decode(b)
|
||||
local definition = nil
|
||||
if #res.list > 0 then
|
||||
definition = res.list[1].word..": "..res.list[1].definition.."\n".. res.list[1].permalink
|
||||
else
|
||||
definition = nil
|
||||
end
|
||||
return definition
|
||||
end
|
||||
do
|
||||
|
||||
function url_encode(str)
|
||||
if (str) then
|
||||
str = string.gsub (str, "\n", "\r\n")
|
||||
str = string.gsub (str, "([^%w %-%_%.%~])",
|
||||
function (c) return string.format ("%%%02X", string.byte(c)) end)
|
||||
str = string.gsub (str, " ", "+")
|
||||
end
|
||||
return str
|
||||
end
|
||||
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 not data then return "Nichts gefunden!" end
|
||||
|
||||
function run(msg, matches)
|
||||
local text = getUrbanDictionary(msg.text)
|
||||
if (text == nil) then
|
||||
return '"'..matches[1]..'" nicht gefunden.'
|
||||
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..'\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 = {"^#ud (.*)$",
|
||||
patterns = {"^#[Uu][Dd] (.*)$",
|
||||
"^http://([A-Za-z0-9-_-]+).urbanup.com/",
|
||||
"^http://www.urbandictionary.com/define.php[?]term=([A-Za-z0-9-_-]+)"
|
||||
"^http://www.urbandictionary.com/define.php%?term=([A-Za-z0-9-_-]+)"
|
||||
},
|
||||
run = run
|
||||
}
|
||||
|
||||
--by Akamaru [https://ponywave.de]
|
||||
|
||||
end
|
Reference in New Issue
Block a user