Skip to main content

Send messages and files over Telegram from the command-line.

Project description

telegram-send

Version pyversions Downloads License

Telegram-send is a command-line tool to send messages and files over Telegram to your account, to a group or to a channel. It provides a simple interface that can be easily called from other programs.

Table of Contents

Usage

To send a message:

telegram-send "hello, world"

There is a maximum message length of 4096 characters, larger messages will be automatically split up into smaller ones and sent separately.

To send a message using Markdown or HTML formatting:

telegram-send --format markdown "Only the *bold* use _italics_"
telegram-send --format html "<pre>fixed-width messages</pre> are <i>also</i> supported"

For more information on supported formatting, see the formatting documentation.

The --pre flag formats messages as fixed-width text:

telegram-send --pre "monospace"

To send a message from stdin:

printf 'With\nmultiple\nlines' | telegram-send --stdin

With this option you can send the output of any program.

To send a file (maximum file size of 50 MB):

telegram-send --file document.pdf

To send an image with an optional caption (maximum file size of 10 MB):

telegram-send --image photo.jpg --caption "The Moon at night"

Telegram-send integrates into your file manager (Thunar, Nautilus and Nemo):

Install

Install telegram-send system-wide with pip:

sudo pip3 install telegram-send

Or if you want to install it for a single user (recommended):

pip3 install telegram-send

If installed for a single user you need to add ~/.local/bin to their path, refer to this guide for instructions.

And finally configure it with telegram-send --configure if you want to send to your account, telegram-send --configure-group to send to a group or with telegram-send --configure-channel to send to a channel.

Use the --config option to use multiple configurations. For example to set up sending to a channel in a non-default configuration: telegram-send --config channel.conf --configure-channel. Then always specify the config file to use it: telegram-send --config channel.conf "hello".

Examples

Here are some examples to get a taste of what is possible with telegram-send.

Alert on completion of shell commands

Receive an alert when long-running commands finish with the tg alias, based on Ubuntu’s built-in alert. Put the following in your ~/.bashrc:

alias tg='telegram-send "$([ $? = 0 ] && echo "" || echo "error: ") $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*tg$//'\'')"'

And then use it like sleep 10; tg. This will send you a message with the completed command, in this case sleep 10.

What if you started a program and forgot to set the alert? Suspend the program with Ctrl+Z and then enter fg; telegram-send "your message here".

To automatically receive notifications for long running commands, use ntfy with the Telegram backend.

Periodic messages with cron

We can combine telegram-send with cron to periodically send messages. Here we will set up a cron job to send the Astronomy Picture of the Day to the astropod channel.

Create a bot by talking to the BotFather, create a public channel and add your bot as administrator to the channel. You will need to explicitly search for your bot’s username when adding it. Then run telegram-send --configure-channel --config astropod.conf. We will use the apod.py script that gets the daily picture and calls telegram-send to post it to the channel.

We create a cron job /etc/cron.d/astropod (as root) with the content:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
0 1 * * * telegram ~/apod.py --config ~/astropod.conf

Make sure the file ends with a newline. Cron will then execute the script every day at 1:00 as the user telegram. Join the astropod channel to see the result.

Supervisor process state notifications

Supervisor controls and monitors processes. It can start processes at boot, restart them if they fail and also report on their status. Supervisor-alert is a simple plugin for Supervisor that sends messages on process state updates to an arbitrary program. Using it with telegram-send (by using the --telegram option), you can receive notifications whenever one of your processes exits.

Usage from Python

Because telegram-send is written in Python, you can use its functionality directly from other Python programs: import telegram_send. Look at the documentation.

ASCII pictures

Combining --stdin and --pre, we can send ASCII pictures:

ncal -bh | telegram-send --pre --stdin
apt-get moo | telegram-send --pre --stdin

Questions & Answers

How to use a proxy?

You can set a proxy with an environment variable:

https_proxy=https://ip:port telegram-send "hello"

Within Python you can set the environment variable with:

os.environ["https_proxy"] = "https://ip:port"

If you have a SOCKS proxy, you need to install support for it:

pip3 install pysocks

If you installed telegram-send with sudo, you also need to install pysocks with sudo.

Uninstall

sudo telegram-send --clean
sudo pip3 uninstall telegram-send

Or if you installed it for a single user:

telegram-send --clean
pip3 uninstall telegram-send

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telegram-send-0.14.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telegram_send-0.14-py2.py3-none-any.whl (13.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file telegram-send-0.14.tar.gz.

File metadata

  • Download URL: telegram-send-0.14.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for telegram-send-0.14.tar.gz
Algorithm Hash digest
SHA256 77be98d320c4ff2416db3174d2c33148c68b2110d10e6dab336282247276984c
MD5 6b9b8af7b21890c03d44b54fad1d7bd3
BLAKE2b-256 9f5731d02373f5b313353b58642a4ab71a4c8a647502f3351421886f0339687a

See more details on using hashes here.

File details

Details for the file telegram_send-0.14-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for telegram_send-0.14-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 838a6595d6fea0e06710a5bf0c4fb58cad3fa25117365d0216e528979c643930
MD5 4811a85c70c88a05399c6bfe6a6c9d6b
BLAKE2b-256 beabd9d643057fbe931b671212f1f55c095a0b450d700b4d60c48a5ab1fea32c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page