47 lines
1.0 KiB
Lua
47 lines
1.0 KiB
Lua
do
|
|
|
|
local apikey = cred_data.lyricsnmusic_apikey
|
|
|
|
function getLyrics(text)
|
|
local q = string.match(text, "#lyrics (.+)")
|
|
q = url_encode(q)
|
|
b = http.request("http://api.lyricsnmusic.com/songs?api_key="..apikey.."&q=" .. q)
|
|
response = json:decode(b)
|
|
local reply = ""
|
|
if #response > 0 then
|
|
-- grab first match
|
|
local result = response[1]
|
|
reply = result.title .. " - " .. result.artist.name .. "\n" .. result.snippet .. "\n" .. result.url
|
|
else
|
|
reply = nil
|
|
end
|
|
return reply
|
|
end
|
|
|
|
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
|
|
|
|
function run(msg, matches)
|
|
local lyrics = getLyrics(msg.text)
|
|
if (lyrics == nil) then
|
|
return "Nichts gefunden!"
|
|
else
|
|
return lyrics
|
|
end
|
|
end
|
|
|
|
return {
|
|
description = "Liedertext bekommen",
|
|
usage = {"#lyrics [Lied]"},
|
|
patterns = {"^#lyrics (.*)$"},
|
|
run = run
|
|
}
|
|
|
|
end |