resolve #22 this new feature is only available for b,q,e,I and note commands, not automated actions

This commit is contained in:
Nicolas Coevoet 2018-03-30 11:49:57 +02:00
parent 7a4ff48863
commit 0c105a03ba
2 changed files with 17 additions and 2 deletions

View File

@ -62,6 +62,9 @@ conf.registerGlobalValue(ChanTracker, 'resolveIp',
# per channel settings # per channel settings
conf.registerChannelValue(ChanTracker, 'useAccountBanIfPossible',
registry.Boolean(False, """bot will choose account bans when user is identified, only works for b,q,e,I,note commands not automated bans"""))
conf.registerChannelValue(ChanTracker, 'avoidOverlap', conf.registerChannelValue(ChanTracker, 'avoidOverlap',
registry.Boolean(False, """avoid overlap between items, bot will try to use existing items against users, some limitations with extended bans""")) registry.Boolean(False, """avoid overlap between items, bot will try to use existing items against users, some limitations with extended bans"""))

View File

@ -1891,7 +1891,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
n = self.getNick(irc,item) n = self.getNick(irc,item)
patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp')) patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
if len(patterns): if len(patterns):
targets.append(patterns[0]) pattern = patterns[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in patterns:
if p.startswith('$a:'):
pattern = p
break
targets.append(pattern)
elif ircutils.isUserHostmask(item) or self.getIrcdExtbansPrefix(irc) in item: elif ircutils.isUserHostmask(item) or self.getIrcdExtbansPrefix(irc) in item:
targets.append(item) targets.append(item)
for target in targets: for target in targets:
@ -2015,7 +2021,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
if not found: if not found:
patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp')) patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
if len(patterns): if len(patterns):
targets.append(patterns[0]) pattern = patterns[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in patterns:
if p.startswith('$a:'):
pattern = p
break
targets.append(pattern)
elif ircutils.isUserHostmask(item) or self.getIrcdExtbansPrefix(irc) in item: elif ircutils.isUserHostmask(item) or self.getIrcdExtbansPrefix(irc) in item:
found = False found = False
if self.registryValue('avoidOverlap',channel=channel): if self.registryValue('avoidOverlap',channel=channel):