added cmd_netinfo
[NeonServV5.git] / bot_NeonServ.c
index 5920dc239655bcd9a407e59495ad9bc07c7bdc33..fae9f0e588cdd372b5468abb347c380f41d4af41 100644 (file)
@@ -37,6 +37,7 @@ static const struct default_language_entry msgtab[] = {
     {"NS_USER_PROTECTED", "Sorry, \002%s\002 is protected."},
     {"NS_SERVICE_IMMUNE", "\002%s\002 may not be kicked, killed, banned, or deopped."},
     {"NS_TABLE_NONE", "   None"},
+    {"NS_TABLE_COUNT", "Found \002%d\002 matches."},
     {"NS_BAN_ALREADY_ADDED", "\002%s\002 is already banned in %s."},
     {"NS_INVALID_ACCESS_RANGE", "Invalid access range; minimum (%d) must be lower than maximum (%d)."},
     {"NS_CLVL_DONE", "%s now has access \002%d\002 in %s."},
@@ -120,8 +121,22 @@ static const struct default_language_entry msgtab[] = {
     {"NS_SET_TRIGGER_OWNER", "You must have access 500 in %s to change the channel trigger."},
     {"NS_WIPEINFO_DONE", "Removed \002%s\002's infoline in \002%s\002."},
     {"NS_TRACE_HEADER", "The following users were found:"},
-    {"NS_TRACE_FOUND", "Found \002%d\002 matches."},
     {"NS_ADDBAN_DONE", "\002%s\002 permantly added to the %s ban list. (matching %d users)"},
+    {"NS_BANS_HEADER_MASK", "Mask"},
+    {"NS_BANS_HEADER_SETBY", "Set By"},
+    {"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}
 };
 
@@ -163,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_banlist.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"
@@ -304,6 +319,9 @@ void init_NeonServ() {
     register_command(BOTID, "ban",          neonserv_cmd_ban,       1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH,  "#channel_canban",      0);
     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);
     
@@ -315,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_expire` != '0' AND `ban_expire` <= 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() {
     
 }