+/* cmd_neonserv_trim.c - NeonServ v5.2
+ * Copyright (C) 2011 Philipp Kreil (pk910)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
#include "cmd_neonserv.h"
}
}
int min_access, max_access;
+ int duration = strToTime(user, argv[1]);
+ if(duration < 30) {
+ reply(getTextBot(), user, "NS_TRIM_DURATION_TOO_SHORT", 30);
+ return;
+ }
if(!stricmp(argv[0], "users")) {
min_access = 1;
max_access = getChannelAccess(user, chan, 0) - 1;
return;
}
}
- //TODO: TRIM BANS
+ MYSQL_RES *res;
+ MYSQL_ROW row;
+ char nameBuf[20];
+ printf_mysql_query("SELECT `ban_mask`, `ban_id`, `ban_timeout` FROM `bans` WHERE `ban_channel` = '%d' AND `ban_triggered` < %d", chan->channel_id, (int) (time(0) - duration));
+ res = mysql_use();
+ int bancount = mysql_num_rows(res);
+ struct ModeBuffer *modenode = initModeBuffer(client, chan);
+ while ((row = mysql_fetch_row(res)) != NULL) {
+ if(strcmp(row[2], "0")) {
+ sprintf(nameBuf, "ban_%s", row[1]);
+ timeq_del_name(nameBuf);
+ }
+ printf_mysql_query("DELETE FROM `bans` WHERE `ban_id` = '%s'", row[1]);
+ modeBufferUnban(modenode, row[0]);
+ }
+ freeModeBuffer(modenode);
+ char timeBuf[MAXLEN];
+ reply(getTextBot(), user, "NS_TRIM_BAN_DONE", bancount, chan->name, timeToStr(user, duration, 3, timeBuf));
+ if(bancount)
+ logEvent(event);
return;
} else {
char *seperator = strstr(argv[0], "-");
}
}
}
- //parse duration...
- int duration = strToTime(user, argv[1]);
- if(duration < 30) {
- reply(getTextBot(), user, "NS_TRIM_DURATION_TOO_SHORT", 30);
- return;
- }
struct neonserv_cmd_trim_cache *cache = malloc(sizeof(*cache));
if (!cache) {
perror("malloc() failed");