39 lines
1.0 KiB
YAML
39 lines
1.0 KiB
YAML
name: '🧼 Telegram message escape'
|
|
description: 'Automatically escapes dots, dashes, and exclamation marks for Telegram MarkdownV2'
|
|
|
|
inputs:
|
|
message:
|
|
description: 'The raw text string to escape'
|
|
required: true
|
|
|
|
outputs:
|
|
escaped_message:
|
|
description: 'The safely escaped string ready for Telegram'
|
|
value: ${{ steps.escape.outputs.result }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- id: escape
|
|
shell: python
|
|
env:
|
|
RAW_MESSAGE: ${{ inputs.message }}
|
|
ESCAPED_MESSAGE: $GITHUB_OUTPUT
|
|
run: |
|
|
import os
|
|
|
|
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}")
|
|
|
|
escaped_text = escaped_text.replace("`", "\\`")
|
|
|
|
with open(output_file, "a", encoding="utf-8") as f:
|
|
f.write("result<<EOF\n")
|
|
f.write(f"{escaped_text}\n")
|
|
f.write("EOF\n")
|