2021-01-30 14:15:39 +01:00
..
Make user to apply any changes to this file to README_RAW.rst as well!
2015-12-13 21:18:59 +01:00
.. image :: https://github.com/python-telegram-bot/logos/blob/master/logo-text/png/ptb-logo-text_768.png?raw=true
:align: center
2016-07-24 01:21:35 +02:00
:target: https://python-telegram-bot.org
2015-12-13 21:18:59 +01:00
:alt: python-telegram-bot Logo
2015-07-08 00:28:22 +02:00
2016-07-24 01:16:57 +02:00
We have made you a wrapper you can't refuse
2015-07-08 00:28:22 +02:00
2018-04-19 15:52:38 +02:00
We have a vibrant community of developers helping each other in our `Telegram group <https://telegram.me/pythontelegrambotgroup> `_ . Join us!
2016-04-03 00:26:24 +02:00
*Stay tuned for library updates and new releases on our* `Telegram Channel <https://telegram.me/pythontelegrambotchannel> `_ .
2015-10-08 15:40:27 +02:00
2015-08-10 23:17:13 +02:00
.. image :: https://img.shields.io/pypi/v/python-telegram-bot.svg
2018-04-17 06:45:05 +02:00
:target: https://pypi.org/project/python-telegram-bot/
2015-08-10 23:17:13 +02:00
:alt: PyPi Package Version
2015-09-04 23:19:05 +02:00
2016-04-24 18:27:24 +02:00
.. image :: https://img.shields.io/pypi/pyversions/python-telegram-bot.svg
2018-04-17 06:45:05 +02:00
:target: https://pypi.org/project/python-telegram-bot/
:alt: Supported Python versions
2016-04-24 18:27:24 +02:00
2021-01-30 14:15:39 +01:00
.. image :: https://img.shields.io/badge/Bot%20API-5.0-blue?logo=telegram
:target: https://core.telegram.org/bots/api-changelog
:alt: Supported Bot API versions
2021-01-16 11:27:06 +01:00
.. image :: https://img.shields.io/pypi/dm/python-telegram-bot
:target: https://pypistats.org/packages/python-telegram-bot
2017-07-23 21:32:12 +02:00
:alt: PyPi Package Monthly Download
2021-02-01 17:59:39 +01:00
.. image :: https://readthedocs.org/projects/python-telegram-bot/badge/?version=stable
:target: https://python-telegram-bot.readthedocs.io/en/stable/?badge=stable
2015-08-11 23:15:45 +02:00
:alt: Documentation Status
2015-09-04 23:19:05 +02:00
2015-11-09 19:06:30 +01:00
.. image :: https://img.shields.io/pypi/l/python-telegram-bot.svg
2016-04-03 00:26:24 +02:00
:target: https://www.gnu.org/licenses/lgpl-3.0.html
2015-08-10 23:15:17 +02:00
:alt: LGPLv3 License
2015-07-08 00:28:22 +02:00
2021-01-16 11:27:06 +01:00
.. image :: https://github.com/python-telegram-bot/python-telegram-bot/workflows/GitHub%20Actions/badge.svg
2020-01-11 19:47:21 +01:00
:target: https://github.com/python-telegram-bot/python-telegram-bot/
:alt: Github Actions workflow
2015-09-04 23:19:05 +02:00
2017-09-09 23:38:19 +02:00
.. image :: https://codecov.io/gh/python-telegram-bot/python-telegram-bot/branch/master/graph/badge.svg
:target: https://codecov.io/gh/python-telegram-bot/python-telegram-bot
:alt: Code coverage
2021-01-30 14:15:39 +01:00
2016-05-26 23:30:29 +02:00
.. image :: http://isitmaintained.com/badge/resolution/python-telegram-bot/python-telegram-bot.svg
:target: http://isitmaintained.com/project/python-telegram-bot/python-telegram-bot
2016-10-19 18:00:33 +02:00
:alt: Median time to resolve an issue
2016-02-01 18:14:17 +01:00
2018-10-01 22:16:48 +02:00
.. image :: https://api.codacy.com/project/badge/Grade/99d901eaa09b44b4819aec05c330c968
:target: https://www.codacy.com/app/python-telegram-bot/python-telegram-bot?utm_source=github.com&utm_medium=referral&utm_content=python-telegram-bot/python-telegram-bot&utm_campaign=Badge_Grade
:alt: Code quality
2020-10-09 17:22:07 +02:00
.. image :: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
2021-01-30 14:15:39 +01:00
.. image :: https://img.shields.io/badge/Telegram-Group-blue.svg?logo=telegram
2016-03-13 23:23:48 +01:00
:target: https://telegram.me/pythontelegrambotgroup
2016-01-09 14:57:46 +01:00
:alt: Telegram Group
2015-07-21 15:46:32 +02:00
2017-10-10 13:09:11 +02:00
.. image :: https://img.shields.io/badge/IRC-Channel-blue.svg
:target: https://webchat.freenode.net/?channels=##python-telegram-bot
:alt: IRC Bridge
2015-07-11 16:55:05 +02:00
=================
Table of contents
=================
- `Introduction`_
2016-04-24 18:27:24 +02:00
- `Telegram API support`_
2015-07-16 13:20:28 +02:00
2015-07-11 16:55:05 +02:00
- `Installing`_
2015-08-11 23:07:32 +02:00
- `Getting started`_
2015-07-12 15:35:37 +02:00
2016-03-23 21:36:34 +01:00
#. `Learning by example`_
2016-02-01 18:14:17 +01:00
2016-03-23 21:36:34 +01:00
#. `Logging`_
2016-01-04 11:34:47 +01:00
2016-03-23 21:36:34 +01:00
#. `Documentation`_
2015-07-21 14:37:10 +02:00
2016-04-24 18:27:24 +02:00
- `Getting help`_
2015-07-11 16:55:05 +02:00
2016-04-03 00:26:24 +02:00
- `Contributing`_
2015-07-11 16:55:05 +02:00
2016-04-24 18:39:48 +02:00
- `License`_
2016-05-29 12:35:52 +02:00
============
Introduction
============
2015-07-08 00:28:22 +02:00
2016-05-28 21:44:10 +02:00
This library provides a pure Python interface for the
`Telegram Bot API <https://core.telegram.org/bots/api> `_ .
2020-07-10 13:11:28 +02:00
It's compatible with Python versions 3.6+. PTB might also work on `PyPy <http://pypy.org/> `_ , though there have been a lot of issues before. Hence, PyPy is not officially supported.
2016-05-28 21:44:10 +02:00
In addition to the pure API implementation, this library features a number of high-level classes to
make the development of bots easy and straightforward. These classes are contained in the
`` telegram.ext `` submodule.
2015-07-11 03:21:52 +02:00
2021-01-30 14:15:39 +01:00
A pure API implementation *without* `` telegram.ext `` is available as the standalone package `` python-telegram-bot-raw `` . `See here for details. <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/README_RAW.rst> `_
----
Note
----
Installing both `` python-telegram-bot `` and `` python-telegram-bot-raw `` in conjunction will result in undesired side-effects, so only install *one* of both.
2016-05-29 12:35:52 +02:00
====================
Telegram API support
====================
2015-07-16 13:20:28 +02:00
2020-12-17 09:29:17 +01:00
All types and methods of the Telegram Bot API **5.0** are supported.
2015-07-08 00:28:22 +02:00
2016-05-29 12:35:52 +02:00
==========
Installing
==========
2015-07-08 23:35:05 +02:00
2019-08-27 09:09:02 +02:00
You can install or upgrade python-telegram-bot with:
2016-04-25 10:34:43 +02:00
.. code :: shell
2015-07-21 14:42:22 +02:00
2016-04-27 01:39:34 +02:00
$ pip install python-telegram-bot --upgrade
2015-07-08 23:35:05 +02:00
2016-09-23 17:13:32 +02:00
Or you can install from source with:
.. code :: shell
2017-05-16 09:32:36 +02:00
$ git clone https://github.com/python-telegram-bot/python-telegram-bot --recursive
2016-09-23 17:13:32 +02:00
$ cd python-telegram-bot
$ python setup.py install
2017-05-16 09:32:36 +02:00
2017-05-16 19:59:02 +02:00
In case you have a previously cloned local repository already, you should initialize the added urllib3 submodule before installing with:
2017-05-16 09:32:36 +02:00
.. code :: shell
2017-05-16 19:59:02 +02:00
$ git submodule update --init --recursive
2016-09-24 15:46:02 +02:00
2021-02-13 22:07:37 +01:00
---------------------
Optional Dependencies
---------------------
PTB can be installed with optional dependencies:
* `` pip install python-telegram-bot[passport] `` installs the `cryptography <https://cryptography.io> `_ library. Use this, if you want to use Telegram Passport related functionality.
* `` pip install python-telegram-bot[ujson] `` installs the `ujson <https://pypi.org/project/ujson/> `_ library. It will then be used for JSON de- & encoding, which can bring speed up compared to the standard `json <https://docs.python.org/3/library/json.html> `_ library.
* `` pip install python-telegram-bot[socks] `` installs the `PySocks <https://pypi.org/project/PySocks/> `_ library. Use this, if you want to work behind a Socks5 server.
2016-05-29 12:35:52 +02:00
===============
Getting started
===============
2015-07-08 00:28:22 +02:00
2016-05-28 21:44:10 +02:00
Our Wiki contains a lot of resources to get you started with `` python-telegram-bot `` :
2016-04-25 09:58:09 +02:00
2016-05-28 21:44:10 +02:00
- `Introduction to the API <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API> `_
- Tutorial: `Your first Bot <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Extensions-%E2%80%93-Your-first-Bot> `_
2016-02-07 22:25:16 +01:00
2016-05-28 21:44:10 +02:00
Other references:
2016-02-07 22:25:16 +01:00
2016-05-28 21:44:10 +02:00
- `Telegram API documentation <https://core.telegram.org/bots/api> `_
2016-10-19 18:00:33 +02:00
- `python-telegram-bot documentation <https://python-telegram-bot.readthedocs.io/> `_
2015-12-01 01:01:28 +01:00
2016-05-29 12:35:52 +02:00
-------------------
Learning by example
-------------------
2016-03-23 21:36:34 +01:00
2020-01-26 21:19:59 +01:00
We believe that the best way to learn this package is by example. Here
are some examples for you to review. Even if it is not your approach for learning, please take a
2020-07-16 19:17:57 +02:00
look at `` echobot.py `` , it is the de facto base for most of the bots out there. Best of all,
2016-05-28 21:44:10 +02:00
the code for these examples are released to the public domain, so you can start by grabbing the
code and building on top of it.
2016-03-23 21:36:34 +01:00
2016-07-24 02:42:55 +02:00
Visit `this page <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/README.md> `_ to discover the official examples or look at the examples on the `wiki <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Examples> `_ to see other bots the community has built.
2016-03-23 21:36:34 +01:00
2016-05-29 12:35:52 +02:00
-------
Logging
-------
2016-01-05 13:32:19 +01:00
2016-05-28 21:44:10 +02:00
This library uses the `` logging `` module. To set up logging to standard output, put:
2016-04-25 09:58:09 +02:00
.. code :: python
2016-01-04 11:34:47 +01:00
2016-05-28 21:44:10 +02:00
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
2016-01-04 11:34:47 +01:00
2016-05-28 21:44:10 +02:00
at the beginning of your script.
2015-08-09 14:59:41 +02:00
2016-05-28 21:44:10 +02:00
You can also use logs in your application by calling `` logging.getLogger() `` and setting the log level you want:
2016-04-25 09:58:09 +02:00
.. code :: python
2015-08-09 14:59:41 +02:00
2016-05-28 21:44:10 +02:00
logger = logging.getLogger()
logger.setLevel(logging.INFO)
2015-08-09 14:59:41 +02:00
2016-04-25 09:58:09 +02:00
If you want DEBUG logs instead:
.. code :: python
2015-08-09 14:59:41 +02:00
2016-05-28 21:44:10 +02:00
logger.setLevel(logging.DEBUG)
2015-08-09 14:59:41 +02:00
2015-11-17 05:34:00 +01:00
2016-05-29 12:35:52 +02:00
=============
Documentation
=============
2015-08-11 23:07:32 +02:00
2016-10-19 18:00:33 +02:00
`` python-telegram-bot `` 's documentation lives at `readthedocs.io <https://python-telegram-bot.readthedocs.io/> `_ .
2015-08-11 23:07:32 +02:00
2016-05-29 12:35:52 +02:00
============
Getting help
============
2015-07-11 06:55:33 +02:00
2016-04-24 18:27:24 +02:00
You can get help in several ways:
1. We have a vibrant community of developers helping each other in our `Telegram group <https://telegram.me/pythontelegrambotgroup> `_ . Join us!
2016-05-28 21:44:10 +02:00
Documentation Improvements (#2008)
* Minor doc updates, following official API docs
* Fix spelling in Defaults docstrings
* Clarify Changelog of v12.7 about aware dates
* Fix typo in CHANGES.rst (#2024)
* Fix PicklePersistence.flush() with only bot_data (#2017)
* Update pylint in pre-commit to fix CI (#2018)
* Add Filters.via_bot (#2009)
* feat: via_bot filter
also fixing a small mistake in the empty parameter of the user filter and improve docs slightly
* fix: forgot to set via_bot to None
* fix: redoing subclassing to copy paste solution
* Cosmetic changes
Co-authored-by: Hinrich Mahler <hinrich.mahler@freenet.de>
* Update CHANGES.rst
Fixed Typo
Co-authored-by: Bibo-Joshi <hinrich.mahler@freenet.de>
Co-authored-by: Poolitzer <25934244+Poolitzer@users.noreply.github.com>
* Update downloads badge, add info on IRC Channel to Getting Help section
* Remove RegexHandler from ConversationHandlers Docs (#1973)
Replaced RegexHandler with MessageHandler, since the former is deprecated
* Fix Filters.via_bot docstrings
* Add notes on Markdown v1 being legacy mode
* Fixed typo in the Regex doc.. (#2036)
* Typo: Spelling
* Minor cleanup from #2043
* Document CommandHandler ignoring channel posts
* Doc fixes for a few telegram.ext classes
* Doc fixes for most `telegram` classes.
* pep-8
forgot the hard wrap is at 99 chars, not 100!
fixed a few spelling mistakes too.
* Address review and made rendering of booleans consistent
True, False, None are now rendered with ``bool`` wherever they weren't in telegram and telegram.ext classes.
* Few doc fixes for inline* classes
As usual, docs were cross-checked with official tg api docs.
* Doc fixes for telegram/files classes
As usual, docs were cross-checked with official tg api docs.
* Doc fixes for telegram.Game
Mostly just added hyperlinks. And fixed message length doc.
As usual, docs were cross-checked with official tg api docs.
* Very minor doc fix for passportfile.py and passportelementerrors.py
Didn't bother changing too much since this seems to be a custom implementation.
* Doc fixes for telegram.payments
As usual, cross-checked with official bot api docs.
* Address review 2
Few tiny other fixes too.
* Changed from ``True/False/None`` to :obj:`True/False/None` project-wide.
Few tiny other doc fixes too.
Co-authored-by: Robert Geislinger <mitachundkrach@gmail.com>
Co-authored-by: Poolitzer <25934244+Poolitzer@users.noreply.github.com>
Co-authored-by: GauthamramRavichandran <30320759+GauthamramRavichandran@users.noreply.github.com>
Co-authored-by: Mahesh19 <maheshvagicherla99438@gmail.com>
Co-authored-by: hoppingturtles <ilovebhagwan@gmail.com>
2020-08-24 19:35:57 +02:00
2. In case you are unable to join our group due to Telegram restrictions, you can use our `IRC channel <https://webchat.freenode.net/?channels=##python-telegram-bot> `_ .
2016-05-28 21:44:10 +02:00
2020-12-17 09:29:17 +01:00
3. Report bugs, request new features or ask questions by `creating an issue <https://github.com/python-telegram-bot/python-telegram-bot/issues/new/choose> `_ or `a discussion <https://github.com/python-telegram-bot/python-telegram-bot/discussions/new> `_ .
2019-10-22 00:04:31 +02:00
Documentation Improvements (#2008)
* Minor doc updates, following official API docs
* Fix spelling in Defaults docstrings
* Clarify Changelog of v12.7 about aware dates
* Fix typo in CHANGES.rst (#2024)
* Fix PicklePersistence.flush() with only bot_data (#2017)
* Update pylint in pre-commit to fix CI (#2018)
* Add Filters.via_bot (#2009)
* feat: via_bot filter
also fixing a small mistake in the empty parameter of the user filter and improve docs slightly
* fix: forgot to set via_bot to None
* fix: redoing subclassing to copy paste solution
* Cosmetic changes
Co-authored-by: Hinrich Mahler <hinrich.mahler@freenet.de>
* Update CHANGES.rst
Fixed Typo
Co-authored-by: Bibo-Joshi <hinrich.mahler@freenet.de>
Co-authored-by: Poolitzer <25934244+Poolitzer@users.noreply.github.com>
* Update downloads badge, add info on IRC Channel to Getting Help section
* Remove RegexHandler from ConversationHandlers Docs (#1973)
Replaced RegexHandler with MessageHandler, since the former is deprecated
* Fix Filters.via_bot docstrings
* Add notes on Markdown v1 being legacy mode
* Fixed typo in the Regex doc.. (#2036)
* Typo: Spelling
* Minor cleanup from #2043
* Document CommandHandler ignoring channel posts
* Doc fixes for a few telegram.ext classes
* Doc fixes for most `telegram` classes.
* pep-8
forgot the hard wrap is at 99 chars, not 100!
fixed a few spelling mistakes too.
* Address review and made rendering of booleans consistent
True, False, None are now rendered with ``bool`` wherever they weren't in telegram and telegram.ext classes.
* Few doc fixes for inline* classes
As usual, docs were cross-checked with official tg api docs.
* Doc fixes for telegram/files classes
As usual, docs were cross-checked with official tg api docs.
* Doc fixes for telegram.Game
Mostly just added hyperlinks. And fixed message length doc.
As usual, docs were cross-checked with official tg api docs.
* Very minor doc fix for passportfile.py and passportelementerrors.py
Didn't bother changing too much since this seems to be a custom implementation.
* Doc fixes for telegram.payments
As usual, cross-checked with official bot api docs.
* Address review 2
Few tiny other fixes too.
* Changed from ``True/False/None`` to :obj:`True/False/None` project-wide.
Few tiny other doc fixes too.
Co-authored-by: Robert Geislinger <mitachundkrach@gmail.com>
Co-authored-by: Poolitzer <25934244+Poolitzer@users.noreply.github.com>
Co-authored-by: GauthamramRavichandran <30320759+GauthamramRavichandran@users.noreply.github.com>
Co-authored-by: Mahesh19 <maheshvagicherla99438@gmail.com>
Co-authored-by: hoppingturtles <ilovebhagwan@gmail.com>
2020-08-24 19:35:57 +02:00
4. Our `Wiki pages <https://github.com/python-telegram-bot/python-telegram-bot/wiki/> `_ offer a growing amount of resources.
5. You can even ask for help on Stack Overflow using the `python-telegram-bot tag <https://stackoverflow.com/questions/tagged/python-telegram-bot> `_ .
2016-05-28 21:44:10 +02:00
2016-04-24 18:27:24 +02:00
2016-05-29 12:35:52 +02:00
============
Contributing
============
2015-07-08 22:58:50 +02:00
2016-05-24 22:49:43 +02:00
Contributions of all sizes are welcome. Please review our `contribution guidelines <https://github.com/python-telegram-bot/python-telegram-bot/blob/master/.github/CONTRIBUTING.rst> `_ to get started. You can also help by `reporting bugs <https://github.com/python-telegram-bot/python-telegram-bot/issues/new> `_ .
2016-04-24 18:39:48 +02:00
2016-05-29 12:35:52 +02:00
=======
License
=======
2016-04-24 18:39:48 +02:00
2016-05-29 12:35:52 +02:00
You may copy, distribute and modify the software provided that modifications are described and licensed for free under `LGPL-3 <https://www.gnu.org/licenses/lgpl-3.0.html> `_ . Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL-3, but applications that use the library don't have to be.