python-telegram-bot/examples
Poolitzer 55e3ecf9f8
API 4.6 (#1723)
* First take on 4.6 support

* improved docs

* Minor doc formattings

* added poll and poll_answer to filters

* added tests, fixed mentioned issues

* added poll_answer + poll filter tests

* Update docs according to official API docs

* introducing pollhandler and pollanswerhandler

* First take on 4.6 support

* improved docs

* Minor doc formattings

* added poll and poll_answer to filters

* added tests, fixed mentioned issues

* added poll_answer + poll filter tests

* Update docs according to official API docs

* introducing pollhandler and pollanswerhandler

* correct_option_id validated with None

when trying to send a poll with correct option id 0 it was failing. Now None check is done so that even when 0 is passed it is assigned.

* improving example

* improving code

* adding poll filter example to the pollbot.py

* Update Readme

* simplify pollbot.py and add some comments

* add tests for Poll(Answer)Handler

* We just want Filters.poll, not Filters.update.poll

* Make test_official fail again

* Handle ME.language in M._parse_*

Co-authored-by: Hinrich Mahler <hinrich.mahler@freenet.de>
Co-authored-by: Sharun Kumar <715417+sharunkumar@users.noreply.github.com>
2020-03-29 09:52:30 +02:00
..
conversationbot.png [ci skip] add state diagrams for conversation handler examples 2016-10-28 08:26:02 +02:00
conversationbot.py Remove note about V12b in examples (#1503) 2019-09-05 13:51:26 +02:00
conversationbot2.png [ci skip] add state diagrams for conversation handler examples 2016-10-28 08:26:02 +02:00
conversationbot2.py Remove note about V12b in examples (#1503) 2019-09-05 13:51:26 +02:00
deeplinking.py Fix typos in examples (#1537) 2019-10-11 21:10:21 +03:00
echobot.py Update examples with consistent string formatting (#870) 2017-10-20 21:24:00 +03:00
echobot2.py Fix typos in examples (#1537) 2019-10-11 21:10:21 +03:00
inlinebot.py Fix typos in examples (#1537) 2019-10-11 21:10:21 +03:00
inlinekeyboard.py Answer CQs and use edit_message_text in examples (#1721) 2020-03-28 12:07:23 +01:00
inlinekeyboard2.py Answer CQs and use edit_message_text in examples (#1721) 2020-03-28 12:07:23 +01:00
LICENSE.txt dedicate examples to the public domain (CC0) 2015-12-25 15:19:17 +01:00
nestedconversationbot.png Nested ConversationHandlers (#1512) 2019-10-11 22:59:36 +03:00
nestedconversationbot.py Answer CQs and use edit_message_text in examples (#1721) 2020-03-28 12:07:23 +01:00
passportbot.html Prepare for 11.0.0 release 2018-08-29 15:21:02 +02:00
passportbot.py updating example to V12 (#1579) 2019-10-27 00:51:29 +03:00
paymentbot.py Fixed comments in examples (#1566) 2019-10-27 01:15:09 +03:00
persistentconversationbot.py Fix typo in example text (#1703) 2020-01-26 22:35:34 +02:00
pollbot.py API 4.6 (#1723) 2020-03-29 09:52:30 +02:00
README.md Github actions - notify maintainers about changed examples (#1555) 2019-10-27 01:42:47 +03:00
timerbot.py Fix typos in examples (#1537) 2019-10-11 21:10:21 +03:00

Examples

In this folder are small examples to show what a bot written with python-telegram-bot looks like. Some bots focus on one specific aspect of the Telegram Bot API while others focus on one of the mechanics of this library. Except for the echobot.py example, they all use the high-level framework this library provides with the telegram.ext submodule.

All examples are licensed under the CC0 License and are therefore fully dedicated to the public domain. You can use them as the base for your own bots without worrying about copyrights.

echobot2.py

This is probably the base for most of the bots made with python-telegram-bot. It simply replies to each text message with a message that contains the same text.

timerbot.py

This bot uses the JobQueue class to send timed messages. The user sets a timer by using /set command with a specific time, for example /set 30. The bot then sets up a job to send a message to that user after 30 seconds. The user can also cancel the timer by sending /unset. To learn more about the JobQueue, read this wiki article.

conversationbot.py

A common task for a bot is to ask information from the user. In v5.0 of this library, we introduced the ConversationHandler for that exact purpose. This example uses it to retrieve user-information in a conversation-like style. To get a better understanding, take a look at the state diagram.

conversationbot2.py

A more complex example of a bot that uses the ConversationHandler. It is also more confusing. Good thing there is a fancy state diagram for this one, too!

nestedconversationbot.py

A even more complex example of a bot that uses the nested ConversationHandlers. While it's certainly not that complex that you couldn't built it without nested ConversationHanldlers, it gives a good impression on how to work with them. Of course, there is a fancy state diagram for this example, too!

inlinekeyboard.py

This example sheds some light on inline keyboards, callback queries and message editing.

inlinekeyboard2.py

A more complex example about inline keyboards, callback queries and message editing. This example showcases how an interactive menu could be build using inline keyboards.

inlinebot.py

A basic example of an inline bot. Don't forget to enable inline mode with @BotFather.

paymentbot.py

A basic example of a bot that can accept payments. Don't forget to enable and configure payments with @BotFather.

persistentconversationbot.py

A basic example of a bot store conversation state and user_data over multiple restarts.

Pure API

The echobot.py example uses only the pure, "bare-metal" API wrapper.