diff options
Diffstat (limited to 'rules/rspamd.lua')
-rw-r--r-- | rules/rspamd.lua | 88 |
1 files changed, 14 insertions, 74 deletions
diff --git a/rules/rspamd.lua b/rules/rspamd.lua index ce2edd2b3..b96ef5e02 100644 --- a/rules/rspamd.lua +++ b/rules/rspamd.lua @@ -26,76 +26,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- This is main lua config file for rspamd -config['regexp'] = {} - -dofile('regexp/headers.lua') -dofile('regexp/lotto.lua') -dofile('regexp/fraud.lua') -dofile('regexp/drugs.lua') -dofile('html.lua') - -local reconf = config['regexp'] local util = require "rspamd_util" --- Uncategorized rules - --- Local rules -local r_bgcolor = '/BGCOLOR=/iP' -local r_font_color = '/font color=[\\"\']?\\#FFFFFF[\\"\']?/iP' -reconf['R_WHITE_ON_WHITE'] = string.format('(!(%s) & (%s))', r_bgcolor, r_font_color) -reconf['R_FLASH_REDIR_IMGSHACK'] = '/^(?:http:\\/\\/)?img\\d{1,5}\\.imageshack\\.us\\/\\S+\\.swf/U' +config['regexp'] = {} +local reconf = config['regexp'] --- Different text parts -rspamd_config.R_PARTS_DIFFER = function(task) - local distance = task:get_mempool():get_variable('parts_distance', 'int') - - if distance then - local nd = tonumber(distance) - - if nd < 50 then - local score = 1 - util.tanh(nd / 100.0) - - task:insert_result('R_PARTS_DIFFER', score, tostring(nd) .. '%') - end - end - - return false -end +local local_conf = rspamd_paths['CONFDIR'] +local local_rules = rspamd_paths['RULESDIR'] --- Date issues -rspamd_config.MISSING_DATE = function(task) - if rspamd_config:get_api_version() >= 5 then - if not task:get_header_raw('Date') then - return true - end - end - - return false -end -rspamd_config.DATE_IN_FUTURE = function(task) - if rspamd_config:get_api_version() >= 5 then - local dm = task:get_date{format = 'message'} - local dt = task:get_date{format = 'connect'} - -- An 2 hour - if dm > 0 and dm - dt > 7200 then - return true - end - end - - return false -end -rspamd_config.DATE_IN_PAST = function(task) - if rspamd_config:get_api_version() >= 5 then - local dm = task:get_date{format = 'message', gmt = true} - local dt = task:get_date{format = 'connect', gmt = true} - -- A day - if dm > 0 and dt - dm > 86400 then - return true - end - end - - return false -end +dofile(local_rules .. '/regexp/headers.lua') +dofile(local_rules .. '/regexp/lotto.lua') +dofile(local_rules .. '/regexp/fraud.lua') +dofile(local_rules .. '/regexp/drugs.lua') +dofile(local_rules .. '/html.lua') +dofile(local_rules .. '/misc.lua') local function file_exists(filename) local file = io.open(filename) @@ -107,14 +51,10 @@ local function file_exists(filename) end end -if file_exists('hfilter.lua') then - dofile('hfilter.lua') -end - -if file_exists('rspamd.local.lua') then - dofile('rspamd.local.lua') +if file_exists(local_conf .. 'rspamd.local.lua') then + dofile(local_conf .. 'rspamd.local.lua') end -if file_exists('rspamd.classifiers.lua') then - dofile('rspamd.classifiers.lua') +if file_exists(local_rules .. 'rspamd.classifiers.lua') then + dofile(local_rules .. 'rspamd.classifiers.lua') end |