Rapid spam filtering system https://rspamd.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

26 lines
762 B

-- Lua script to perform bayes classification
-- This script accepts the following parameters:
-- key1 - prefix for bayes tokens (e.g. for per-user classification)
-- key2 - set of tokens encoded in messagepack array of int64_t
local prefix = KEYS[1]
local input_tokens = cmsgpack.unpack(KEYS[2])
local output_spam = {}
local output_ham = {}
for i, token in ipairs(input_tokens) do
local token_data = redis.call('HMGET', prefix .. tostring(token), 'H', 'S')
if token_data then
local ham_count = tonumber(token_data[1]) or 0
local spam_count = tonumber(token_data[2]) or 0
output_ham[i] = ham_count
output_spam[i] = spam_count
else
output_ham[i] = 0
output_spam[i] = 0
end
end
return cmsgpack.pack({ output_ham, output_spam })