This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot-2/otouto/plugins/xkcd.lua
Andreas Bielawski 5d26c4289c - Portierung folgender Plugins:
+ Reddit_post
+ Eindeutschung von Reddit
+ Site_header
+ Soundcloud
+ Speedtest
+ Spotify
+ Surrogate
+ Tex
+ Xkcd
+ Yourls
- Plugin-Name wird nun angezeigt, wenn Bot getriggert wird
- Wie immer: kleine Änderungen
2016-06-20 17:58:46 +02:00

38 lines
1.0 KiB
Lua

local xkcd = {}
local http = require('socket.http')
local json = require('dkjson')
local utilities = require('otouto.utilities')
xkcd.command = 'xkcd [i]'
function xkcd:init(config)
xkcd.triggers = {
"^/xkcd (%d+)",
"xkcd.com/(%d+)"
}
xkcd.doc = [[*
]]..config.cmd_pat..[[xkcd* _[i]_: Gibt diesen XKCD-Comic aus]]
end
function xkcd:get_xkcd(id)
local res,code = http.request("http://xkcd.com/"..id.."/info.0.json")
if code ~= 200 then return nil end
local data = json.decode(res)
local link_image = data.img
if link_image:sub(0,2) == '//' then
link_image = link_image:sub(3,-1)
end
return link_image, data.title, data.alt
end
function xkcd:action(msg, config)
local url, title, alt = xkcd:get_xkcd(matches[1])
if not url then utilities.send_reply(self, msg, config.errors.connection) return end
utilities.send_typing(self, msg.chat.id, 'upload_photo')
local file = download_to_file(url)
utilities.send_photo(self, msg.chat.id, file, title..'\n'..alt, msg.message_id)
end
return xkcd