use channel settings for spam/flood scanner
[NeonServV5.git] / src / bot_NeonSpam.c
index 73755b733f30ba07cdb6b370fde59c4bc407ba6c..bbb0bd50b803d083e54760b91605c85dd1d8f22a 100644 (file)
@@ -123,10 +123,22 @@ static int loadNeonSpamSettings(struct ChanNode *chan) {
         perror("malloc() failed");
         return 0;
     }
-    settings->flags = SPAMSETTINGS_SCANVOICE | SPAMSETTINGS_FLOODSCAN | SPAMSETTINGS_SPAMSCAN;
-    settings->spam_amount = 3;
-    settings->flood_amount = 4;
-    settings->flood_time = 5;
+    MYSQL_RES *res;
+    MYSQL_ROW row, defaults = NULL;
+    printf_mysql_query("SELECT `channel_scanstate`, `channel_maxrepeat`, `channel_maxflood`, `channel_floodtime`, `channel_maxjoin`, `channel_jointime` FROM `channels` WHERE `channel_id` = '%d'", chan->channel_id);
+    res = mysql_use();
+    row = mysql_fetch_row(res);
+    if(!row[0] || !row[1] || !row[2] || !row[3] || !row[4] || !row[5]) {
+        printf_mysql_query("SELECT `channel_scanstate`, `channel_maxrepeat`, `channel_maxflood`, `channel_floodtime`, `channel_maxjoin`, `channel_jointime` FROM `channels` WHERE `channel_name` = 'defaults'");
+        res = mysql_use();
+        defaults = mysql_fetch_row(res);
+    }
+    settings->flags = atoi(row[0] ? row[0] : defaults[0]);
+    settings->spam_amount = atoi(row[1] ? row[1] : defaults[1]);
+    settings->flood_amount = atoi(row[2] ? row[2] : defaults[2]);
+    settings->flood_time = atoi(row[3] ? row[3] : defaults[3]);
+    settings->join_amount = atoi(row[4] ? row[4] : defaults[4]);
+    settings->join_time = atoi(row[5] ? row[5] : defaults[5]);
     chan->spam_settings = settings;
     return 1;
 }