2016-07-17 13:22:27 +02:00
local currency = { }
local HTTPS = require ( ' ssl.https ' )
local utilities = require ( ' miku.utilities ' )
currency.command = ' cash [Menge] <von> <zu> '
function currency : init ( config )
currency.triggers = {
2016-07-18 18:37:29 +02:00
" ^/[Cc][Aa][Ss][Hh] ([A-Za-z]+)$ " ,
" ^/[Cc][Aa][Ss][Hh] ([A-Za-z]+) ([A-Za-z]+)$ " ,
" ^/[Cc][Aa][Ss][Hh] (%d+[%d%.,]*) ([A-Za-z]+) ([A-Za-z]+)$ " ,
" ^(/[Ee][Uu][Rr])$ "
2016-07-17 13:22:27 +02:00
}
currency.doc = [ [ *
] ] .. config.cmd_pat .. [ [ cash * _ [ Menge ] _ _ < von > _ _ < zu > _
Beispiel : _ ] ] .. config.cmd_pat .. [[cash 5 USD EUR_]]
end
function currency : action ( msg , config )
if not matches [ 2 ] then
from = string.upper ( matches [ 1 ] )
to = ' EUR '
amount = 1
elseif matches [ 3 ] then
from = string.upper ( matches [ 2 ] )
to = string.upper ( matches [ 3 ] )
amount = matches [ 1 ]
else
from = string.upper ( matches [ 1 ] )
to = string.upper ( matches [ 2 ] )
amount = 1
end
local amount = string.gsub ( amount , " , " , " . " )
amount = tonumber ( amount )
local result = 1
local BASE_URL = ' https://www.google.com/finance/converter '
if from == to then
utilities.send_reply ( self , msg , ' Jaja, sehr witzig... ' )
return
end
local url = BASE_URL .. ' ?from= ' .. from .. ' &to= ' .. to .. ' &a= ' .. amount
local str , res = HTTPS.request ( url )
if res ~= 200 then
utilities.send_reply ( self , msg , config.errors . connection )
return
end
local str = str : match ( ' <span class=bld>(.*) %u+</span> ' )
if not str then
utilities.send_reply ( self , msg , ' Keine gültige Währung - sieh dir die Währungsliste bei [Google Finanzen](https://www.google.com/finance/converter) an. ' , true )
return
end
local result = string.format ( ' %.2f ' , str )
local result = string.gsub ( result , " %. " , " , " )
local amount = tostring ( string.gsub ( amount , " %. " , " , " ) )
local output = amount .. ' ' .. from .. ' = * ' .. result .. ' ' .. to .. ' * '
utilities.send_reply ( self , msg , output , true )
end
return currency