Warn when #chair'ing a nick that isn't in the channel

darcs-hash:20091011213501-82ea9-3c525113fb5d54919bb81220143d64217c562fdb.gz
This commit is contained in:
Richard Darst 2009-10-11 14:35:01 -07:00
parent 53e42ee2ba
commit ded7f451c2
2 changed files with 9 additions and 2 deletions

View File

@ -340,6 +340,10 @@ class MeetingCommands(object):
chair = chair.strip()
if not chair: continue
if chair not in self.chairs:
if self._channelNicks is not None and \
( chair.encode(self.config.input_codec)
not in self._channelNicks()):
self.reply("Warning: Nick not in channel: %s"%chair)
self.addnick(chair, lines=0)
self.chairs.setdefault(chair, True)
chairs = dict(self.chairs) # make a copy
@ -433,7 +437,7 @@ class Meeting(MeetingCommands, object):
def __init__(self, channel, owner, oldtopic=None,
filename=None, writeRawLog=False,
setTopic=None, sendReply=None, getRegistryValue=None,
safeMode=False,
safeMode=False, channelNicks=None,
extraConfig={}):
self.config = Config(self, writeRawLog=writeRawLog, safeMode=safeMode,
extraConfig=extraConfig)
@ -458,6 +462,7 @@ class Meeting(MeetingCommands, object):
self._meetingTopic = None
self._meetingname = ""
self._meetingIsOver = False
self._channelNicks = channelNicks
if filename:
self._filename = filename

View File

@ -98,12 +98,14 @@ class MeetBot(callbacks.Plugin):
irc.sendMsg(ircmsgs.topic(channel, x))
def _sendReply(x):
irc.sendMsg(ircmsgs.privmsg(channel, x))
def _channelNicks():
return irc.state.channels[channel].users
M = meeting.Meeting(channel=channel, owner=nick,
oldtopic=irc.state.channels[channel].topic,
writeRawLog=True,
setTopic = _setTopic, sendReply = _sendReply,
getRegistryValue = self.registryValue,
safeMode=True
safeMode=True, channelNicks=_channelNicks,
)
meeting_cache[Mkey] = M
recent_meetings.append(