-/* cmd_neonserv_trim.c - NeonServ v5.0
+/* 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
}
}
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");