log !fwarn add/set/del to LOG_CHANNEL, if set

This commit is contained in:
jacob1 2016-08-17 23:55:15 -04:00
parent 3479b72ce7
commit ead74e0fe5
5 changed files with 51 additions and 0 deletions

View File

@ -38,6 +38,8 @@ ALLOWED_ALT_CHANNELS_COMMANDS = []
DEV_CHANNEL = ""
PASTEBIN_ERRORS = False # If DEV_CHANNEL is set, errors will be posted there.
LOG_CHANNEL = "" # Log !fwarns to this channel, if set
IGNORE_HIDDEN_COMMANDS = True # Ignore commands sent to @#channel or +#channel
ALLOW_NOTICE_COMMANDS = False # Allow "/notice #channel !command" to be interpreted as a command

View File

@ -796,6 +796,16 @@
"fwarn_expiry_invalid": "Invalid expiration, must be a number above 0 followed by either d, h, or m, or 'never' for a warning that never expires.",
"fwarn_cannot_add": "Cannot add warning, double-check your parameters (the nick might be wrong or you are not joined to the channel).",
"fwarn_added": "Added warning #{0}.",
"fwarn_log_add": "(\u000304ADD\u0003) Warning #{0} to {1} by {2} - {3} ({4} point{5}, {6})",
"fwarn_log_add_expiry": "expires in {0}",
"fwarn_log_add_noexpiry": "never expires",
"fwarn_log_set": "(\u000302SET\u0003) Warning #{0} to {1} modified by {2} - {3}",
"fwarn_log_set_expiry": "expire time changed from {0} to {1}",
"fwarn_log_set_noexpiry": "never",
"fwarn_log_set_reason": "reason changed from '{0}' to '{1}'",
"fwarn_log_set_notes": "notes changed from '{0}' to '{1}'",
"fwarn_log_set_notes_new": "notes changed to '{0}'",
"fwarn_log_del": "(\u000303DEL\u0003) Warning #{0} to {1} ({2}) deleted by {3}",
"fwarn_done": "Done.",
"fwarn_sanction_invalid": "Invalid sanction, can be either deny, stasis, or tempban.",
"fwarn_stasis_invalid": "Invalid stasis amount, specify sanction as \"stasis=number\".",

View File

@ -91,6 +91,9 @@ def connect_callback(cli):
if botconfig.DEV_CHANNEL:
channels.update(chan.lstrip("".join(var.STATUSMSG_PREFIXES)) for chan in botconfig.DEV_CHANNEL.split(","))
if var.LOG_CHANNEL:
channels.add(var.LOG_CHANNEL.lstrip("".join(var.STATUSMSG_PREFIXES)))
cli.join(",".join(channels))
if var.CHANSERV_OP_COMMAND:

View File

@ -197,6 +197,8 @@ NICKSERV_REGAIN_COMMAND = "REGAIN {nick}"
CHANSERV = "ChanServ"
CHANSERV_OP_COMMAND = "OP {channel}"
LOG_CHANNEL = "" # Log !fwarns to this channel, if set
# TODO: move this to a game mode called "fixed" once we implement a way to randomize roles (and have that game mode be called "random")
DEFAULT_ROLE = "villager"
ROLE_INDEX = ( 4 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 15 , 16 , 18 , 20 , 21 , 23 , 24 )

View File

@ -671,6 +671,10 @@ def fwarn(cli, nick, chan, rest):
acc, hm = parse_warning_target(nick)
db.del_warning(warn_id, acc, hm)
reply(cli, nick, chan, messages["fwarn_done"])
if var.LOG_CHANNEL:
cli.msg(var.LOG_CHANNEL, messages["fwarn_log_del"].format(warn_id, hm, acc, nick))
return
if command == "set":
@ -749,6 +753,24 @@ def fwarn(cli, nick, chan, rest):
db.set_warning(warn_id, expires, reason, notes)
reply(cli, nick, chan, messages["fwarn_done"])
if var.LOG_CHANNEL:
changes = []
if expires != warning["expires"]:
oldexpiry = warning["expires"] if warning["expires"] else messages["fwarn_log_set_noexpiry"]
newexpiry = expires if expires else messages["fwarn_log_set_noexpiry"]
changes.append(messages["fwarn_log_set_expiry"].format(oldexpiry, newexpiry))
if reason != warning["reason"]:
changes.append(messages["fwarn_log_set_reason"].format(warning["reason"], reason))
if notes != warning["notes"]:
if warning["notes"]:
changes.append(messages["fwarn_log_set_notes"].format(warning["notes"], notes))
else:
changes.append(messages["fwarn_log_set_notes_new"].format(notes))
if changes:
log_msg = messages["fwarn_log_set"].format(warn_id, warning["target"], nick, " | ".join(changes))
cli.msg(var.LOG_CHANNEL, log_msg)
return
# command == "add"
@ -859,6 +881,18 @@ def fwarn(cli, nick, chan, rest):
reply(cli, nick, chan, messages["fwarn_cannot_add"])
else:
reply(cli, nick, chan, messages["fwarn_added"].format(warn_id))
# Log to ops/log channel (even if the warning was placed in that channel)
if var.LOG_CHANNEL:
log_reason = reason
if notes is not None:
log_reason += " ({0})".format(notes)
if expires is None:
log_length = messages["fwarn_log_add_noexpiry"]
else:
log_length = messages["fwarn_log_add_expiry"].format(expires)
log_msg = messages["fwarn_log_add"].format(warn_id, target, nick, log_reason, points,
"" if points == 1 else "s", log_length)
cli.msg(var.LOG_CHANNEL, log_msg)
# vim: set sw=4 expandtab: