{ "WDMSG_BADWORD_SET", "Settings for BadWord entry $b%s$b" },
{ "WDMSG_BADWORD_SET_MASK", "$bMASK$b: %s" },
{ "WDMSG_BADWORD_SET_ACTION", "$bACTION$b: %s" },
- { "WDMSG_BADWORD_ALERT", "%s used badword '%s' in channel: %s" },
+ { "WDMSG_BADWORD_SET_ALERT", "$bALERT$b: %d" },
{ NULL, NULL }
};
#define BADACTION_KILL 2
#define BADACTION_GLINE 3
+#define WDMSG_BADWORD_ALERT "%s used badword '%s' in channel: %s"
+
static struct {
const char *nick;
const char *modes;
const char *punishment_reason;
unsigned long ban_duration;
unsigned long gline_duration;
+ struct chanNode *alert_channel;
} watchdog_conf;
const char *watchdog_module_deps[] = { NULL };
static unsigned int last_badword_id = 0;
static struct watchdog_channel *add_channel(const char *name);
-static struct badword *add_badword(const char *badword_mask, unsigned int triggered, unsigned int action, const char *id);
+static struct badword *add_badword(const char *badword_mask, unsigned int triggered, unsigned int action, unsigned int alert, const char *id);
#define watchdog_notice(target, format...) send_message(target , watchdog , ## format)
+#define watchdog_debug(format...) do { if(watchdog_conf.alert_channel) send_channel_message(watchdog_conf.alert_channel , watchdog , ## format); } while(0)
static MODCMD_FUNC(cmd_addbad)
{
}
}
- struct badword *new_badword = add_badword(mask, 0, BADACTION_KICK, NULL);
+ struct badword *new_badword = add_badword(mask, 0, BADACTION_KICK, 0, NULL);
for (it = dict_first(shitlist); it; it = iter_next(it)) {
struct badword *badword = iter_data(it);
if(match_ircglob(badword->badword_mask, new_badword->badword_mask) && badword != new_badword) {
else if(!strcmp("ALERT",setting)) {
if (!strcmp("0",value)) {
badword->alert = 0;
+ reply("WDMSG_BADWORD_SET_DONE");
} else if (!strcmp("1",value)) {
badword->alert = 1;
+ reply("WDMSG_BADWORD_SET_DONE");
} else {
reply("WDMSG_BADWORD_SET_INVALID", setting);
}
default:
reply("WDMSG_BADWORD_SET_ACTION", "*undef*");
}
+ reply("WDMSG_BADWORD_SET_ALERT", badword->alert);
}
} else {
reply("WDMSG_BADWORD_NOT_FOUND", argv[1]);
char mask[IRC_NTOP_MAX_SIZE+3] = { '*', '@', '\0' };
if(!IsOper(user)) {
if(badword->alert == 1) {
- log_module(MS_LOG, LOG_WARNING, "WDMSG_BADWORD_ALERT", user->nick, badword->badword_mask, channel->name);
+ log_module(MS_LOG, LOG_WARNING, "%s used badword '%s' in channel: %s", user->nick, badword->badword_mask, chan->name);
+ watchdog_debug(WDMSG_BADWORD_ALERT, user->nick, badword->badword_mask, chan->name);
}
switch(badword->action) {
case BADACTION_BAN:
str = database_get_data(conf_node, "punishment_reason", RECDB_QSTRING);
watchdog_conf.punishment_reason = (str ? str : "Your message contained a forbidden word.");
+
+ str = database_get_data(conf_node, "alert_chan", RECDB_QSTRING);
+ if(str)
+ {
+ watchdog_conf.alert_channel = AddChannel(str, now, "+tinms", NULL);
+ }
+ else
+ {
+ watchdog_conf.alert_channel = NULL;
+ }
}
{
struct record_data *rd = data;
char *badword;
- char *triggered, *action;
+ char *triggered, *action, *alert;
if (rd->type == RECDB_OBJECT) {
dict_t obj = GET_RECORD_OBJECT(rd);
* copyright information pertaining to changes you make to srvx.
*/
send_message_type(4, user, cmd->parent->bot, "$b"PACKAGE_STRING"$b ("CODENAME"), GIT Revision: %s, Built: "__DATE__", "__TIME__". Copyright 2000-2008 srvx Development Team.", git_version);
- send_message_type(12, user, cmd->parent->bot, "The srvx Development Team includes Paul Chang, Adrian Dewhurst, Miles Peterson, Michael Poole and others.\nThe srvx Development Team can be reached at http://sf.net/projects/srvx/ or in #srvx on irc.gamesurge.net.\nThis version has been modified by pk910 - visit #srvx @ irc.nextirc.net.\nThis version has been modified by Stricted - visit #dev @ irc.easy-scripting.net.");
+ send_message_type(12, user, cmd->parent->bot, "The srvx Development Team includes Paul Chang, Adrian Dewhurst, Miles Peterson, Michael Poole and others.\nThe srvx Development Team can be reached at http://sf.net/projects/srvx/ or in #srvx on irc.gamesurge.net.\nThis version has been modified by pk910 - visit #srvx @ irc.nextirc.net.\nThis version has been modified by Stricted, NurPech - visit #dev @ irc.easy-scripting.net.");
return 1;
}