Compare commits

...

2 Commits

Author SHA1 Message Date
Er2 3bbccb94ab optional quoted args, update lib 2022-02-13 15:23:16 +03:00
Er2 65b2f6eebc fix reload, new valute 2022-02-13 15:19:47 +03:00
6 changed files with 30 additions and 13 deletions

@ -1 +1 @@
Subproject commit e8a127093213a52b0f8513f72fe7c0566b786158
Subproject commit fefafd4923e824cb5a7f762c7e65d24cdc1f8d87

View File

@ -39,11 +39,11 @@ return {
api = owner and C.api or nil,
}
for k,v in pairs(env) do t[k] = v end
local e, err = load(table.concat(msg.args, ' '), 'eval', 't', t)
local e, err = load(C.api.unparseArgs(msg.args), 'eval', 't', 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)
end
}
}

View File

@ -7,11 +7,12 @@ return {
end
local path = 'src.'..cat..'.'..sub
C.api:off(package.loaded[path])
package.loaded[path] = nil
local err, m = pcall(require, path)
local suc, m = pcall(require, path)
if not err then return C.api:reply(msg, 'Reload failed. ' .. m)
elseif cat == 'events' then C.api:off(m); C.api:on(sub, m)
if not suc then return C.api:reply(msg, 'Reload failed. ' .. m)
elseif cat == 'events' then C.api:on(sub, m)
elseif cat == 'cmds' then C.cmds[sub] = m
elseif cat == 'parts' then m(C)
end

View File

@ -23,6 +23,15 @@ function rub:course(wants)
Name = 'Российский рубль',
Value = '1'
})
local uah = table.findV(resp.Valute, {CharCode = 'UAH'})
table.insert(resp.Valute, {
ID = 'R02000',
NumCode = '200',
CharCode = 'SHT',
Nominal = 1,
Name = 'Штаны',
Value = ('%f'):format(tonumber(uah.Value:gsub(',', '.'), nil) / uah.Nominal * 40)
})
wants = type(wants) == 'table' and wants or {}
local r, founds = {}, {}

View File

@ -15,6 +15,7 @@
api:send(msg, C.locale:get('error', 'adm_cmd', l))
else
if cmd.useQArgs then msg.args = api.parseArgs(api.unparseArgs(msg.args)) end
msg.loc = C.locale:get('cmds', msg.cmd, l)
local succ, err = pcall(cmd.run, C, msg, owner)
if not succ then

View File

@ -5,14 +5,20 @@
end
function table.find(t, w)
local i
for k,v in pairs(t) do
if v == w then
i = k
break
end
for _,v in pairs(t) do
if v == w then return v end
end
end
function table.findV(t, w)
local b
for _,v in pairs(t) do
for k,x in pairs(w) do
if x ~= v[k] then b=1; break end
end
if b then b = nil
else return v end
end
return i
end
function dump(t, d)