40 lines
1009 B
Lua
40 lines
1009 B
Lua
|
local btc = {}
|
||
|
|
||
|
local https = require('ssl.https')
|
||
|
local URL = require('socket.url')
|
||
|
local json = require('dkjson')
|
||
|
local utilities = require('otouto.utilities')
|
||
|
local bindings = require('otouto.bindings')
|
||
|
|
||
|
function btc:init(config)
|
||
|
btc.triggers = {
|
||
|
"^/btc$"
|
||
|
}
|
||
|
btc.doc = [[*
|
||
|
]]..config.cmd_pat..[[btc*: Zeigt aktuellen Bitcoin-Kurs an]]
|
||
|
end
|
||
|
|
||
|
btc.command = 'btc'
|
||
|
|
||
|
-- See https://bitcoinaverage.com/api
|
||
|
function btc:getBTCX()
|
||
|
local base_url = 'https://api.bitcoinaverage.com/ticker/global/'
|
||
|
-- Do request on bitcoinaverage, the final / is critical!
|
||
|
local res,code = https.request(base_url.."EUR/")
|
||
|
|
||
|
if code ~= 200 then return nil end
|
||
|
local data = json.decode(res)
|
||
|
local ask = string.gsub(data.ask, "%.", ",")
|
||
|
local bid = string.gsub(data.bid, "%.", ",")
|
||
|
|
||
|
-- Easy, it's right there
|
||
|
text = 'BTC/EUR\n'..'*Kaufen:* '..ask..'\n'..'*Verkaufen:* '..bid
|
||
|
return text
|
||
|
end
|
||
|
|
||
|
|
||
|
function btc:action(msg, config, matches)
|
||
|
utilities.send_reply(self, msg, btc:getBTCX(cur), true)
|
||
|
end
|
||
|
|
||
|
return btc
|