added some code & compiler information to cmd_netinfo
[NeonServV5.git] / cmd_neonserv_bans.c
1
2 /*
3 * argv[0]    (optional) mask
4 */
5 static CMD_BIND(neonserv_cmd_bans) {
6     MYSQL_RES *res;
7     MYSQL_ROW row;
8     //ban list
9     int i, with_expire = 0, cindex = 0;
10     char triggered_str[MAXLEN], expires_str[MAXLEN];
11     struct Table *table;
12     printf_mysql_query("SELECT `ban_mask`, `user_user`, `ban_triggered`, `ban_timeout`, `ban_reason` FROM `bans` LEFT JOIN `users` ON `ban_owner` = `user_id` WHERE `ban_channel` = '%d'", chan->channel_id);
13     res = mysql_use();
14     table = table_init(5, mysql_num_rows(res) + 1, 0);
15     char *content[5];
16     //add a NULL row (we add values later)
17     content[0] = NULL;
18     content[1] = NULL;
19     content[2] = NULL;
20     content[3] = NULL;
21     content[4] = NULL;
22     table_add(table, content);
23     while ((row = mysql_fetch_row(res)) != NULL) {
24         if(argc > 0 && match(argv[0], row[0])) continue;
25         content[0] = row[0];
26         content[1] = row[1];
27         content[2] = (strcmp(row[2], "0") ? timeToStr(user, (time(0) - atoi(row[2])), 2, triggered_str) : get_language_string(user, "NS_USERS_SEEN_NEVER"));
28         if(strcmp(row[3], "0")) {
29             if(!with_expire) {
30                 //we're using expire times now...
31                 for(i = 0; i < cindex; i++)
32                     table_change_field(table, i+1, 3, get_language_string(user, "NS_USERS_SEEN_NEVER"));
33                 with_expire = 1;
34             }
35             content[3] = timeToStr(user, (time(0) - atoi(row[3])), 2, expires_str);
36         } else
37             content[3] = (with_expire ? get_language_string(user, "NS_USERS_SEEN_NEVER") : NULL);
38         content[4] = row[4];
39         cindex++;
40         table_add(table, content);
41     }
42     //now we add the table header
43     content[0] = get_language_string(user, "NS_BANS_HEADER_MASK");
44     content[1] = get_language_string(user, "NS_BANS_HEADER_SETBY");
45     content[2] = get_language_string(user, "NS_BANS_HEADER_TRIGGERED");
46     content[3] = (with_expire ? get_language_string(user, "NS_BANS_HEADER_EXPIRES") : NULL);
47     content[4] = get_language_string(user, "NS_BANS_HEADER_REASON");
48     table_change(table, 0, content);
49     char **table_lines = table_end(table);
50     for(i = 0; i < table->entrys; i++) {
51         reply(getTextBot(), user, table_lines[i]);
52     }
53     if(!cindex)
54         reply(getTextBot(), user, "NS_TABLE_NONE");
55     reply(getTextBot(), user, "NS_TABLE_COUNT", cindex);
56     table_free(table);
57 }