]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Allow to have bulk learn in the default config
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Nov 2018 17:16:25 +0000 (17:16 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Nov 2018 17:16:25 +0000 (17:16 +0000)
conf/statistic.conf
src/libstat/learn_cache/sqlite3_cache.c

index 26e73c4d23aba1e821e8bedf533bf8193852e0f9..d9b9a1b722697b751581355f21209116ccb25b8a 100644 (file)
@@ -43,22 +43,26 @@ classifier "bayes" {
   }
   learn_condition =<<EOD
 return function(task, is_spam, is_unlearn)
-  local prob = task:get_mempool():get_variable('bayes_prob', 'double')
+  local learn_type = task:get_request_header('Learn-Type')
 
-  if prob then
-    local in_class = false
-    local cl
-    if is_spam then
-      cl = 'spam'
-      in_class = prob >= 0.95
-    else
-      cl = 'ham'
-      in_class = prob <= 0.05
-    end
+  if not (learn_type and tostring(learn_type) == 'bulk') then
+    local prob = task:get_mempool():get_variable('bayes_prob', 'double')
+
+    if prob then
+      local in_class = false
+      local cl
+      if is_spam then
+        cl = 'spam'
+        in_class = prob >= 0.95
+      else
+        cl = 'ham'
+        in_class = prob <= 0.05
+      end
 
-    if in_class then
-      return false,string.format('already in class %s; probability %.2f%%',
-        cl, math.abs((prob - 0.5) * 200.0))
+      if in_class then
+        return false,string.format('already in class %s; probability %.2f%%',
+          cl, math.abs((prob - 0.5) * 200.0))
+      end
     end
   end
 
index 255c835bb50395f1022efd1cd92aa28c21e4c80a..52921326dfa3c31d3b1afe1623b8f60acc092593 100644 (file)
@@ -221,6 +221,8 @@ rspamd_stat_cache_sqlite3_check (struct rspamd_task *task,
                        /* We have some existing record in the table */
                        if (!!flag == !!is_spam) {
                                /* Already learned */
+                               msg_warn_task ("already seen stat hash: %*bs",
+                                               rspamd_cryptobox_HASHBYTES, out);
                                return RSPAMD_LEARN_INGORE;
                        }
                        else {