def plain_text(text: str) -> str: chars = [] raw_chars = list(reversed(validator.fix_one_line_text(caret_decode(text)))) while len(raw_chars): char = raw_chars.pop() if char == '%': # special characters if len(raw_chars) and raw_chars[-1] == '%': raw_chars.pop() # discard next '%' if len(raw_chars): special_char = raw_chars.pop() # replace or discard formatting code chars.append(SPECIAL_CHARS_ENCODING.get(special_char, '')) else: # char is just a single '%' chars.append(char) else: # char is what it is, a character chars.append(char) return "".join(chars)
def test_fix_invalid_one_line_text(invalid_text): assert fix_one_line_text(invalid_text) == 'testtext'