From 7e7c4425cfc3de92aac47ec81cef71e3210fb737 Mon Sep 17 00:00:00 2001 From: GLolol Date: Fri, 2 Jan 2015 22:08:59 -0500 Subject: [PATCH 1/2] BadWords: bugfix & don't kick ops (Closes ProgVal/Limnoria#275) --- plugins/BadWords/plugin.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/plugins/BadWords/plugin.py b/plugins/BadWords/plugin.py index d9c24e69c..88b1cc29e 100644 --- a/plugins/BadWords/plugin.py +++ b/plugins/BadWords/plugin.py @@ -29,7 +29,6 @@ ### import re -import math import time import supybot.conf as conf @@ -77,11 +76,18 @@ class BadWords(callbacks.Privmsg): self.updateRegexp(channel) s = ircutils.stripFormatting(msg.args[1]) if ircutils.isChannel(channel) and self.registryValue('kick', channel): - if self.regexp.search(s): - if irc.nick in irc.state.channels[channel].ops or \ - irc.nick in irc.state.channels[channel].halfops: - message = self.registryValue('kick.message', channel) - irc.queueMsg(ircmsgs.kick(channel, msg.nick, message)) + if self.words and self.regexp.search(s): + c = irc.state.channels[channel] + cap = ircdb.makeChannelCapability(channel, 'op') + if c.isHalfopPlus(irc.nick): + if c.isHalfopPlus(msg.nick) or \ + ircdb.checkCapability(msg.prefix, cap): + self.log.debug("Not kicking %s from %s, because " + "they are immune.", msg.nick, + channel) + else: + message = self.registryValue('kick.message', channel) + irc.queueMsg(ircmsgs.kick(channel, msg.nick, message)) else: self.log.warning('Should kick %s from %s, but not opped.', msg.nick, channel) From d8404252aea8978bed6bb7ec32cdf11382e12612 Mon Sep 17 00:00:00 2001 From: GLolol Date: Sat, 3 Jan 2015 14:15:59 -0500 Subject: [PATCH 2/2] BadWords: update help message --- plugins/BadWords/plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/BadWords/plugin.py b/plugins/BadWords/plugin.py index 88b1cc29e..b4251b0d3 100644 --- a/plugins/BadWords/plugin.py +++ b/plugins/BadWords/plugin.py @@ -83,8 +83,8 @@ class BadWords(callbacks.Privmsg): if c.isHalfopPlus(msg.nick) or \ ircdb.checkCapability(msg.prefix, cap): self.log.debug("Not kicking %s from %s, because " - "they are immune.", msg.nick, - channel) + "they are halfop+ or can't be " + "kicked.", msg.nick, channel) else: message = self.registryValue('kick.message', channel) irc.queueMsg(ircmsgs.kick(channel, msg.nick, message))