Commit graph

26 commits

Author SHA1 Message Date
r-xyz
0487b38ed3
Add support for sending telegram messages to topics (#112715)
* Add support for sending telegram messages to topics
    Based on original PR #104059 by [jgresty](https://github.com/jgresty).
    Did not manage to merge conflicts, so I remade the changes from scratch, including suggestions from previous PR reviews.

    Topics were added to telegram groups in November 2022, and to the
    telegram-bot library in version 20.0. They are a purely additive change
    that is exposed by a single parameter `message_thread_id`. Not passing
    this parameter will not change the behaviour from current.

    This same parameter is used to send messages to threads and messages to
    topics inside groups.

    https://telegram.org/blog/topics-in-groups-collectible-usernames/it?setln=en#topics-in-groups

    Fixes #81888
    Fixes #91750

* telegram_bot: add tests for threads feature.

* telegram_bot: fixed tests for threads.

* telegram_bot: fixed wrong line.

* Update test_telegram_bot.py

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-05 17:41:40 +02:00
Jim
cc9eab4c78
Allow plain text messages in telegram_bot (#110051)
* Add new plain_text parser

Passing None in the parse_mode kwargs on the various bot methods actually means that no parser is used.

* Add new plain text parser option to services.yaml

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 19:32:09 +02:00
Tobias Perschon
7424c296b7
Add missing services and strings entries for reply_to_message_id (#105072) 2023-12-06 11:01:05 +01:00
YuriiMaiboroda
ca7355b2f3
Using the MarkdownV2 parser with the Telegram bot (#101139) 2023-10-06 12:26:20 +02:00
Franck Nijhof
4edec69637
Migrate integration services (T-V) to support translations (#96379) 2023-07-12 07:37:13 +02:00
Anders Liljekvist
f5d8487768
Add send_poll to telegram bot (#68666) 2022-06-29 07:08:58 -07:00
Lars
e22f8496c0
Allow sending telegram stickers from sticker packs (#57482) 2022-02-23 10:42:17 -08:00
Farzad Noorian
fbf85fd86b
Add OAuth 2.0 Bearer Token authentication to send_file for telegram_bot (#46567) 2021-06-28 20:43:23 +02:00
tkdrob
028a07d86f
Wrap up selectors (#50794)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 14:45:17 +02:00
tkdrob
d37a3cded0
Add targets and selectors for services (S-T) (#50629) 2021-05-14 22:30:41 -07:00
Olivér Falvai
6ffa3c18b2
Upgrade Telegram lib, refactor component for breaking changes (#44147)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-12-17 21:09:58 +01:00
Tobias Perschon
266f82ac76
Add send animation service to telegram (#41489)
* added telegram sendAnimation api call

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* more accurate service descriptions

Signed-off-by: Tobias Perschon <tobias@perschon.at>

* added 3rd parse_mode to description
2020-12-15 15:20:08 +01:00
Vladimir Dronnikov
a4b1990487
Add telegram_bot.send_voice service (#43433)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2020-12-02 20:44:02 +01:00
Nikolai
a396f8f76f
Add telegram_sent event (#41159)
Co-authored-by: Heine Furubotten <hfurubotten@users.noreply.github.com>
2020-10-29 17:55:25 -05:00
Nikolai
27c3ce16c3
Fix spelling in telegram_bot services (#41235) 2020-10-04 22:52:02 +02:00
Franck Nijhof
39336d3ea3
Add prettier (in pre-commit and CI) (#33693)
* Add prettier (in pre-commit and CI)

* Make all file prettier

* Change order

* Add to Azure Pipelines

* Fix a YAML file prettier caught as invalid

* Remove flow mapping using curly braces from all YAML service files
2020-04-05 17:27:16 +02:00
Konsts
114d48ed8b
Add timeout attribute for send files (#31379)
* Add timeout attribute for send files

* Remove dublicate

Remove attribute dublicate in BASE_SERVICE_SCHEMA

* Remove duplicate

return attribute to BASE_SERVICE_SCHEMA and remove from SERVICE_SCHEMA_SEND_FILE

* Add timeout parameter description

Add timeout parameter description for "send message" and "send location"
2020-02-03 21:23:58 +01:00
Max
7331eb1f71 Allow removing Telegram reply keyboard (#23467)
*  Allow removing telegram reply keyboard by setting `keyboard` to an empty list

* Telegram keyboard: [] clearing in services.yaml
2019-05-02 15:14:40 -04:00
Nacho Barrientos
42265036ff Telegram_bot: Allow fetching data from unverified SSL endpoints (#22067) (#22069)
* Telegram_bot: Allow fetching data from unverified SSL endpoints (#22067)

This patch adds an extra option to the payload that describes the
resource to send to disable the SSL server verification when polling
data from URLs.

* Use the boolean interpretation of the variable directly

Co-Authored-By: nbarrientos <nacho@criptonita.com>
2019-03-16 09:18:10 +08:00
Sebastian Muszynski
2532d67b9a Add send sticker service to telegram bot (#13387)
* Add send sticker service to telegram bot

* A caption is not supported
2018-03-23 19:16:57 +01:00
Ville Skyttä
55ee8959ba Spelling fixes (#11940) 2018-01-27 11:58:27 -08:00
Vignesh Venkat
96e7944fa8 telegram_bot: Support for sending videos (#10470)
* telegram_bot: Support for sending videos

Telegram python library has a sendVideo function that can be used
similar to sending photos and documents.

* fix lint issue

* fix grammar
2017-11-12 00:13:35 +01:00
Fabian Affolter
cc293db5ab
Update services.yaml files (#10229)
* Add period to the description

* Update abbreviation
2017-10-30 21:39:12 +01:00
Eugenio Panadero
07293e8d1e add telegram_bot service: delete_message (#8153)
* add telegram_bot service: delete_message

* better validating for `last` message_id option
2017-06-22 15:03:11 +02:00
Eugenio Panadero
910020bc5f Fix Telegram Bot send file to multiple targets, snapshots of HA cameras, variable templating, digest auth (#7771)
* fix double template rendering when messages come from notify.telegram

* fix 'chat' information not present in callback queries

* better inline keyboards with yaml

To make a row of InlineKeyboardButtons you pass:
- a list of tuples like: `[(text_b1, data_callback_b1), (text_b2, data_callback_b2), ...]
- a string like: `/cmd1, /cmd2, /cmd3`
- or a string like: `text_b1:/cmd1, text_b2:/cmd2`

Example:
```yaml
data:
   message: 'TV is off'
   disable_notification: true
   inline_keyboard:
     - TV ON:/service_call switch.turn_on switch.tv, Other:/othercmd
     - /help, /init
```

* fix send file to multiple targets

* fix message templating, multiple file targets, HA cameras

- Allow templating for caption, url, file, longitude and latitude fields
- Fix send a file to multiple targets
- Load data with some retrying for HA cameras, which return 500 one or two times sometimes (generic cams, always!).
- Doc in services for new inline keyboards yaml syntax: `Text button:/command`

* HttpDigest authentication as proposed in #7396

* review changes

- Don't use `file` as variable name.
- For loop
- Simplify filter allowed `chat_id`s.

* Don't use `file` as variable name!

* make params outside the while loop

* fix chat_id validation when editing sent messages
2017-05-26 21:05:12 +02:00
Eugenio Panadero
b30c352e37 Telegram Bot enhancements with callback queries and new notification services (#7454)
* telegram_bot and notify.telegram enhancements:
- Receive callback queries and produce `telegram_callback` events.
- Custom reply_markup (keyboard or inline_keyboard) for every type of message (message, photo, location & document).
- `disable_notification`, `disable_web_page_preview`, `reply_to_message_id` and `parse_mode` optional keyword args.
- Line break between title and message fields: `'{}\n{}'.format(title, message)`
- Move Telegram notification services to `telegram_bot` component and forward service calls from the telegram notify service to the telegram component, so now the `notify.telegram` platform depends of `telegram_bot`, and there is no need for `api_key` in the notifier configuration. The notifier calls the new notification services of the bot component:
	- telegram_bot/send_message
	- telegram_bot/send_photo
	- telegram_bot/send_document
	- telegram_bot/send_location
	- telegram_bot/edit_message
	- telegram_bot/edit_caption
	- telegram_bot/edit_replymarkup
	- telegram_bot/answer_callback_query
- Added descriptions of the new notification services with a services.yaml file.
- CONFIG_SCHEMA instead of PLATFORM_SCHEMA for the `telegram_bot` component, so only one platform is allowed.
- Async component setup.

* telegram_bot and notify.telegram enhancements: change in requirements_all.txt.
2017-05-09 21:42:17 -07:00