{"NS_BIND_DONE", "New command $b%s$b bound to %s."}, /* {ARGS: "TestCommand", "TestFunction"} */
{"NS_UNBIND_NOT_FOUND", "There is no command called $b%s$b bound."}, /* {ARGS: "TestCommand"} */
{"NS_UNBIND_DONE", "Unbound command $b%s$b."}, /* {ARGS: "TestCommand"} */
+ {"NS_EVENTS_HEADER", "The following channel events were found:"},
{NULL, NULL}
};
#include "cmd_neonserv_notice.c"
#include "cmd_neonserv_raw.c"
#include "cmd_neonserv_reloadlang.c"
+#include "cmd_neonserv_events.c"
//HARDCODED FUN CMD's
//#include "cmd_neonserv_iplocate.c"
register_command(BOTID, "invite", neonserv_cmd_invite, 1, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH, "#channel_canop", 0);
register_command(BOTID, "inviteme", neonserv_cmd_inviteme, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH, "#channel_getinvite", 0);
register_command(BOTID, "help", neonserv_cmd_help, 0, 0, NULL, 0);
+ register_command(BOTID, "events", neonserv_cmd_events, 0, CMDFLAG_REQUIRE_CHAN | CMDFLAG_REGISTERED_CHAN | CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH, "1", 0);
register_command(BOTID, "trace", neonserv_cmd_trace, 1, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH, NULL, 400);
register_command(BOTID, "register", neonserv_cmd_register, 2, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH | CMDFLAG_CHAN_PARAM | CMDFLAG_OPLOG, NULL, 200);
--- /dev/null
+
+/*
+* argv[0] time
+* argv[1-*] match
+*/
+
+static CMD_BIND(neonserv_cmd_events) {
+ char *str_match;
+ int duration = (argc ? strToTime(user, argv[0]) : (60*60*24));
+ if(argc)
+ str_match = merge_argv(argv, (duration ? 1 : 0), argc);
+ else
+ str_match = "*";
+ MYSQL_RES *res;
+ MYSQL_ROW row;
+ printf_mysql_query("SELECT `time`, `auth`, `nick`, `command` FROM `events` WHERE `cid` = '%d' AND `time` > '%lu' ORDER BY `time` ASC", chan->channel_id, ((unsigned long) time(0) - duration));
+ res = mysql_use();
+ int skip = mysql_num_rows(res) - 100;
+ int count = 0;
+ char timeBuf[50];
+ struct tm *timeinfo;
+ time_t event_time;
+ if(skip < 0) skip = 0;
+ reply(getTextBot(), user, "NS_EVENTS_HEADER");
+ while ((row = mysql_fetch_row(res)) != NULL) {
+ if(skip) {
+ skip--;
+ continue;
+ }
+ if(match(str_match, row[3])) continue;
+ count++;
+ event_time = (time_t) atol(row[0]);
+ timeinfo = localtime(&event_time);
+ strftime(timeBuf, 80, "%X %x", timeinfo);
+ reply(getTextBot(), user, "[%s] [%s:%s]: %s", timeBuf, row[2], row[1], row[3]);
+ }
+ reply(getTextBot(), user, "NS_TABLE_COUNT", count);
+}