aboutsummaryrefslogtreecommitdiffstats
path: root/rules/rspamd.lua
diff options
context:
space:
mode:
Diffstat (limited to 'rules/rspamd.lua')
-rw-r--r--rules/rspamd.lua88
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