'Send the topic to a user.
@type user: C{str} or C{unicode}
@param user: The user receiving the topic.  Only their nickname, not
the full hostmask.
@type channel: C{str} or C{unicode}
@param channel: The channel for which this is the topic.
@type topic: C{str} or C{unicode} or L{None}
@param topic: The topic string, unquoted, or None if there is no topic.
@type author: C{str} or C{unicode}
@param author: If the topic is being changed, the full username and
hostmask of the person changing it.'

def topic(self, user, channel, topic, author=None):

    if (author is None):
        if (topic is None):
            self.sendLine((':%s    %s    %s    %s    :%s' % (self.hostname, RPL_NOTOPIC, user, channel, 'No    topic    is    set.')))
        else:
            self.sendLine((':%s    %s    %s    %s    :%s' % (self.hostname, RPL_TOPIC, user, channel, lowQuote(topic))))
    else:
        self.sendLine((':%s    TOPIC    %s    :%s' % (author, channel, lowQuote(topic))))
