Telegram Nachricht formatieren

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
spruce
Beiträge: 7
Registriert: 16.08.2023 07:55:16

Telegram Nachricht formatieren

Beitrag von spruce » 04.02.2024 06:13:08

Guten Morgen zusammen,

ich lasse mir via Script für mehrere Anwendungsfälle Telegram-Nachrichten von meinem Server an mein Android zusenden.

Das funktioniert auch soweit alles ganz gut, allerdings bekomme ich es nicht hin, die Nachrichten zu formatieren. Das scheitern auch schon an einem simplen Zeilenumbruch. Soll heißen: Sämtliche Nachrichten kommen unformatiert als "Einzeiler" an.

Script-Beispiel:

Code: Alles auswählen

 TEXT="Die Festplattenkapazität auf $HOSTNAME [$IPADRESSE] ist zu $[PROZENT] % ausgereizt."
Und ausgegeben hätte ich gerne:
Die Festplattenkapazität auf debianforum [127.0.0.1] ist zu

80 %

ausgereizt
Wie bekomme ich das hin?
Ich bin für jeden Tipp und Hilfe dankbar :)

Benutzeravatar
schorsch_76
Beiträge: 2544
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Telegram Nachricht formatieren

Beitrag von schorsch_76 » 04.02.2024 07:07:43

Wie wäre es mit newline? Meist mit \n zum einfügen.

spruce
Beiträge: 7
Registriert: 16.08.2023 07:55:16

Re: Telegram Nachricht formatieren

Beitrag von spruce » 04.02.2024 11:34:20

Das wird mir dann einfach mit als Text ausgegeben, ohne dass etwas passiert.

Ich habe auch bereits folgendes versucht, allerdings klappt das auch nicht:

Code: Alles auswählen

BOLD="**"
Über source eingebunden und im Text dann wie folgt:

Code: Alles auswählen

${BOLD}$HOSTNAME${BOLD}
In Telegram selbst werden dann allerdings die ** als Text ausgegeben.

rodney
Beiträge: 336
Registriert: 09.12.2016 04:15:59

Re: Telegram Nachricht formatieren

Beitrag von rodney » 04.02.2024 15:57:33

Schon versucht die * zu escapen?

Code: Alles auswählen

TEXT="Die Festplattenkapazität auf \*\*${HOSTNAME}\*\* [${IPADRESSE}] ist zu \n\*\*${PROZENT}\*\* %\nausgereizt."
Oder eine der anderen Formatierungsmethoden [Quelle: https://core.telegram.org/api/entities] versucht:

Code: Alles auswählen

TEXT="Die Festplattenkapazität auf <b>${HOSTNAME}</b> [${IPADRESSE}] ist zu \n<b>${PROZENT}</b> %\nausgereizt."

Code: Alles auswählen

TEXT="Die Festplattenkapazität auf <strong>${HOSTNAME}</strong> [${IPADRESSE}] ist zu \n<strong>${PROZENT}</strong> %\nausgereizt."
Zudem waere es interessant zu wissen welches Programm/Skript/Whatever den Inhalt der Variable ${TEXT} an Telegram sendet (und eventuell veraendert)

spruce
Beiträge: 7
Registriert: 16.08.2023 07:55:16

Re: Telegram Nachricht formatieren

Beitrag von spruce » 05.02.2024 11:52:59

rodney hat geschrieben: ↑ zum Beitrag ↑
04.02.2024 15:57:33
>Schon versucht die * zu escapen?

Ja, direkt am Anfang, leider funktioniert das nicht.

Auch die HTML-Tags, egal ob b oder strong, werden einfach als Text ausgegeben.

Es ist ein eigenes Script. Die Nachricht sende ich wie folgt:

Code: Alles auswählen

  #!/bin/bash

    CHAT_ID="000000000000"
  BOT_TOKEN="000000000000:AAABBBCCCDDDEEEFFFGGG"

  URL="https://api.telegram.org/bot$BOT_TOKEN/sendMessage"
  
  TEXT="Diese /n **Nachricht** <b>wird<b> /*/*genau/*/* so <strong>ausgegeben</strong> wie ihr /n sie hier seht."

  curl -s -d "chat_id=$CHAT_ID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null

spruce
Beiträge: 7
Registriert: 16.08.2023 07:55:16

Re: Telegram Nachricht formatieren

Beitrag von spruce » 05.02.2024 12:49:04

Mit -d parse_mode=HTML funktioniert es, allerdings kein Zeilenumbruch.

Weder /n noch <br>

Benutzeravatar
oln
Beiträge: 487
Registriert: 05.01.2021 09:41:24

Re: Telegram Nachricht formatieren

Beitrag von oln » 06.02.2024 08:04:53

Moin,
der Zeilenumbruch sollte mit %0A gehen. Da du die Daten nicht urlencodest musst du das nehmen.
Besser wäre das so zu machen(ungetestet):

Code: Alles auswählen

curl \
-- data parse_mode=HTML \
-- data chat_id=$CHAT_ID\
-- data-urlencode "text=<b>Fett gedruckt</b>\n Nach Zeilenumbruch" \
-- request POST https://api.telegram.org/bot$BOT_TOKEN/sendMessage
Gruß Ole
AbuseIPDB

spruce
Beiträge: 7
Registriert: 16.08.2023 07:55:16

Re: Telegram Nachricht formatieren

Beitrag von spruce » 07.02.2024 09:47:42

Vielen Dank, %0A hat funktioniert. Kannst du mir da den Sinn / Unsinn dahinter erklären, bzw. woher das kommt?

Deinen Vorschlag habe ich auch ausprobiert, aber leider nicht zum laufen gebracht.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Telegram Nachricht formatieren

Beitrag von MSfree » 07.02.2024 09:53:38

spruce hat geschrieben: ↑ zum Beitrag ↑
07.02.2024 09:47:42
Vielen Dank, %0A hat funktioniert. Kannst du mir da den Sinn / Unsinn dahinter erklären, bzw. woher das kommt?
Hexadezimal 0A ist dezimal zehn, und das ASCII Zeichen mit der Nummer 10 ist der Linefeed. Das Prozentzeichen vor dem 0A signalisiert hier, das ASCII-Zeichen mit der Nummer 10 in den Text zu kodieren.

Antworten