mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-23 19:19:31 +01:00
antispam: add a "block" verb, and make textfilter use it by default
Closes #616.
This commit is contained in:
parent
de62b2e77a
commit
ebf7443d97
@ -846,8 +846,8 @@ stats:
|
||||
#enabled: true
|
||||
|
||||
# Sets the punishment that Antispam should use against mass highlighters.
|
||||
# Valid values include "kill", "kick", "ban", "quiet", and combinations of these strung
|
||||
# together with "+" (e.g. "kick+ban"). Defaults to "kick+ban" if not set.
|
||||
# Valid values include "kill", "kick", "ban", "quiet", "block", and combinations of these
|
||||
# strung together with "+" (e.g. "kick+ban"). Defaults to "kick+ban" if not set.
|
||||
#punishment: kick+ban
|
||||
|
||||
# Sets the kick / kill message used when mass highlight prevention is triggered.
|
||||
@ -868,10 +868,10 @@ stats:
|
||||
|
||||
# Sets the punishment that Antispam's text spamfilter should use.
|
||||
# Valid values include "kill", "kick", "ban", "quiet", and combinations of these strung
|
||||
# together with "+" (e.g. "kick+ban"). Defaults to "kick+ban" if not set.
|
||||
# together with "+" (e.g. "kick+ban"). Defaults to "kick+ban+block" if not set.
|
||||
# If you want Antispam to also monitor PM spam, you will want to change this to something
|
||||
# not channel-specific (such as "kill").
|
||||
#punishment: kick+ban
|
||||
# not channel-specific (such as "kill" or "block").
|
||||
#punishment: kick+ban+block
|
||||
|
||||
# Sets the kick / kill message used when the text spamfilter is triggered.
|
||||
#reason: "Spam is prohibited"
|
||||
|
@ -11,7 +11,7 @@ sbot = utils.register_service("antispam", default_nick="AntiSpam", desc=mydesc)
|
||||
def die(irc=None):
|
||||
utils.unregister_service("antispam")
|
||||
|
||||
PUNISH_OPTIONS = ['kill', 'ban', 'quiet', 'kick']
|
||||
PUNISH_OPTIONS = ['kill', 'ban', 'quiet', 'kick', 'block']
|
||||
EXEMPT_OPTIONS = ['voice', 'halfop', 'op']
|
||||
DEFAULT_EXEMPT_OPTION = 'halfop'
|
||||
def _punish(irc, target, channel, punishment, reason):
|
||||
@ -81,6 +81,9 @@ def _punish(irc, target, channel, punishment, reason):
|
||||
'these joined together with a "+".',
|
||||
irc.name, punishment, ', '.join(PUNISH_OPTIONS))
|
||||
return
|
||||
elif action == 'block':
|
||||
# We only need to increment this for this function to return True
|
||||
successful_punishments += 1
|
||||
elif action == 'kill':
|
||||
kill = True # Delay kills so that the user data doesn't disappear.
|
||||
# XXX factorize these blocks
|
||||
@ -122,6 +125,10 @@ def _punish(irc, target, channel, punishment, reason):
|
||||
else:
|
||||
successful_punishments += 1
|
||||
|
||||
if not successful_punishments:
|
||||
log.warning('(%s) antispam: Failed to punish %s with %r, target was %s', irc.name,
|
||||
target_nick, punishment, channel or 'a PM')
|
||||
|
||||
return bool(successful_punishments)
|
||||
|
||||
MASSHIGHLIGHT_DEFAULTS = {
|
||||
@ -204,7 +211,7 @@ utils.add_hook(handle_masshighlight, 'NOTICE', priority=1000)
|
||||
|
||||
TEXTFILTER_DEFAULTS = {
|
||||
'reason': "Spam is prohibited",
|
||||
'punishment': 'kick+ban',
|
||||
'punishment': 'kick+ban+block',
|
||||
'watch_pms': 'false',
|
||||
'enabled': False
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user