Exemplo n.º 1
0
    def demo(self, ui):
        ui.message("===== Demo Mode =====")
        ui.message("Running a small demo/testing!")
        ui.message("")

        ui.message("--- Cyphering ---")
        text = "snoworrain"
        ui.message("Data to cypher: {}".format(text))
        out = triliteral.cypher(text)
        ui.message("Triliteral cyphered data: {}".format(out))
        ui.message("")

        ui.message("--- Decyphering ---")
        htext = "CBAACCCAAACCCABCABACBABBACBAAAAACBABAAAABAABBBBACCAABABBC" \
                "CABABCBCC"
        ui.message("Triliteral text used as input: {}".format(htext))
        out = triliteral.decypher(htext)
        ui.message("The decyphered data is: {}".format(out))
        ui.message("")

        ui.message("--- Note ---")
        ui.message("+ You can select another base than the default one "
                   "(1, 'a' -> AAA). E.g. with a base 13:")
        text = "trytocypherthis"
        ui.message("Data to cypher: {}".format(text))
        out = triliteral.cypher(text, 13)
        ui.message("Triliteral base 13 cyphered data: {}".format(out))
        out = triliteral.decypher(out, 13)
        ui.message("The base 13 decyphered data is: {}".format(out))
        ui.message("")


        ui.message("--- Won’t work ---")
        ui.message("+ The input text to cypher must be ASCII lowercase "
                   "chars only:")
        ui.message("Data to cypher: {}\n".format("Hello World !"))
        try:
            out = triliteral.cypher("Hello World !")
            ui.message("Triliteral cyphered data: {}"
                       "".format(out))
        except Exception as e:
            ui.message(str(e), ui.ERROR)
        ui.message("")

        ui.message("+ The input text to decypher must be valid Triliteral:")
        htext = "AABCBBBAABABCCCCBBAACABACABCBAABACBAAAACCABABCCBACB"
        ui.message("Triliteral text used as input: {}".format(htext))
        try:
            out = triliteral.decypher(htext)
            ui.message("Triliteral decyphered data: {}"
                       "".format(out))
        except Exception as e:
            ui.message(str(e), ui.ERROR)
        ui.message("")

        ui.get_choice("", [("", "Go back to *menu", "")], oneline=True)
Exemplo n.º 2
0
    def demo(self, ui):
        ui.message("===== Demo Mode =====")
        ui.message("Running a small demo/testing!")
        ui.message("")

        ui.message("--- Cyphering ---")
        text = "snoworrain"
        ui.message("Data to cypher: {}".format(text))
        out = triliteral.cypher(text)
        ui.message("Triliteral cyphered data: {}".format(out))
        ui.message("")

        ui.message("--- Decyphering ---")
        htext = "CBAACCCAAACCCABCABACBABBACBAAAAACBABAAAABAABBBBACCAABABBC" \
                "CABABCBCC"
        ui.message("Triliteral text used as input: {}".format(htext))
        out = triliteral.decypher(htext)
        ui.message("The decyphered data is: {}".format(out))
        ui.message("")

        ui.message("--- Note ---")
        ui.message("+ You can select another base than the default one "
                   "(1, 'a' -> AAA). E.g. with a base 13:")
        text = "trytocypherthis"
        ui.message("Data to cypher: {}".format(text))
        out = triliteral.cypher(text, 13)
        ui.message("Triliteral base 13 cyphered data: {}".format(out))
        out = triliteral.decypher(out, 13)
        ui.message("The base 13 decyphered data is: {}".format(out))
        ui.message("")

        ui.message("--- Won’t work ---")
        ui.message("+ The input text to cypher must be ASCII lowercase "
                   "chars only:")
        ui.message("Data to cypher: {}\n".format("Hello World !"))
        try:
            out = triliteral.cypher("Hello World !")
            ui.message("Triliteral cyphered data: {}"
                       "".format(out))
        except Exception as e:
            ui.message(str(e), level=ui.ERROR)
        ui.message("")

        ui.message("+ The input text to decypher must be valid Triliteral:")
        htext = "AABCBBBAABABCCCCBBAACABACABCBAABACBAAAACCABABCCBACB"
        ui.message("Triliteral text used as input: {}".format(htext))
        try:
            out = triliteral.decypher(htext)
            ui.message("Triliteral decyphered data: {}"
                       "".format(out))
        except Exception as e:
            ui.message(str(e), level=ui.ERROR)
        ui.message("")

        ui.get_choice("", [("", "Go back to $menu", "")], oneline=True)
Exemplo n.º 3
0
    def cypher(self, ui):
        """Interactive version of cypher()."""
        txt = ""
        ui.message("===== Cypher Mode =====")

        while 1:
            done = False
            while 1:
                base = 1
                txt = ui.text_input("Text to cypher to Triliteral",
                                    sub_type=ui.LOWER)
                if txt is None:
                    break  # Go back to main Cypher menu.

                t = ui.get_data("Cypher base (nothing to use default "
                                "{} one): ".format(base),
                                sub_type=ui.INT,
                                allow_void=True)
                if t is not None:
                    base = t

                try:
                    # Will also raise an exception if data is None.
                    txt = triliteral.cypher(txt, base)
                    done = True  # Out of those loops, output result.
                    break
                except Exception as e:
                    if utils.DEBUG:
                        import traceback
                        traceback.print_tb(sys.exc_info()[2])
                    ui.message(str(e), level=ui.ERROR)
                    options = [("retry", "*try again", ""),
                               ("menu", "or go back to *menu", "")]
                    answ = ui.get_choice(
                        "Could not convert that data into "
                        "Biliteral, please",
                        options,
                        oneline=True)
                    if answ in {None, "menu"}:
                        return  # Go back to main Sema menu.
                    # Else, retry with another data to hide.

            if done:
                ui.text_output(
                    "Text successfully converted", txt,
                    "Triliteral base {} version of text"
                    "".format(base))

            options = [("redo", "*cypher another text", ""),
                       ("quit", "or go back to *menu", "")]
            answ = ui.get_choice("Do you want to", options, oneline=True)
            if answ in {None, "quit"}:
                return
Exemplo n.º 4
0
    def cypher(self, ui):
        """Interactive version of cypher()."""
        txt = ""
        ui.message("===== Cypher Mode =====")

        while 1:
            done = False
            while 1:
                base = 1
                txt = ui.text_input("Text to cypher to Triliteral",
                                    sub_type=ui.LOWER)
                if txt is None:
                    break  # Go back to main Cypher menu.

                t = ui.get_data("Cypher base (nothing to use default "
                                "{} one): ".format(base),
                                sub_type=ui.INT, allow_void=True)
                if t is not None:
                    base = t

                try:
                    # Will also raise an exception if data is None.
                    txt = triliteral.cypher(txt, base)
                    done = True  # Out of those loops, output result.
                    break
                except Exception as e:
                    if utils.DEBUG:
                        import traceback
                        traceback.print_tb(sys.exc_info()[2])
                    ui.message(str(e), level=ui.ERROR)
                    options = [("retry", "*try again", ""),
                               ("menu", "or go back to *menu", "")]
                    answ = ui.get_choice("Could not convert that data into "
                                         "Biliteral, please", options,
                                         oneline=True)
                    if answ in {None, "menu"}:
                        return  # Go back to main Sema menu.
                    # Else, retry with another data to hide.

            if done:
                ui.text_output("Text successfully converted", txt,
                               "Triliteral base {} version of text"
                               "".format(base))

            options = [("redo", "*cypher another text", ""),
                       ("quit", "or go back to *menu", "")]
            answ = ui.get_choice("Do you want to", options, oneline=True)
            if answ in {None, "quit"}:
                return