local soundboard = {} function soundboard:init(config) soundboard.triggers = { "^/(sound) (.+)$", "^/(gronkh) (.+)$" } soundboard.inline_triggers = { "^(sound) (.+)$", "^(gronkh) (.+)$" } soundboard.doc = [[* ]]..config.cmd_pat..[[sound/gronkh* __: Sendet einen Sound *]]..config.cmd_pat..[[sound/gronkh* __: Sendet eine Liste aller Sounds ]] end soundboard.command = 'sound ' local BASE_URL = 'http://code.ponywave.de/workspace/mikubot/sounds' local GRONKH_URL = 'http://code.ponywave.de/workspace/mikubot/gronkhsounds' function soundboard:inline_callback(inline_query, config, matches) local board = matches[1] local input = matches[2] if board == 'sound' then sound = BASE_URL..'/'..string.lower(input)..'.mp3' elseif board == 'gronkh' then sound = GRONKH_URL..'/'..string.lower(input)..'.mp3' end local _, code = get_http_header(sound) if code ~= 200 then utilities.answer_inline_query(inline_query, nil, 5, true) return end local results = '[{"type":"audio","id":"7900","title":"'..input..'","audio_url":"'..sound..'"}]' utilities.answer_inline_query(inline_query, results, 2) end function soundboard:action(msg, config, matches) local board = matches[1] local input = matches[2] if input:match('^[Ll][Ii][Ss][Tt][Ee]$') then if board == 'sound' then utilities.send_reply(msg, 'Hier findest du eine Liste aller Sounds!', 'HTML') return elseif board == 'gronkh' then utilities.send_reply(msg, 'Hier findest du eine Liste aller Gronkh-Sounds!', 'HTML') return end end if board == 'sound' then sound = BASE_URL..'/'..string.lower(input)..'.mp3' elseif board == 'gronkh' then sound = GRONKH_URL..'/'..string.lower(input)..'.mp3' end if not sound then utilities.send_reply(msg, config.errors.results) return end utilities.send_audio(msg.chat.id, sound, nil, msg.message_id) end return soundboard