You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🪲 Describe the bug
I am using Apprise API Docker on my home server to send messages to my Telegram Group.
A script on another system sends messages to it using curl post command.
Everything was working fine until around April 17th when messages stopped coming.
Today I started looking at the script and saw that Apprise complains about characters in the message.
the message is:
*Home-S [Sonarr]:* Test
Testing if Sonnar can Send us any Massage.
If you got this, then Hurrayyyyy!!!
It is being sent to Apprise via this command: printf "$message\n" | curl -X POST -F "body=$(</dev/stdin)" "$appriseurl"
And this is the error:
2024-05-07 12:04:36,241 [INFO] apprise: Loaded 1 entries from memory://
2024-05-07 12:04:37,340 [WARNING] apprise: Failed to send Telegram notification to -1001234567890: Bad Request: can't parse entities: Character '-' is reserved and must be escaped with the preceding '\', error=400.
I tried to send a simple message via curl and again same happened:
curl -X POST -F "body=home-s" "http://192.168.48.6:8008/notify/tg-nasbot"
2024-05-07 12:15:01,689 [INFO] apprise: Loaded 1 entries from memory://
2024-05-07 12:15:02,728 [WARNING] apprise: Failed to send Telegram notification to -1001847463926: Bad Request: can't parse entities: Character '-' is reserved and must be escaped with the preceding '\', error=400.
If I remove '-', other characters like []: will get complains too. this was not the case before.
what should I do?
💻 Your System Details:
OS: Apprise API Docker container
Update:
I finally fixed it by piping my message through sed and escaping all special characters. So far it works: printf "$message\n" | sed "s|[-.\!()%&#?/@+':]|\\\&|g" | curl -X POST -F "body=$(</dev/stdin)" "$appriseurl"
The text was updated successfully, but these errors were encountered:
yes. for example, in this command curl -X POST -F "body=home-s" "http://192.168.48.6:8008/notify/tg-nasbot"
the - is passed as part of home-s word
If I escape the - as Apprise says, like curl -X POST -F "body=home\-s" "http://192.168.48.6:8008/notify/tg-nasbot"
the command runs successfully.
But the problem is that the messages sent by the script are dynamic and I don't know the content beforehand. Also, I don't know what characters Apprise doesn't like.
curl -X POST -F "body=home-s" -F tag=telegram "http://localhost:8000/notify/chris"
2024-05-13 19:08:42,013 [INFO] apprise: Loaded 3 entries from memory://
2024-05-13 19:08:42,515 [INFO] apprise: Sent Telegram notification.
In the above example, i map the telegram tag so that i only send a notificatoin there, but even if i drop the tags, the dash in the body has no problem (and does not need to be escaped at all.
Also, I don't know what characters Apprise doesn't like.
To ansewr this, there is nothing it doesn't like 😉 . It just passes things along . There is something else happening in your case. I'm in an Linux environment for my test, are you in the same ?
Instead of using curl... just as a test, try installing hte local apprise tool and see if you can get more details out of the logs:
pip install apprise
# -vvvv is a very, very verbose output# you can possibly test your command you were doing too;# if no -b (--body) is specified, then stdin is used by default, so the below should work fine:printf"$message\n"| sed "s|[-.\!()%&#?/@+':]|\\\&|g"| apprise -vvvv "$appriseurl"
🪲 Describe the bug
I am using Apprise API Docker on my home server to send messages to my Telegram Group.
A script on another system sends messages to it using
curl
post command.Everything was working fine until around April 17th when messages stopped coming.
Today I started looking at the script and saw that Apprise complains about characters in the message.
the message is:
It is being sent to Apprise via this command:
printf "$message\n" | curl -X POST -F "body=$(</dev/stdin)" "$appriseurl"
And this is the error:
I tried to send a simple message via curl and again same happened:
curl -X POST -F "body=home-s" "http://192.168.48.6:8008/notify/tg-nasbot"
If I remove '-', other characters like
[]:
will get complains too. this was not the case before.what should I do?
💻 Your System Details:
Update:
I finally fixed it by piping my message through
sed
and escaping all special characters. So far it works:printf "$message\n" | sed "s|[-.\!()%&#?/@+':]|\\\&|g" | curl -X POST -F "body=$(</dev/stdin)" "$appriseurl"
The text was updated successfully, but these errors were encountered: