diff --git a/src/cmds/eval.lua b/src/cmds/eval.lua index 60a9655..e2dec1b 100644 --- a/src/cmds/eval.lua +++ b/src/cmds/eval.lua @@ -39,11 +39,13 @@ return { api = owner and C.api or nil, } for k,v in pairs(env) do t[k] = v end - local e, err = load(C.api.unparseArgs(msg.args), 'eval', 't', t) + local e, err = load(C.api.unparseArgs(msg.args), 'eval', 'bt', t) xpcall(function() if err then error(err) end e = tostring(e() or '...') end, function(err) e = err end) - C.api:send(msg, s .. '\n' .. e) + s = s ..'\n'.. e + s = s:gsub(C.api.token:escp(), '') + C.api:reply(msg, s) end } diff --git a/src/cmds/rub.lua b/src/cmds/rub.lua index 20e4675..d0a02ec 100644 --- a/src/cmds/rub.lua +++ b/src/cmds/rub.lua @@ -36,6 +36,15 @@ function rub:course(wants) wants = type(wants) == 'table' and wants or {} local r, founds = {}, {} + if table.find(wants, 'HELP') + or table.find(wants, 'ALL') + then + for _, v in pairs(resp.Valute) do + table.insert(r, ('%d %s (%s) = %f Руб.'):format(v.Nominal, v.Name, v.CharCode, v.Value:gsub(',', '.'))) + end + return r, resp.Date, wants + end + for i = 1, #resp.Valute do local v = resp.Valute[i] if table.find(wants, v.CharCode) then diff --git a/src/events/ready.lua b/src/events/ready.lua index 56fb035..0455b87 100644 --- a/src/events/ready.lua +++ b/src/events/ready.lua @@ -21,6 +21,10 @@ function table.findV(t, w) end end +function string.escp(s) + return s:gsub('[%^%$%%%(%)%.%[%]%*%+%-%?]', '%%%0') +end + function dump(t, d) if not tonumber(d) or d < 0 then d = 0 end local c = ''