mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-02 17:29:22 +01:00
core: make sure owner is never ignored. also simplify the logic flow in ignore checking.
Thanks m4v for the patch!
This commit is contained in:
parent
b533290c7a
commit
20bfa97649
52
src/ircdb.py
52
src/ircdb.py
@ -945,46 +945,30 @@ def checkIgnored(hostmask, recipient='', users=users, channels=channels):
|
||||
|
||||
Checks if the user is ignored by the recipient of the message.
|
||||
"""
|
||||
if ignores.checkIgnored(hostmask):
|
||||
log.debug('Ignoring %s due to ignore database.', hostmask)
|
||||
return True
|
||||
try:
|
||||
id = users.getUserId(hostmask)
|
||||
user = users.getUser(id)
|
||||
if user._checkCapability('owner'):
|
||||
# Owners shouldn't ever be ignored.
|
||||
return False
|
||||
elif user.ignore:
|
||||
log.debug('Ignoring %s due to his IrcUser ignore flag.', hostmask)
|
||||
return True
|
||||
except KeyError:
|
||||
# If there's no user...
|
||||
if ircutils.isChannel(recipient):
|
||||
channel = channels.getChannel(recipient)
|
||||
if channel.checkIgnored(hostmask):
|
||||
log.debug('Ignoring %s due to the channel ignores.', hostmask)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
if conf.supybot.defaultIgnore():
|
||||
log.debug('Ignoring %s due to conf.supybot.defaultIgnore',
|
||||
hostmask)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
if user._checkCapability('owner'):
|
||||
# Owners shouldn't ever be ignored.
|
||||
return False
|
||||
elif user.ignore:
|
||||
log.debug('Ignoring %s due to his IrcUser ignore flag.', hostmask)
|
||||
if conf.supybot.defaultIgnore():
|
||||
log.debug('Ignoring %s due to conf.supybot.defaultIgnore',
|
||||
hostmask)
|
||||
return True
|
||||
if ignores.checkIgnored(hostmask):
|
||||
log.debug('Ignoring %s due to ignore database.', hostmask)
|
||||
return True
|
||||
elif recipient:
|
||||
if ircutils.isChannel(recipient):
|
||||
channel = channels.getChannel(recipient)
|
||||
if channel.checkIgnored(hostmask):
|
||||
log.debug('Ignoring %s due to the channel ignores.', hostmask)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
return False
|
||||
if ircutils.isChannel(recipient):
|
||||
channel = channels.getChannel(recipient)
|
||||
if channel.checkIgnored(hostmask):
|
||||
log.debug('Ignoring %s due to the channel ignores.', hostmask)
|
||||
return True
|
||||
return False
|
||||
|
||||
def _x(capability, ret):
|
||||
if isAntiCapability(capability):
|
||||
|
Loading…
Reference in New Issue
Block a user