# Module `telegram_bot.helper_functions`

script for helper functions for bot related stuff

Expand source code

    """
    script for helper functions for bot related stuff
    """
    __author__ = "Florian Kellermann, Linus Eickhoff"
    __date__ = "10.05.2022"
    __version__ = "1.0.0"
    __license__ = "None"

    def contains_markdownv1_symbols(text):
        """ checks if text contains markdown symbols
        :type text: string

        :param text: text to check

        :return: true if text contains markdown symbols

        :rtype: bool
        """
        if text.find("_") != -1 or text.find("*") != -1 or text.find("`") != -1:  # check if text contains relevant markdown symbols
            return True

        return False

    def make_markdown_proof(text):  # used to avoid errors related to markdown parsemode for telegram messaging
        """ makes text markdown proof
        :type text: string

        :param text: text to make markdown proof

        :return: markdown proof text

        :rtype: string
        """
        text = str(text)

        text = text.replace("_", "\\_")  # replace _ with \_ because \ is used as escape character in markdown, double escape is needed because \ is also a escape character in strings
        text = text.replace("*", "\\*")
        text = text.replace("`", "\\`")
        text = text.replace("[", "\\[")
        text = text.replace("]", "\\]")
        text = text.replace("(", "\\(")
        text = text.replace(")", "\\)")
        text = text.replace("#", "\\#")
        text = text.replace("+", "\\+")
        text = text.replace("-", "\\-")
        text = text.replace("!", "\\!")
        text = text.replace(".", "\\.")
        text = text.replace("?", "\\?")
        text = text.replace("/", "\\/")
        text = text.replace("~", "\\~")
        text = text.replace("|", "\\|")
        text = text.replace("<", "\\<")
        text = text.replace(">", "\\>")
        text = text.replace("&", "\\&")
        text = text.replace("^", "\\^")
        text = text.replace("$", "\\$")
        text = text.replace("%", "\\%")
        text = text.replace("=", "\\=")
        text = text.replace("@", "\\@")

        return text

    if __name__ == '__main__':
        print("this is a module for helper functions for the bot and should not be run directly")
        print(make_markdown_proof("_test_"))
        text = make_markdown_proof("_test_")
        print(f"{text}")

## Functions

`def contains_markdownv1_symbols(text)`

  checks if text contains markdown symbols :type text: string

  :param text: text to check

  :return: true if text contains markdown symbols

  :rtype: bool

  Expand source code

      def contains_markdownv1_symbols(text):
          """ checks if text contains markdown symbols
          :type text: string

          :param text: text to check

          :return: true if text contains markdown symbols

          :rtype: bool
          """
          if text.find("_") != -1 or text.find("*") != -1 or text.find("`") != -1:  # check if text contains relevant markdown symbols
              return True

          return False

`def make_markdown_proof(text)`

  makes text markdown proof :type text: string

  :param text: text to make markdown proof

  :return: markdown proof text

  :rtype: string

  Expand source code

      def make_markdown_proof(text):  # used to avoid errors related to markdown parsemode for telegram messaging
          """ makes text markdown proof
          :type text: string

          :param text: text to make markdown proof

          :return: markdown proof text

          :rtype: string
          """
          text = str(text)

          text = text.replace("_", "\\_")  # replace _ with \_ because \ is used as escape character in markdown, double escape is needed because \ is also a escape character in strings
          text = text.replace("*", "\\*")
          text = text.replace("`", "\\`")
          text = text.replace("[", "\\[")
          text = text.replace("]", "\\]")
          text = text.replace("(", "\\(")
          text = text.replace(")", "\\)")
          text = text.replace("#", "\\#")
          text = text.replace("+", "\\+")
          text = text.replace("-", "\\-")
          text = text.replace("!", "\\!")
          text = text.replace(".", "\\.")
          text = text.replace("?", "\\?")
          text = text.replace("/", "\\/")
          text = text.replace("~", "\\~")
          text = text.replace("|", "\\|")
          text = text.replace("<", "\\<")
          text = text.replace(">", "\\>")
          text = text.replace("&", "\\&")
          text = text.replace("^", "\\^")
          text = text.replace("$", "\\$")
          text = text.replace("%", "\\%")
          text = text.replace("=", "\\=")
          text = text.replace("@", "\\@")

          return text