diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index facd085..8eda048 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -25,12 +25,22 @@ runs: raw_text = os.environ.get("RAW_MESSAGE", "") output_file = os.environ.get("ESCAPED_MESSAGE") - escape_chars = ["-", ".", "!"] - escaped_text = raw_text - for char in escape_chars: - escaped_text = escaped_text.replace(char, f"\\{char}") + def escape_text(text): + escape_chars = ["-", ".", "!"] + for char in escape_chars: + text = text.replace(char, f"\\{char}") + return text - escaped_text = escaped_text.replace("`", "\\`") + parts = raw_text.split("`") + processed_parts = [] + + for i, part in enumerate(parts): + if i % 2 == 0: + processed_parts.append(escape_text(part)) + else: + processed_parts.append(f"\\`{part}\\`") + + escaped_text = "".join(processed_parts) with open(output_file, "a", encoding="utf-8") as f: f.write("result<