code: async def set_message(
              self, text=None, reply_to=0, parse_mode=(),
              link_preview=None):
          
          if text is None:
              text = self._text
  
          if reply_to == 0:
              reply_to = self.reply_to_msg_id
  
          if link_preview is None:
              link_preview = self.link_preview
  
          raw_text, entities =\
              await self._client._parse_message_text(text, parse_mode)
  
          result = await self._client(SaveDraftRequest(
              peer=self._peer,
              message=raw_text,
              no_webpage=not link_preview,
              reply_to_msg_id=reply_to,
              entities=entities
          ))
  
          if result:
              self._text = text
              self._raw_text = raw_text
              self.link_preview = link_preview
              self.reply_to_msg_id = reply_to
              self.date = datetime.datetime.now(tz=datetime.timezone.utc)
  
          return result
docs: Changes the draft message on the Telegram servers. The changes are
          reflected in this object.
  
          :param str text: New text of the draft.
                           Preserved if left as None.
  
          :param int reply_to: Message ID to reply to.
                               Preserved if left as 0, erased if set to None.
  
          :param bool link_preview: Whether to attach a web page preview.
                                    Preserved if left as None.
  
          :param str parse_mode: The parse mode to be used for the text.
          :return bool: ``True`` on success.