48 lines
1.3 KiB
Lua
48 lines
1.3 KiB
Lua
local lyrics = {}
|
|
|
|
function lyrics:init(config)
|
|
if not cred_data.lyricsnmusic_apikey then
|
|
print('Fehlender Key: lyricsnmusic_apikey.')
|
|
print('lyrics.lua wird nicht aktiviert.')
|
|
return
|
|
end
|
|
|
|
lyrics.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('[Ll][Yy][Rr][Ii][Cc][Ss]', true).table
|
|
lyrics.doc = [[*
|
|
]]..config.cmd_pat..[[lyrics* _<Lied>_: Postet Liedertext]]
|
|
end
|
|
|
|
lyrics.command = 'lyrics <Lied>'
|
|
|
|
function lyrics:getLyrics(text)
|
|
local apikey = cred_data.lyricsnmusic_apikey
|
|
local q = url_encode(text)
|
|
local 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[Ganzen Liedertext ansehen](" .. result.url .. ")"
|
|
else
|
|
reply = nil
|
|
end
|
|
return reply
|
|
end
|
|
|
|
function lyrics:action(msg, config, matches)
|
|
local input = utilities.input(msg.text)
|
|
if not input then
|
|
if msg.reply_to_message and msg.reply_to_message.text then
|
|
input = msg.reply_to_message.text
|
|
else
|
|
utilities.send_message(msg.chat.id, lyrics.doc, true, msg.message_id, true)
|
|
return
|
|
end
|
|
end
|
|
|
|
utilities.send_reply(msg, lyrics:getLyrics(input), true)
|
|
end
|
|
|
|
return lyrics
|