From 647f7a996b2e2da48bd713373b76eb0f9c19528f Mon Sep 17 00:00:00 2001 From: Richard Darst Date: Sun, 12 Jul 2009 23:54:08 +0000 Subject: Fix oldtopic encoding issue - If the oldtopic had non-ascii characters in it, it would have failed to restore it. This fixes that. - Some other rearrangement to support this. darcs-hash:20090712235408-82ea9-da0844509fef51838e773898f02b7ef704005e40.gz --- diff --git a/meeting.py b/meeting.py index 2ec7349..88f7705 100644 --- a/meeting.py +++ b/meeting.py @@ -366,12 +366,22 @@ class Meeting(MeetingCommands, object): _lurk = False _restrictlogs = False def __init__(self, channel, owner, oldtopic=None, - filename=None, writeRawLog=False): + filename=None, writeRawLog=False, + setTopic=None, sendReply=None, getRegistryValue=None): self.config = Config(self) + if getRegistryValue is not None: + self._registryValue = getRegistryValue + if sendReply is not None: + self._sendReply = sendReply + if setTopic is not None: + self._setTopic = setTopic self.owner = owner self.channel = channel self.currenttopic = "" - self.oldtopic = oldtopic + if oldtopic: + self.oldtopic = self.config.dec(oldtopic) + else: + self.oldtopic = None self.lines = [ ] self.minutes = [ ] self.attendees = { } diff --git a/plugin.py b/plugin.py index 4080e6d..a17e28a 100644 --- a/plugin.py +++ b/plugin.py @@ -90,19 +90,18 @@ class MeetBot(callbacks.Plugin): if M is not None: irc.error("Can't start another meeting, one is in progress.") return - M = meeting.Meeting(channel=channel, owner=nick, - oldtopic=irc.state.channels[channel].topic, - writeRawLog=True) - meeting_cache[Mkey] = M # This callback is used to send data to the channel: def _setTopic(x): irc.sendMsg(ircmsgs.topic(channel, x)) def _sendReply(x): irc.sendMsg(ircmsgs.privmsg(channel, x)) - M._setTopic = _setTopic - M._sendReply = _sendReply - # callback to get supybot registry values. - M._registryValue = self.registryValue + M = meeting.Meeting(channel=channel, owner=nick, + oldtopic=irc.state.channels[channel].topic, + writeRawLog=True, + setTopic = _setTopic, sendReply = _sendReply, + getRegistryValue = self.registryValue, + ) + meeting_cache[Mkey] = M recent_meetings.append( (channel, irc.msg.tags['receivedOn'], time.ctime())) if len(recent_meetings) > 10: -- cgit v0.9.1