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
This commit is contained in:
Richard Darst 2009-07-12 16:54:08 -07:00
parent 08449b8989
commit d7f080dfb0
2 changed files with 19 additions and 10 deletions

View File

@ -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 = { }

View File

@ -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: