fixed ban timeout check
[NeonServV5.git] / bot_NeonServ.c
index 63887d15655ab68194c9f62115c483db450b8c04..1bbc95688ae811c026d4304374aed39cf35ee3f4 100644 (file)
@@ -127,6 +127,16 @@ static const struct default_language_entry msgtab[] = {
     {"NS_BANS_HEADER_TRIGGERED", "Triggered"},
     {"NS_BANS_HEADER_EXPIRES", "Expires"},
     {"NS_BANS_HEADER_REASON", "Reason"},
+    {"NS_DELBAN_BANNED_BY", "%s is banned by %s."},
+    {"NS_DELBAN_FAIL", "Sorry, no ban found for \002%s\002."},
+    {"NS_DELBAN_DONE", "Removed \002%s\002 from the %s ban list."},
+    {"NS_NETINFO_HEADER", "\002Network information\002"},
+    {"NS_NETINFO_UPTIME", "Uptime:"},
+    {"NS_NETINFO_TRAFFIC", "Traffic:"},
+    {"NS_NETINFO_CACHE", "Cache:"},
+    {"NS_NETINFO_CHANNEL", "  Channel:"},
+    {"NS_NETINFO_USER", "  User:"},
+    {"NS_NETINFO_CHANUSER", "  Channel-User:"},
     {NULL, NULL}
 };
 
@@ -168,14 +178,14 @@ INCLUDE ALL CMD's HERE
 #include "cmd_neonserv_wipeinfo.c"
 #include "cmd_neonserv_addban.c"
 //#include "cmd_neonserv_addtimeban.c"
-//#include "cmd_neonserv_delban.c"
+#include "cmd_neonserv_delban.c"
 #include "cmd_neonserv_bans.c"
 //#include "cmd_neonserv_open.c"
 //#include "cmd_neonserv_topic.c"
 //#include "cmd_neonserv_mode.c"
 //#include "cmd_neonserv_invite.c"
 //#include "cmd_neonserv_info.c"
-//#include "cmd_neonserv_netinfo.c"
+#include "cmd_neonserv_netinfo.c"
 //#include "cmd_neonserv_peek.c"
 #include "cmd_neonserv_set.c" /* TODO: parse, check and set modelock */
 //#include "cmd_neonserv_events.c"
@@ -310,6 +320,8 @@ void init_NeonServ() {
     register_command(BOTID, "wipeinfo",     neonserv_cmd_wipeinfo,  1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,  "#channel_wipeinfo",    0);
     register_command(BOTID, "addban",       neonserv_cmd_addban,    1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,  "#channel_staticban",   0);
     register_command(BOTID, "bans",         neonserv_cmd_bans,      0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,  "1",                    0);
+    register_command(BOTID, "delban",       neonserv_cmd_delban,    1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,  "#channel_staticban",   0);
+    register_command(BOTID, "netinfo",      neonserv_cmd_netinfo,   0, 0,                                                                                           NULL,                   0);
     
     register_command(BOTID, "trace",        neonserv_cmd_trace,     1, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,                                                   NULL,                   400);
     
@@ -321,6 +333,20 @@ void init_NeonServ() {
     register_default_language_table(msgtab);
 }
 
+void loop_NeonServ() {
+    //check channel bans
+    check_mysql();
+    MYSQL_RES *res;
+    MYSQL_ROW row;
+    printf_mysql_query("SELECT `ban_mask`, `ban_id` FROM `bans` WHERE `ban_timeout` != '0' AND `ban_timeout` <= UNIX_TIMESTAMP()");
+    res = mysql_use();
+    while ((row = mysql_fetch_row(res)) != NULL) {
+        printf_mysql_query("DELETE FROM `bans` WHERE `ban_id` = '%s'", row[1]);
+        //TODO: remove the ban from the channel
+    }
+    mysql_free();
+}
+
 void free_NeonServ() {
     
 }