Merge pull request #1051 from GLolol/seen/keyerror

Seen: prevent KeyError when calling commands on channels that the bot is not in
This commit is contained in:
Valentin Lorentz 2015-02-10 08:54:08 +01:00
commit 02b8c39138

View File

@ -236,6 +236,8 @@ class Seen(callbacks.Plugin):
if name and ircutils.strEqual(name, irc.nick):
irc.reply(_("You've found me!"))
return
if channel not in irc.state.channels:
irc.error(_("I'm not in %s." % channel), Raise=True)
if msg.nick not in irc.state.channels[channel].users:
irc.error(format('You must be in %s to use this command.', channel))
return
@ -256,6 +258,8 @@ class Seen(callbacks.Plugin):
if name and ircutils.strEqual(name, irc.nick):
irc.reply(_("You've found me!"))
return
if channel not in irc.state.channels:
irc.error(_("I'm not in %s." % channel), Raise=True)
if msg.nick not in irc.state.channels[channel].users:
irc.error(format('You must be in %s to use this command.', channel))
return
@ -295,6 +299,8 @@ class Seen(callbacks.Plugin):
Returns the last thing said in <channel>. <channel> is only necessary
if the message isn't sent in the channel itself.
"""
if channel not in irc.state.channels:
irc.error(_("I'm not in %s." % channel), Raise=True)
if msg.nick not in irc.state.channels[channel].users:
irc.error(format('You must be in %s to use this command.', channel))
return
@ -327,6 +333,8 @@ class Seen(callbacks.Plugin):
<channel> is only necessary if the message isn't sent in the channel
itself.
"""
if channel not in irc.state.channels:
irc.error(_("I'm not in %s." % channel), Raise=True)
if msg.nick not in irc.state.channels[channel].users:
irc.error(format('You must be in %s to use this command.', channel))
return