diff --git a/src/atm/notifier/telegram.py b/src/atm/notifier/telegram.py
index b54f704..ad5db2f 100644
--- a/src/atm/notifier/telegram.py
+++ b/src/atm/notifier/telegram.py
@@ -1,5 +1,6 @@
from __future__ import annotations
+import html as _html
from pathlib import Path
from typing import Any
@@ -22,7 +23,7 @@ class TelegramNotifier:
return _BASE.format(token=self._token, method=method)
def send(self, alert: Alert) -> None:
- text = f"*{alert.title}*\n{alert.body}"
+ text = f"{_html.escape(alert.title)}\n{_html.escape(alert.body)}"
if alert.image_path and Path(alert.image_path).exists():
with open(alert.image_path, "rb") as fh:
@@ -31,7 +32,7 @@ class TelegramNotifier:
data={
"chat_id": self._chat_id,
"caption": text,
- "parse_mode": "Markdown",
+ "parse_mode": "HTML",
},
files={"photo": fh},
timeout=10,
@@ -42,7 +43,7 @@ class TelegramNotifier:
json={
"chat_id": self._chat_id,
"text": text,
- "parse_mode": "Markdown",
+ "parse_mode": "HTML",
},
timeout=10,
)
diff --git a/tests/test_notifier.py b/tests/test_notifier.py
index 3c1575e..1d24518 100644
--- a/tests/test_notifier.py
+++ b/tests/test_notifier.py
@@ -228,7 +228,7 @@ def test_telegram_send_ok() -> None:
n = TelegramNotifier("token", "chat123", session=session)
n.send(_alert("Hi"))
assert len(session.calls) == 1
- assert "*Hi*" in session.calls[0]["json"]["text"]
+ assert "Hi" in session.calls[0]["json"]["text"]
def test_telegram_429_raises() -> None: