<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def on_raw_topic(self, message):
 """ TOPIC command. """

        setter, settermeta = self._parse_user(message.source)
        target, topic = message.params

        self._sync_user(setter, settermeta)

        # Update topic in our own channel list.
        if self.in_channel(target):
            self.channels[target]['topic'] = topic
            self.channels[target]['topic_by'] = setter
            self.channels[target]['topic_set'] = datetime.datetime.now()

        await self.on_topic_change(target, topic, setter)