Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to include the TELEGRAM_BODY to receive direct link #453

Open
Schollino opened this issue Jan 28, 2024 · 16 comments
Open

Unable to include the TELEGRAM_BODY to receive direct link #453

Schollino opened this issue Jan 28, 2024 · 16 comments

Comments

@Schollino
Copy link

Schollino commented Jan 28, 2024

Hi there,

first of all: I am not an IT expert but I love to deal with those things in my leisure time. So, I got this awesome software to work on my Synology-NAS with docker.
I think there should be the possibility to include a link concerning the appropriate magic bag directly in the telegram notification, so that you can just click on this link and can buy the magic back more quickly and comfortable. This solution should work with the TELEGRAM_BODY I guess?

In the configuration is discribed, that the body has to look like this and you should also be able to include the "link" there?
*${{display_name}}* \n*Available*: ${{items_available}}\n*Price*: ${{price}} ${{currency}}\n*Pickup*: ${{pickupdate}}
Unfortunately, when I add this originale code to my TELEGRAM_BODY, Portainer gives me the following error, with which I am not able to do anything.
"There is an error in the yaml syntax: YAMLSemanticError: Nested mappings are not allowed in compact mappings"

So, I started to just add one content there like this: *${{display_name}}* which leads to another failure:
"failed to deploy a stack: invalid interpolation format for services.scanner.environment.[]. You may need to escape any $ with another $. TELEGRAM_BODY=*${{display_name}}*"

*${{display_name}}$* leads to the same error.
*{{display_name}}* leads to
"Telegram Error: Can't parse entities: character '{' is reserved and must be escaped with the preceding ''. For details see https://github.com/Der-Henning/tgtg/wiki/Configuration#note-on-markdown-v2"

*\{\{display_name\}\}* leads to
"2024-01-28 10:41:34 ERROR Telegram Error: Can't parse entities: can't find end of bold entity at byte offset 21. For details see https://github.com/Der-Henning/tgtg/wiki/Configuration#note-on-markdown-v2"

So, does anyone has an idea to help me including the direct product link into my TELEGRAM_BODY?
Thank you!!

@pershoot
Copy link

pershoot commented Jan 28, 2024

${{display_name}}\nLink: ${{link}}

For the above example (Note: code omitted the asterisks (for bold)):
asterisk
dollar sign
two curly braces in
display_name
2 curly braces out
asterisk
backslash n
asterisk
Link
asterisk
colon
space
dollar sign
2 curly braces in
link
2 curly braces out

...

Please also see this: #351

Edit:
Please see this, regarding Portainer (add surrounding single quotes):
#154 (comment)

@Schollino
Copy link
Author

Hi,
thank you for your fast reply. I just changed the input accordingly to your suggestion:

image

I get the following failure-message:
image

Also the closing with another $ shows the same message.

@pershoot
Copy link

Please see this, regarding Portainer:
#154 (comment)

@Der-Henning
Copy link
Owner

Hi @Schollino.
In Portainer you need to add quotes.

- 'TELEGRAM_BODY=*${{display_name}}*'

@Schollino
Copy link
Author

I think this will not work ...
I am using the "Stack"-Feature in Portainer with the "editor", which obviously uses docker compose to create the container. The rest in the editor looks like this:
image

If I add the quotes, Portainer complains about this which results in a failure.

@pershoot
Copy link

pershoot commented Jan 28, 2024

Try this:
- "\'TELEGRAM_BODY=*${{display_name}}*\n*Link*: ${{link}}\'"

@Der-Henning
Copy link
Owner

I use portainer on docker swarm. My telegram config (working):

      - 'TELEGRAM_BODY={{`*$${{display_name}}*\n*Anzahl*: $${{items_available}}\n*Wann*: $${{pickupdate}}\n*Wo*: $${{pickup_location}}\n*Preis*: $${{price}} $${{currency}}`}}'

@Schollino
Copy link
Author

This entry is marked red in the portainer editor ...
image

... and leads to this error:

2024-01-28 14:45:54 ERROR Telegram Error: Can't parse entities: character '{' is reserved and must be escaped with the preceding ''. For details see https://github.com/Der-Henning/tgtg/wiki/Configuration#note-on-markdown-v2

@Schollino
Copy link
Author

Any suggestions? :-(

@pershoot
Copy link

Any suggestions? :-(

Are you on the latest Portainer update?

@Der-Henning
Copy link
Owner

In my setup I use the compose version: "3.6".

@Schollino
Copy link
Author

Schollino commented Jan 31, 2024

My version is 2.18.2. After an update, my version is 2.19.4.
In my Stack-Editor of the tgtg-container, my version is version: '3.3'

I do not understand, why every suggestion begins with an ' before TELEGRAM_BODY? I did not find any config for a docker container, where it is written like this - 'TELEGRAM_BODY ... By the way: also not in the example-config under https://hub.docker.com/r/derhenning/tgtg .
Could you maybe once share your config for docker/portainer or describe the way, you integrate this?

@Der-Henning
Copy link
Owner

The surrounding ' ' is a portainer thing. I don't know how I figured it out when I had the same problem, but the data you put in the portainer UI is not exactly the same as if you create a compose.yml as you could also include environment variables in compose files.
The environment variables defined as list - key=value are send as strings including key=value to the container.
The ' ' should send the string as is to the compose backend.

Another way is to define them as key-value pairs with key: value.
But you cannot mix both notations.

@Butanding
Copy link

I had the same issue with portainer, this is what worked for me:
- 'TELEGRAM_BODY=*$${{display_name}}*\n*Pickup*: $${{pickupdate}}\n*Order*: $${{link}}'
Kind of strange format tbh though.

If somebody could confirm this working, i think it would be nice to add this to the docs.

@Schollino
Copy link
Author

Hi,

wow, I don't understand why, but it works!!!
We should really add this in the docs.

Thank you very much :-)

@floriegl
Copy link
Contributor

floriegl commented May 7, 2024

This information was present in the docker-compose.yml until e6b4c07. Somehow in the transfer of the configration information from the docker-compose file to the wiki a lot of important information got lost. Can we maybe ether add this file back as an e.g., docker-compose.example.yml or add the missing information from there to the wiki (which configurations need special handling in docker compose files (including the 'TELEGRAM_BODY={{...}}' thing), where to get a google maps API key from, ...)? @Der-Henning

Der-Henning added a commit that referenced this issue May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants