This commit is contained in:
Nicolas Coevoet 2018-04-13 16:11:32 +02:00
parent 0c105a03ba
commit d70e44b0b8

View File

@ -1865,7 +1865,14 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
i = self.getIrc(irc) i = self.getIrc(irc)
if nick in i.nicks: if nick in i.nicks:
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
irc.reply(chan.isWrong(getBestPattern(self.getNick(irc,nick),irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0])) bests = getBestPattern(self.getNick(irc,nick),irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
irc.reply(chan.isWrong(best))
else: else:
irc.reply('nick not found') irc.reply('nick not found')
isbad = wrap(isbad,['op','nick']) isbad = wrap(isbad,['op','nick'])
@ -2638,7 +2645,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
t.start() t.start()
for channel in channels: for channel in channels:
if ircutils.isChannel(channel) and channel in irc.state.channels: if ircutils.isChannel(channel) and channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
chan.nicks[msg.nick] = True chan.nicks[msg.nick] = True
n.addLog(channel,'has joined') n.addLog(channel,'has joined')
@ -2706,7 +2719,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
del i.channels[channel] del i.channels[channel]
continue continue
if ircutils.isChannel(channel) and channel in irc.state.channels: if ircutils.isChannel(channel) and channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
if len(reason): if len(reason):
if reason.startswith('requested by') and self.registryValue('announceKick',channel=channel): if reason.startswith('requested by') and self.registryValue('announceKick',channel=channel):
if self.registryValue('useColorForAnnounces',channel=channel): if self.registryValue('useColorForAnnounces',channel=channel):
@ -2822,7 +2841,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
if nick in i.nicks: if nick in i.nicks:
del i.nicks[nick] del i.nicks[nick]
for channel in irc.state.channels: for channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
if channel in i.channels: if channel in i.channels:
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
if nick in chan.nicks: if nick in chan.nicks:
@ -2885,7 +2910,7 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway'),self.registryValue('resolveIp')) patterns = getBestPattern(n,irc,self.registryValue('useIpForGateway'),self.registryValue('resolveIp'))
best = None best = None
if len(patterns): if len(patterns):
best = patterns[0] best = bests[0]
if reason: if reason:
n.addLog('ALL','has quit [%s]' % reason) n.addLog('ALL','has quit [%s]' % reason)
else: else:
@ -2908,7 +2933,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
if msg.nick in chan.nicks: if msg.nick in chan.nicks:
if not self._isVip(irc,channel,n): if not self._isVip(irc,channel,n):
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
isCycle = self._isSomething(irc,channel,best,'cycle') isCycle = self._isSomething(irc,channel,best,'cycle')
if isCycle: if isCycle:
isBad = self._isSomething(irc,channel,best,'bad') isBad = self._isSomething(irc,channel,best,'bad')
@ -2954,7 +2985,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
if not best: if not best:
return return
for channel in irc.state.channels: for channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
if newNick in irc.state.channels[channel].users: if newNick in irc.state.channels[channel].users:
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
if oldNick in chan.nicks: if oldNick in chan.nicks:
@ -3063,7 +3100,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
return return
for channel in targets.split(','): for channel in targets.split(','):
if irc.isChannel(channel) and channel in irc.state.channels: if irc.isChannel(channel) and channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = bests[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
n.addLog(channel,'NOTICE | %s' % text) n.addLog(channel,'NOTICE | %s' % text)
isVip = self._isVip(irc,channel,n) isVip = self._isVip(irc,channel,n)
@ -3150,7 +3193,13 @@ class ChanTracker(callbacks.Plugin,plugins.ChannelDBHandler):
return return
for channel in recipients.split(','): for channel in recipients.split(','):
if irc.isChannel(channel) and channel in irc.state.channels: if irc.isChannel(channel) and channel in irc.state.channels:
best = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))[0] bests = getBestPattern(n,irc,self.registryValue('useIpForGateway',channel=channel),self.registryValue('resolveIp'))
best = best[0]
if self.registryValue('useAccountBanIfPossible',channel=channel):
for p in bests:
if p.startswith('$a:'):
best = p
break
chan = self.getChan(irc,channel) chan = self.getChan(irc,channel)
message = text message = text
if isCtcpMsg and not isAction: if isCtcpMsg and not isAction: