From 54e19913f1febb1cf5824e6c7f2cb277524e7c08 Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Wed, 11 Nov 2020 09:47:02 +0200 Subject: [Minor] Selectors: Add extractor & transform for metatokens --- lualib/lua_selectors/transforms.lua | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lualib/lua_selectors/transforms.lua') diff --git a/lualib/lua_selectors/transforms.lua b/lualib/lua_selectors/transforms.lua index 6251180ec..1a27b775d 100644 --- a/lualib/lua_selectors/transforms.lua +++ b/lualib/lua_selectors/transforms.lua @@ -441,6 +441,23 @@ Empty string comes the first argument or 'true', non-empty string comes nil]], ['description'] = 'Extracts tld from a hostname represented as a string', ['args_schema'] = {} }, + -- Converts list of strings to numbers and returns a packed string + ['pack_numbers'] = { + ['types'] = { + ['string_list'] = true + }, + ['map_type'] = 'string', + ['process'] = function(inp, _, args) + local fmt = args[1] or 'f' + local res = {} + for _, s in ipairs(inp) do + table.insert(res, tonumber(s)) + end + return rspamd_util.pack(string.rep(fmt, #res), lua_util.unpack(res)), 'string' + end, + ['description'] = 'Converts a list of strings to numbers & returns a packed string', + ['args_schema'] = {ts.string:is_optional()} + }, } transform_function.match = transform_function.regexp -- cgit v1.2.3