cacfea1fa5
Everything reworked and rewritten. Antisquig is now a plugin to work with moderation.lua. The bot can now upload photos, stickers, and other files. Return values in plugin functions to affect the bot's behavior. All this and more!
57 lines
1.3 KiB
Lua
Executable File
57 lines
1.3 KiB
Lua
Executable File
local doc = [[
|
|
/xkcd [query]
|
|
Returns an xkcd strip and its alt text. If there is no query, it will be randomized.
|
|
]]
|
|
|
|
local triggers = {
|
|
'^/xkcd[@'..bot.username..']*'
|
|
}
|
|
|
|
local action = function(msg)
|
|
|
|
local input = msg.text:input()
|
|
|
|
local jstr, res = HTTP.request('http://xkcd.com/info.0.json')
|
|
if res ~= 200 then
|
|
sendReply(msg, config.errors.connection)
|
|
return
|
|
end
|
|
|
|
local latest = JSON.decode(jstr).num
|
|
local res_url
|
|
|
|
if input then
|
|
local url = 'https://ajax.googleapis.com/ajax/services/search/web?v=1.0&safe=active&q=site%3axkcd%2ecom%20' .. URL.escape(input)
|
|
local jstr, res = HTTPS.request(url)
|
|
if res ~= 200 then
|
|
sendReply(msg, config.errors.connection)
|
|
return
|
|
end
|
|
local jdat = JSON.decode(jstr)
|
|
if #jdat.responseData.results == 0 then
|
|
sendReply(msg, config.errors.results)
|
|
return
|
|
end
|
|
res_url = jdat.responseData.results[1].url .. 'info.0.json'
|
|
else
|
|
res_url = 'http://xkcd.com/' .. math.random(latest) .. '/info.0.json'
|
|
end
|
|
|
|
local jstr, res = HTTP.request(res_url)
|
|
if res ~= 200 then
|
|
sendReply(msg, config.errors.connection)
|
|
return
|
|
end
|
|
local jdat = JSON.decode(jstr)
|
|
|
|
local message = '[' .. jdat.num .. '] ' .. jdat.alt .. '\n' .. jdat.img
|
|
sendMessage(msg.chat.id, message, false, msg.message_id)
|
|
|
|
end
|
|
|
|
return {
|
|
action = action,
|
|
triggers = triggers,
|
|
doc = doc
|
|
}
|