diff --git a/src/callbacks.py b/src/callbacks.py index da7f168a0..69afff244 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -97,8 +97,6 @@ def reply(msg, s): m = ircmsgs.privmsg(msg.args[0], '%s: %s' % (msg.nick, s)) else: m = ircmsgs.privmsg(msg.nick, s) - if len(m) > 512: - m = reply(msg, 'My response would\'ve been too long.') return m def error(msg, s): @@ -317,6 +315,8 @@ class IrcObjectProxy: self.irc.reply(msg, s) else: s = ircutils.safeArgument(s) + if len(s) + len(self.irc.prefix) > 512: + s = 'My response would\'ve been too long.' self.irc.queueMsg(reply(msg, s)) else: self.args[self.counter] = s diff --git a/src/irclib.py b/src/irclib.py index 552fe293b..18d19f9b1 100644 --- a/src/irclib.py +++ b/src/irclib.py @@ -486,6 +486,9 @@ class Irc(object): self.driver.scheduleReconnect() if self.driver: self.driver.die() + elif msg.command == 'PRIVMSG': + if msg.nick == self.nick: + self.prefix = msg.prefix # Now update the IrcState object. try: self.state.addMsg(self, msg) diff --git a/src/ircmsgs.py b/src/ircmsgs.py index 0881ddab7..2abe51cf5 100644 --- a/src/ircmsgs.py +++ b/src/ircmsgs.py @@ -147,8 +147,8 @@ class IrcMsg(object): self._len = 0 if self.prefix: self._len += len(self.prefix) - else: - self._len += 42 # Ironically, the average length of an IRC prefix. +## else: +## self._len += 42 self._len += len(self.command) if self.args: for arg in self.args: