added cmd_events
[NeonServV5.git] / cmd_neonserv_events.c
1
2 /*
3 * argv[0]     time
4 * argv[1-*]   match
5 */
6
7 static CMD_BIND(neonserv_cmd_events) {
8     char *str_match;
9     int duration = (argc ? strToTime(user, argv[0]) : (60*60*24));
10     if(argc)
11         str_match = merge_argv(argv, (duration ? 1 : 0), argc);
12     else
13         str_match = "*";
14     MYSQL_RES *res;
15     MYSQL_ROW row;
16     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));
17     res = mysql_use();
18     int skip = mysql_num_rows(res) - 100;
19     int count = 0;
20     char timeBuf[50];
21     struct tm *timeinfo;
22     time_t event_time;
23     if(skip < 0) skip = 0;
24     reply(getTextBot(), user, "NS_EVENTS_HEADER");
25     while ((row = mysql_fetch_row(res)) != NULL) {
26         if(skip) {
27             skip--;
28             continue;
29         }
30         if(match(str_match, row[3])) continue;
31         count++;
32         event_time = (time_t) atol(row[0]);
33         timeinfo = localtime(&event_time);
34         strftime(timeBuf, 80, "%X %x", timeinfo);
35         reply(getTextBot(), user, "[%s] [%s:%s]: %s", timeBuf, row[2], row[1], row[3]);
36     }
37     reply(getTextBot(), user, "NS_TABLE_COUNT", count);
38 }