aboutsummaryrefslogtreecommitdiffstats
path: root/lualib/rspamadm
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-02-23 14:13:58 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-02-23 14:13:58 +0000
commit4fda9686da8300e8f187ae784819f8eb040846e5 (patch)
treeb8539fc73d2fe96523b865d7b0320d17486dddaa /lualib/rspamadm
parent13885fec3a2a84a49687f2d50ce7cbe8723b2af2 (diff)
downloadrspamd-4fda9686da8300e8f187ae784819f8eb040846e5.tar.gz
rspamd-4fda9686da8300e8f187ae784819f8eb040846e5.zip
[Minor] Move parse_time_interval to lua_util
Diffstat (limited to 'lualib/rspamadm')
-rw-r--r--lualib/rspamadm/configwizard.lua43
-rw-r--r--lualib/rspamadm/stat_convert.lua7
2 files changed, 7 insertions, 43 deletions
diff --git a/lualib/rspamadm/configwizard.lua b/lualib/rspamadm/configwizard.lua
index 14e066939..8607cdc1e 100644
--- a/lualib/rspamadm/configwizard.lua
+++ b/lualib/rspamadm/configwizard.lua
@@ -291,45 +291,6 @@ local function setup_dkim_signing(cfg, changes)
changes.l.dkim_signing = {domain = domains}
end
-local function parse_time_interval(str)
- local function parse_time_suffix(s)
- if s == 's' then
- return 1
- elseif s == 'm' then
- return 60
- elseif s == 'h' then
- return 3600
- elseif s == 'd' then
- return 86400
- elseif s == 'y' then
- return 365 * 86400;
- end
- end
-
- local lpeg = require "lpeg"
-
- local digit = lpeg.R("09")
- local parser = {}
- parser.integer =
- (lpeg.S("+-") ^ -1) *
- (digit ^ 1)
- parser.fractional =
- (lpeg.P(".") ) *
- (digit ^ 1)
- parser.number =
- (parser.integer *
- (parser.fractional ^ -1)) +
- (lpeg.S("+-") * parser.fractional)
- parser.time = lpeg.Cf(lpeg.Cc(1) *
- (parser.number / tonumber) *
- ((lpeg.S("smhdy") / parse_time_suffix) ^ -1),
- function (acc, val) return acc * val end)
-
- local t = lpeg.match(parser.time, str)
-
- return t
-end
-
local function check_redis_classifier(cls, changes)
local symbol_spam, symbol_ham
-- Load symbols from statfiles
@@ -373,7 +334,7 @@ local function check_redis_classifier(cls, changes)
if ask_yes_no("Do you wish to convert data to the new schema?", true) then
local expire = readline_default("Expire time for new tokens [default: 100d]: ",
'100d')
- expire = parse_time_interval(expire)
+ expire = lua_util.parse_time_interval(expire)
if not lua_stat_tools.convert_bayes_schema(parsed_redis, symbol_spam, symbol_ham) then
printf("Conversion failed")
@@ -432,7 +393,7 @@ local function setup_statistic(cfg, changes)
printf('You have %d sqlite classifiers', #sqlite_configs)
local expire = readline_default("Expire time for new tokens [default: 100d]: ",
'100d')
- expire = parse_time_interval(expire)
+ expire = lua_util.parse_time_interval(expire)
local reset_previous = ask_yes_no("Reset previuous data?")
if ask_yes_no('Do you wish to convert them to Redis?', true) then
diff --git a/lualib/rspamadm/stat_convert.lua b/lualib/rspamadm/stat_convert.lua
index 6ad3b0332..230dc3f3f 100644
--- a/lualib/rspamadm/stat_convert.lua
+++ b/lualib/rspamadm/stat_convert.lua
@@ -2,10 +2,13 @@ local lua_redis = require "lua_redis"
local stat_tools = require "lua_stat"
local ucl = require "ucl"
local logger = require "rspamd_logger"
-
+local lua_util = require "lua_util"
return function (_, res)
local redis_params = {}
+ if res.expire then
+ res.expire = lua_util.parse_time_interval(res.expire)
+ end
if not lua_redis.try_load_redis_servers(res.redis, nil, redis_params) then
logger.errx('cannot load redis server definition')
@@ -29,7 +32,7 @@ return function (_, res)
end
logger.messagex('Converted classifier to the from sqlite to redis')
logger.messagex('Suggested configuration:')
- logger.messagex(ucl.to_format(stat_tools.redis_classifier_from_sqlite(cls),
+ logger.messagex(ucl.to_format(stat_tools.redis_classifier_from_sqlite(cls, res.expire),
'config'))
end
end