Released 2021-03-14
Hot fix release:
- Fixed a bug in
setup.py(#2431)
Released 2021-03-14
Major Changes:
- Full support of Bot API 5.1 (#2424)
Minor changes, CI improvements, doc fixes and type hinting:
- Improve
Updater.set_webhook(#2419) - Doc Fixes (#2404)
- Type Hinting Fixes (#2425)
- Update
pre-commitSettings (#2415) - Fix Logging for Vendored
urllib3(#2427) - Stabilize Tests (#2409)
Released 2021-02-19
Major Changes:
- Make
cryptographyDependency Optional & Refactor Some Tests (#2386, #2370) - Deprecate
MessageQueue(#2393)
Bug Fixes:
Minor changes:
- Doc Fixes (#2359)
Released 2021-02-02
Major Changes:
New Features:
- Add Missing Shortcuts to
Message(#2330) - Rich Comparison for
Bot(#2320) - Add
run_asyncParameter toConversationHandler(#2292) - Add New Shortcuts to
Chat(#2291) - Add New Constant
MAX_ANSWER_CALLBACK_QUERY_TEXT_LENGTH(#2282) - Allow Passing Custom Filename For All Media (#2249)
- Handle Bytes as File Input (#2233)
Bug Fixes:
- Fix Escaping in Nested Entities in
MessageProperties (#2312) - Adjust Calling of
Dispatcher.update_persistence(#2285) - Add
quotekwarg toMessage.reply_copy(#2232) ConversationHandler: Docs &edited_channel_postbehavior (#2339)
Minor changes, CI improvements, doc fixes and type hinting:
- Doc Fixes (#2253, #2225)
- Reduce Usage of
typing.Any(#2321) - Extend Deeplinking Example (#2335)
- Add pyupgrade to pre-commit Hooks (#2301)
- Add PR Template (#2299)
- Drop Nightly Tests & Update Badges (#2323)
- Update Copyright (#2289, #2287)
- Change Order of Class DocStrings (#2256)
- Add macOS to Test Matrix (#2266)
- Start Using Versioning Directives in Docs (#2252)
- Improve Annotations & Docs of Handlers (#2243)
Released 2020-11-29
Major Changes:
- Full support of Bot API 5.0 (#2181, #2186, #2190, #2189, #2183, #2184, #2188, #2185, #2192, #2196, #2193, #2223, #2199, #2187, #2147, #2205)
New Features:
- Add
Defaults.run_async(#2210) - Improve and Expand
CallbackQueryShortcuts (#2172) - Add XOR Filters and make
Filters.namea Property (#2179) - Add
Filters.document.file_extension(#2169) - Add
Filters.caption_regex(#2163) - Add
Filters.chat_type(#2128) - Handle Non-Binary File Input (#2202)
Bug Fixes:
- Improve Handling of Custom Objects in
BasePersistence.insert/replace_bot(#2151) - Fix bugs in
replace/insert_bot(#2218)
Minor changes, CI improvements, doc fixes and type hinting:
- Improve Type hinting (#2204, #2118, #2167, #2136)
- Doc Fixes & Extensions (#2201, #2161)
- Use F-Strings Where Possible (#2222)
- Rename kwargs to _kwargs where possible (#2182)
- Comply with PEP561 (#2168)
- Improve Code Quality (#2131)
- Switch Code Formatting to Black (#2122, #2159, #2158)
- Update Wheel Settings (#2142)
- Update
timerbot.pytov13.0(#2149) - Overhaul Constants (#2137)
- Add Python 3.9 to Test Matrix (#2132)
- Switch Codecov to
GitHubAction (#2127) - Specify Required pytz Version (#2121)
Released 2020-10-07
For a detailed guide on how to migrate from v12 to v13, see this wiki page.
Major Changes:
- Deprecate old-style callbacks, i.e. set
use_context=Trueby default (#2050) - Refactor Handling of Message VS Update Filters (#2032)
- Deprecate
Message.default_quote(#1965) - Refactor persistence of Bot instances (#1994)
- Refactor
JobQueue(#1981) - Refactor handling of kwargs in Bot methods (#1924)
- Refactor
Dispatcher.run_async, deprecating the@run_asyncdecorator (#2051)
New Features:
- Type Hinting (#1920)
- Automatic Pagination for
answer_inline_query(#2072) Defaults.tzinfo(#2042)- Extend rich comparison of objects (#1724)
- Add
Filters.via_bot(#2009) - Add missing shortcuts (#2043)
- Allow
DispatcherHandlerStopinConversationHandler(#2059) - Make Errors picklable (#2106)
Minor changes, CI improvements, doc fixes or bug fixes:
- Fix Webhook not working on Windows with Python 3.8+ (#2067)
- Fix setting thumbs with
send_media_group(#2093) - Make
MessageHandlerfilter forFilters.updatefirst (#2085) - Fix
PicklePersistence.flush()with onlybot_data(#2017) - Add test for clean argument of
Updater.start_polling/webhook(#2002) - Doc fixes, refinements and additions (#2005, #2008, #2089, #2094, #2090)
- CI fixes (#2018, #2061)
- Refine
pollbot.pyexample (#2047) - Refine Filters in examples (#2027)
- Rename
echobotexamples (#2025) - Use Lock-Bot to lock old threads (#2048, #2052, #2049, #2053)
Released 2020-06-22
Major Changes:
- Remove Python 2 support (#1715)
- Bot API 4.9 support (#1980)
- IDs/Usernames of
Filters.userandFilters.chatcan now be updated (#1757)
Minor changes, CI improvements, doc fixes or bug fixes:
- Update contribution guide and stale bot (#1937)
- Remove
NullHandlers(#1913) - Improve and expand examples (#1943, #1995, #1983, #1997)
- Doc fixes (#1940, #1962)
- Add
User.send_poll()shortcut (#1968) - Ignore private attributes en
TelegramObject.to_dict()(#1989) - Stabilize CI (#2000)
Released 2020-05-02
Major Changes:
- Bot API 4.8 support. Note: The
Diceobject now has a second positional argumentemoji. This is relevant, if you instantiateDiceobjects manually. (#1917) - Added
tzinfoargument tohelpers.from_timestamp. It now returns an timezone aware object. This is relevant forMessage.{date,forward_date,edit_date},Poll.close_dateandChatMember.until_date(#1621)
New Features:
- New method
run_monthlyfor theJobQueue(#1705) Job.next_tnow gives the datetime of the jobs next execution (#1685)
Minor changes, CI improvements, doc fixes or bug fixes:
- Stabalize CI (#1919, #1931)
- Use ABCs
@abstractmethodinstead of raisingNotImplementedErrorforHandler,BasePersistenceandBaseFilter(#1905) - Doc fixes (#1914, #1902, #1910)
Released 2020-04-11
Bug fixes:
- Fix serialization of
reply_markupin media messages (#1889)
Released 2020-04-10
Major Changes:
- Bot API 4.7 support. Note: In
Bot.create_new_sticker_setandBot.add_sticker_to_set, the order of the parameters had be changed, as thepng_stickerparameter is now optional. (#1858)
Minor changes, CI improvements or bug fixes:
- Add tests for
swtich_inline_query(_current_chat)with empty string (#1635) - Doc fixes (#1854, #1874, #1884)
- Update issue templates (#1880)
- Favor concrete types over "Iterable" (#1882)
- Pass last valid
CallbackContexttoTIMEOUThandlers ofConversationHandler(#1826) - Tweak handling of persistence and update persistence after job calls (#1827)
- Use checkout@v2 for GitHub actions (#1887)
Released 2020-03-30
Minor changes, doc fixes or bug fixes:
- Add missing docs for PollHandler and PollAnswerHandler (#1853)
- Fix wording in Filters docs (#1855)
- Reorder tests to make them more stable (#1835)
- Make ConversationHandler attributes immutable (#1756)
- Make PrefixHandler attributes command and prefix editable (#1636)
- Fix UTC as default tzinfo for Job (#1696)
Released 2020-03-29
New Features:
- Bot.link gives the t.me link of the bot (#1770)
Major Changes:
Minor changes, CI improvements or bug fixes:
- Remove legacy CI files (#1783, #1791)
- Update pre-commit config file (#1787)
- Remove builtin names (#1792)
- CI improvements (#1808, #1848)
- Support Python 3.8 (#1614, #1824)
- Use stale bot for auto closing stale issues (#1820, #1829, #1840)
- Doc fixes (#1778, #1818)
- Fix typo in edit_message_media (#1779)
- In examples, answer CallbackQueries and use edit_message_text shortcut (#1721)
- Revert accidental change in vendored urllib3 (#1775)
Released 2020-02-10
Bug Fixes
- Pass correct parse_mode to InlineResults if bot.defaults is None (#1763)
- Make sure PP can read files that dont have bot_data (#1760)
Released 2020-02-08
This is a quick release for #1744 which was accidently left out of v12.4.0 though mentioned in the release notes.
Released 2020-02-08
New features:
- Set default values for arguments appearing repeatedly. We also have a wiki page for the new defaults. (#1490)
- Store data in
CallbackContext.bot_datato access it in every callback. Also persists. (#1325) Filters.pollallows only messages containing a poll (#1673)
Major changes:
Filters.textnow accepts messages that start with a slash, becauseCommandHandlerchecks forMessageEntity.BOT_COMMANDsince v12. This might lead to your MessageHandlers receiving more updates than before (#1680).Filters.commandnew checks forMessageEntity.BOT_COMMANDinstead of just a leading slash. Also byFilters.command(False)you can now filters for messages containing a command anywhere in the text (#1744).
Minor changes, CI improvements or bug fixes:
- Add
disptacherargument toUpdaterto allow passing a customizedDispatcher(#1484) - Add missing names for
Filters(#1632) - Documentation fixes (#1624, #1647, #1669, #1703, #1718, #1734, #1740, #1642, #1739, #1746)
- CI improvements (#1716, #1731, #1738, #1748, #1749, #1750, #1752)
- Fix spelling issue for
encode_conversations_to_json(#1661) - Remove double assignement of
Dispatcher.job_queue(#1698) - Expose dispatcher as property for
CallbackContext(#1684) - Fix
Nonecheck inJobQueue._put()(#1707) - Log datetimes correctly in
JobQueue(#1714) - Fix false
Message.linkcreation for private groups (#1741) - Add option
--with-upstream-urllib3to setup.py to allow using non-vendored version (#1725) - Fix persistence for nested
ConversationHandlers(#1679) - Improve handling of non-decodable server responses (#1623)
- Fix download for files without
file_path(#1591) - test_webhook_invalid_posts is now considered flaky and retried on failure (#1758)
Released 2020-01-11
New features:
- Filters.caption allows only messages with caption (#1631).
- Filter for exact messages/captions with new capability of Filters.text and Filters.caption. Especially useful in combination with ReplyKeyboardMarkup. (#1631).
Major changes:
- Fix inconsistent handling of naive datetimes (#1506).
Minor changes, CI improvements or bug fixes:
- Documentation fixes (#1558, #1569, #1579, #1572, #1566, #1577, #1656).
- Add mutex protection on ConversationHandler (#1533).
- Add MAX_PHOTOSIZE_UPLOAD constant (#1560).
- Add args and kwargs to Message.forward() (#1574).
- Transfer to GitHub Actions CI (#1555, #1556, #1605, #1606, #1607, #1612, #1615, #1645).
- Fix deprecation warning with Py3.8 by vendored urllib3 (#1618).
- Simplify assignements for optional arguments (#1600)
- Allow private groups for Message.link (#1619).
- Fix wrong signature call for ConversationHandler.TIMEOUT handlers (#1653).
Released 2019-10-14
New features:
- Nested ConversationHandlers (#1512).
Minor changes, CI improvments or bug fixes:
- Fix CI failures due to non-backward compat attrs depndency (#1540).
- travis.yaml: TEST_OFFICIAL removed from allowed_failures.
- Fix typos in examples (#1537).
- Fix Bot.to_dict to use proper first_name (#1525).
- Refactor
test_commandhandler.py(#1408). - Add Python 3.8 (RC version) to Travis testing matrix (#1543).
- test_bot.py: Add to_dict test (#1544).
- Flake config moved into setup.cfg (#1546).
Released 2019-09-18
Hot fix release
Fixed regression in the vendored urllib3 (#1517).
Released 2019-09-13
Major changes:
- Bot API 4.4 support (#1464, #1510)
- Add get_file method to Animation & ChatPhoto. Add, get_small_file & get_big_file methods to ChatPhoto (#1489)
- Tools for deep linking (#1049)
Minor changes and/or bug fixes:
Released 2019-08-29
Well... This felt like decades. But here we are with a new release.
Expect minor releases soon (mainly complete Bot API 4.4 support)
Major and/or breaking changes:
- Context based callbacks
- Persistence
- PrefixHandler added (Handler overhaul)
- Deprecation of RegexHandler and edited_messages, channel_post, etc. arguments (Filter overhaul)
- Various ConversationHandler changes and fixes
- Bot API 4.1, 4.2, 4.3 support
- Python 3.4 is no longer supported
- Error Handler now handles all types of exceptions (#1485)
- Return UTC from from_timestamp() (#1485)
See the wiki page at https://git.io/fxJuV for a detailed guide on how to migrate from version 11 to version 12.
Context based callbacks (#1100)
- Use of
pass_in handlers is deprecated. - Instead use
use_context=TrueonUpdaterorDispatcherand change callback from (bot, update, others...) to (update, context). - This also applies to error handlers
Dispatcher.add_error_handlerand JobQueue jobs (change (bot, job) to (context) here). - For users with custom handlers subclassing Handler, this is mostly backwards compatible, but to use the new context based callbacks you need to implement the new collect_additional_context method.
- Passing bot to
JobQueue.__init__is deprecated. Use JobQueue.set_dispatcher with a dispatcher instead. - Dispatcher makes sure to use a single CallbackContext for a entire update. This means that if an update is handled by multiple handlers (by using the group argument), you can add custom arguments to the CallbackContext in a lower group handler and use it in higher group handler. NOTE: Never use with @run_async, see docs for more info. (#1283)
- If you have custom handlers they will need to be updated to support the changes in this release.
- Update all examples to use context based callbacks.
Persistence (#1017)
- Added PicklePersistence and DictPersistence for adding persistence to your bots.
- BasePersistence can be subclassed for all your persistence needs.
- Add a new example that shows a persistent ConversationHandler bot
Handler overhaul (#1114)
- CommandHandler now only triggers on actual commands as defined by telegram servers (everything that the clients mark as a tabable link).
- PrefixHandler can be used if you need to trigger on prefixes (like all messages starting with a "/" (old CommandHandler behaviour) or even custom prefixes like "#" or "!").
Filter overhaul (#1221)
- RegexHandler is deprecated and should be replaced with a MessageHandler with a regex filter.
- Use update filters to filter update types instead of arguments (message_updates, channel_post_updates and edited_updates) on the handlers.
- Completely remove allow_edited argument - it has been deprecated for a while.
- data_filters now exist which allows filters that return data into the callback function. This is how the regex filter is implemented.
- All this means that it no longer possible to use a list of filters in a handler. Use bitwise operators instead!
- Remove
run_async_timeoutandtimed_out_behaviorarguments (#1344) - Replace with
WAITINGconstant and behavior from states (#1344) - Only emit one warning for multiple CallbackQueryHandlers in a ConversationHandler (#1319)
- Use warnings.warn for ConversationHandler warnings (#1343)
- Fix unresolvable promises (#1270)
- Handlers should be faster due to deduped logic.
- Avoid compiling compiled regex in regex filter. (#1314)
- Add missing
left_chat_memberto Message.MESSAGE_TYPES (#1336) - Make custom timeouts actually work properly (#1330)
- Add convenience classmethods (from_button, from_row and from_column) to InlineKeyboardMarkup
- Small typo fix in setup.py (#1306)
- Add Conflict error (HTTP error code 409) (#1154)
- Change MAX_CAPTION_LENGTH to 1024 (#1262)
- Remove some unnecessary clauses (#1247, #1239)
- Allow filenames without dots in them when sending files (#1228)
- Fix uploading files with unicode filenames (#1214)
- Replace http.server with Tornado (#1191)
- Allow SOCKSConnection to parse username and password from URL (#1211)
- Fix for arguments in passport/data.py (#1213)
- Improve message entity parsing by adding text_mention (#1206)
- Documentation fixes (#1348, #1397, #1436)
- Merged filters short-circuit (#1350)
- Fix webhook listen with tornado (#1383)
- Call task_done() on update queue after update processing finished (#1428)
- Fix send_location() - latitude may be 0 (#1437)
- Make MessageEntity objects comparable (#1465)
- Add prefix to thread names (#1358)
- Fix setting bot on ShippingQuery (#1355)
- Fix _trigger_timeout() missing 1 required positional argument: 'job' (#1367)
- Add missing message.text check in PrefixHandler check_update (#1375)
- Make updates persist even on DispatcherHandlerStop (#1463)
- Dispatcher force updating persistence object's chat data attribute(#1462)
- Finally fix our CI builds mostly (too many commits and PRs to list)
- Use multiple bots for CI to improve testing times significantly.
- Allow pypy to fail in CI.
- Remove the last CamelCase CheckUpdate methods from the handlers we missed earlier.
- test_official is now executed in a different job
Released 2018-09-01
Fixes and updates for Telegram Passport: (#1198)
- Fix passport decryption failing at random times
- Added support for middle names.
- Added support for translations for documents
- Add errors for translations for documents
- Added support for requesting names in the language of the user's country of residence
- Replaced the payload parameter with the new parameter nonce
- Add hash to EncryptedPassportElement
Released 2018-08-29
Fully support Bot API version 4.0! (also some bugfixes :))
Telegram Passport (#1174):
- Add full support for telegram passport.
- New types: PassportData, PassportFile, EncryptedPassportElement, EncryptedCredentials, PassportElementError, PassportElementErrorDataField, PassportElementErrorFrontSide, PassportElementErrorReverseSide, PassportElementErrorSelfie, PassportElementErrorFile and PassportElementErrorFiles.
- New bot method: set_passport_data_errors
- New filter: Filters.passport_data
- Field passport_data field on Message
- PassportData can be easily decrypted.
- PassportFiles are automatically decrypted if originating from decrypted PassportData.
- See new passportbot.py example for details on how to use, or go to our telegram passport wiki page for more info
- NOTE: Passport decryption requires new dependency cryptography.
Inputfile rework (#1184):
- Change how Inputfile is handled internally
- This allows support for specifying the thumbnails of photos and videos using the thumb= argument in the different send_ methods.
- Also allows Bot.send_media_group to actually finally send more than one media.
- Add thumb to Audio, Video and Videonote
- Add Bot.edit_message_media together with InputMediaAnimation, InputMediaAudio, and inputMediaDocument.
Other Bot API 4.0 changes:
- Add forusquare_type to Venue, InlineQueryResultVenue, InputVenueMessageContent, and Bot.send_venue. (#1170)
- Add vCard support by adding vcard field to Contact, InlineQueryResultContact, InputContactMessageContent, and Bot.send_contact. (#1166)
- Support new message entities: CASHTAG and PHONE_NUMBER. (#1179)
- Cashtag seems to be things like $USD and $GBP, but it seems telegram doesn't currently send them to bots.
- Phone number also seems to have limited support for now
- Add Bot.send_animation, add width, height, and duration to Animation, and add Filters.animation. (#1172)
Non Bot API 4.0 changes:
- Minor integer comparison fix (#1147)
- Fix Filters.regex failing on non-text message (#1158)
- Fix ProcessLookupError if process finishes before we kill it (#1126)
- Add t.me links for User, Chat and Message if available and update User.mention_* (#1092)
- Fix mention_markdown/html on py2 (#1112)
Released 2018-05-02
Fixes changing previous behaviour:
Fixes:
- Add a caption_entity filter for filtering caption entities (#1068)
- Inputfile encode filenames (#1086)
- InputFile: Fix proper naming of file when reading from subprocess.PIPE (#1079)
- Remove pytest-catchlog from requirements (#1099)
- Documentation fixes (#1061, #1078, #1081, #1096)
Released 2018-04-17
Important fix:
- Handle utf8 decoding errors (#1076)
New features:
- Added Filter.regex (#1028)
- Filters for Category and file types (#1046)
- Added video note filter (#1067)
Fixes:
- Fix in telegram.Message (#1042)
- Make chat_id a positional argument inside shortcut methods of Chat and User classes (#1050)
- Make Bot.full_name return a unicode object. (#1063)
- CommandHandler faster check (#1074)
- Correct documentation of Dispatcher.add_handler (#1071)
- Various small fixes to documentation.
Released 2018-03-05
Fixes:
Released 2018-03-02
Non backward compatabile changes and changed defaults
- JobQueue: Remove deprecated prevent_autostart & put() (PR #1012)
- Bot, Updater: Remove deprecated network_delay (PR #1012)
- Remove deprecated Message.new_chat_member (PR #1012)
- Retry bootstrap phase indefinitely (by default) on network errors (PR #1018)
New Features
- Support v3.6 API (PR #1006)
- User.full_name convinience property (PR #949)
- Add send_phone_number_to_provider and send_email_to_provider arguments to send_invoice (PR #986)
- Bot: Add shortcut methods reply_{markdown,html} (PR #827)
- Bot: Add shortcut method reply_media_group (PR #994)
- Added utils.helpers.effective_message_type (PR #826)
- Bot.get_file now allows passing a file in addition to file_id (PR #963)
- Add .get_file() to Audio, Document, PhotoSize, Sticker, Video, VideoNote and Voice (PR #963)
- Add .send_*() methods to User and Chat (PR #963)
- Get jobs by name (PR #1011)
- Add Message caption html/markdown methods (PR #1013)
- File.download_as_bytearray - new method to get a d/led file as bytearray (PR #1019)
- File.download(): Now returns a meaningful return value (PR #1019)
- Added conversation timeout in ConversationHandler (PR #895)
Changes
- Store bot in PreCheckoutQuery (PR #953)
- Updater: Issue INFO log upon received signal (PR #951)
- JobQueue: Thread safety fixes (PR #977)
- WebhookHandler: Fix exception thrown during error handling (PR #985)
- Explicitly check update.effective_chat in ConversationHandler.check_update (PR #959)
- Updater: Better handling of timeouts during get_updates (PR #1007)
- Remove unnecessary to_dict() (PR #834)
- CommandHandler - ignore strings in entities and "/" followed by whitespace (PR #1020)
- Documentation & style fixes (PR #942, PR #956, PR #962, PR #980, PR #983)
Released 2017-12-08
Breaking changes (possibly)
- Drop support for python 3.3 (PR #930)
New Features
- Support Bot API 3.5 (PR #920)
Changes
- Fix race condition in dispatcher start/stop (#887)
- Log error trace if there is no error handler registered (#694)
- Update examples with consistent string formatting (#870)
- Various changes and improvements to the docs.
Released 2017-10-15
- Fix Commandhandler crashing on single character messages (PR #873).
Released 2017-10-14
New features - Support Bot API 3.4 (PR #865).
Changes - MessageHandler & RegexHandler now consider channel_updates. - Fix command not recognized if it is directly followed by a newline (PR #869). - Removed Bot._message_wrapper (PR #822). - Unitests are now also running on AppVeyor (Windows VM). - Various unitest improvements. - Documentation fixes.
Released 2017-09-01
New features
- Fully support Bot Api 3.3 (PR #806).
- DispatcherHandlerStop (see docs).
- Regression fix for text_html & text_markdown (PR #777).
- Added effective_attachment to message (PR #766).
Non backward compatible changes
- Removed Botan support from the library (PR #776).
- Fully support Bot Api 3.3 (PR #806).
- Remove de_json() (PR #789).
Changes
- Sane defaults for tcp socket options on linux (PR #754).
- Add RESTRICTED as constant to ChatMember (PR #761).
- Add rich comparison to CallbackQuery (PR #764).
- Fix get_game_high_scores (PR #771).
- Warn on small con_pool_size during custom initalization of Updater (PR #793).
- Catch exceptions in error handlerfor errors that happen during polling (PR #810).
- For testing we switched to pytest (PR #788).
- Lots of small improvements to our tests and documentation.
Released 2017-07-28
- Fix TypeError exception in RegexHandler (PR #751).
- Small documentation fix (PR #749).
Released 2017-07-25
- Fully support Bot API 3.2.
- New filters for handling messages from specific chat/user id (PR #677).
- Add the possibility to add objects as arguments to send_* methods (PR #742).
- Fixed download of URLs with UTF-8 chars in path (PR #688).
- Fixed URL parsing for
Messagetext properties (PR #689). - Fixed args dispatching in
MessageQueue's decorator (PR #705). - Fixed regression preventing IPv6 only hosts from connnecting to Telegram servers (Issue #720).
- ConvesationHandler - check if a user exist before using it (PR #699).
- Removed deprecated
telegram.Emoji. - Removed deprecated
Botanimport fromutils(Botanis still available throughcontrib). - Removed deprecated
ReplyKeyboardHide. - Removed deprecated
edit_messageargument ofbot.set_game_score. - Internal restructure of files.
- Improved documentation.
- Improved unitests.
2017-06-18
Released 6.1.0
- Fully support Bot API 3.0
- Add more fine-grained filters for status updates
- Bug fixes and other improvements
2017-05-29
Released 6.0.3
- Faulty PyPI release
2017-05-29
Released 6.0.2
- Avoid confusion with user's
urllib3by renaming vendoredurllib3toptb_urllib3
2017-05-19
Released 6.0.1
- Add support for
User.language_code - Fix
Message.text_htmlandMessage.text_markdownfor messages with emoji
2017-05-19
Released 6.0.0
- Add support for Bot API 2.3.1
- Add support for
deleteMessageAPI method - New, simpler API for
JobQueue- python-telegram-bot#484 - Download files into file-like objects - python-telegram-bot#459
- Use vendor
urllib3to address issues with timeouts - The default timeout for messages is now 5 seconds. For sending media, the default timeout is now 20 seconds. - String attributes that are not set are now
Noneby default, instead of empty strings - Add
text_markdownandtext_htmlproperties toMessage- python-telegram-bot#507 - Add support for Socks5 proxy - python-telegram-bot#518
- Add support for filters in
CommandHandler- python-telegram-bot#536 - Add the ability to invert (not) filters - python-telegram-bot#552
- Add
Filters.groupandFilters.private - Compatibility with GAE via
urllib3.contribpackage - python-telegram-bot#583 - Add equality rich comparision operators to telegram objects - python-telegram-bot#604
- Several bugfixes and other improvements
- Remove some deprecated code
2017-04-17
Released 5.3.1
- Hotfix release due to bug introduced by urllib3 version 1.21
2016-12-11
Released 5.3
- Implement API changes of November 21st (Bot API 2.3)
JobQueuenow supportsdatetime.timedeltain addition to secondsJobQueuenow supports running jobs only on certain days- New
Filters.replyfilter - Bugfix for
Message.edit_reply_markup - Other bugfixes
2016-10-25
Released 5.2
- Implement API changes of October 3rd (games update)
- Add
Message.edit_*methods - Filters for the
MessageHandlercan now be combined using bitwise operators (& and |) - Add a way to save user- and chat-related data temporarily
- Other bugfixes and improvements
2016-09-24
Released 5.1
- Drop Python 2.6 support
- Deprecate
telegram.Emoji - Use
ujsonif available - Add instance methods to
Message,Chat,User,InlineQueryandCallbackQuery - RegEx filtering for
CallbackQueryHandlerandInlineQueryHandler - New
MessageHandlerfilters:forwardedandentity - Add
Message.get_entityto correctly handle UTF-16 codepoints andMessageEntityoffsets - Fix bug in
ConversationHandlerwhen first handler ends the conversation - Allow multiple
Dispatcherinstances - Add
ChatMigratedException - Properly split and handle arguments in
CommandHandler
2016-07-15
Released 5.0
- Rework
JobQueue - Introduce
ConversationHandler - Introduce
telegram.constants- python-telegram-bot#342
2016-07-12
Released 4.3.4
- Fix proxy support with
urllib3when proxy requires auth
2016-07-08
Released 4.3.3
- Fix proxy support with
urllib3
2016-07-04
Released 4.3.2
- Fix: Use
timeoutparameter in all API methods
2016-06-29
Released 4.3.1
- Update wrong requirement:
urllib3>=1.10
2016-06-28
Released 4.3
- Use
urllib3.PoolManagerfor connection re-use - Rewrite
run_asyncdecorator to re-use threads - New requirements:
urllib3andcertifi
2016-06-10
Released 4.2.1
- Fix
CallbackQuery.to_dict()bug (thanks to @jlmadurga) - Fix
editMessageTextexception when receiving aCallbackQuery
2016-05-28
Released 4.2
- Implement Bot API 2.1
- Move
botanmodule totelegram.contrib - New exception type:
BadRequest
2016-05-22
Released 4.1.2
- Fix
MessageEntitydecoding with Bot API 2.1 changes
2016-05-16
Released 4.1.1
- Fix deprecation warning in
Dispatcher
2016-05-15
Released 4.1
- Implement API changes from May 6, 2016
- Fix bug when
start_pollingwithclean=True - Methods now have snake_case equivalent, for example
telegram.Bot.send_messageis the same astelegram.Bot.sendMessage
2016-05-01
Released 4.0.3
- Add missing attribute
locationtoInlineQuery
2016-04-29
Released 4.0.2
- Bugfixes
KeyboardReplyMarkupnow acceptsstragain
2016-04-27
Released 4.0.1
- Implement Bot API 2.0
- Almost complete recode of
Dispatcher - Please read the Transition Guide to 4.0
- Changes from 4.0rc1
- The syntax of filters for
MessageHandler(upper/lower cases) - Handler groups are now identified by
intonly, and ordered
- The syntax of filters for
- Note: v4.0 has been skipped due to a PyPI accident
2016-04-22
Released 4.0rc1
- Implement Bot API 2.0
- Almost complete recode of
Dispatcher - Please read the Transistion Guide to 4.0
2016-03-22
Released 3.4
- Move
Updater,DispatcherandJobQueueto newtelegram.extsubmodule (thanks to @rahiel) - Add
disable_notificationparameter (thanks to @aidarbiktimirov) - Fix bug where commands sent by Telegram Web would not be recognized (thanks to @shelomentsevd)
- Add option to skip old updates on bot startup
- Send files from
BufferedReader
2016-02-28
Released 3.3
- Inline bots
- Send any file by URL
- Specialized exceptions:
Unauthorized,InvalidToken,NetworkErrorandTimedOut - Integration for botan.io (thanks to @ollmer)
- HTML Parsemode (thanks to @jlmadurga)
- Bugfixes and under-the-hood improvements
Very special thanks to Noam Meltzer (@tsnoam) for all of his work!
2016-01-09
Released 3.3b1
- Implement inline bots (beta)
2016-01-05
Released 3.2.0
- Introducing
JobQueue(original author: @franciscod) - Streamlining all exceptions to
TelegramError(Special thanks to @tsnoam) - Proper locking of
UpdaterandDispatcherstartandstopmethods - Small bugfixes
2015-12-29
Released 3.1.2
- Fix custom path for file downloads
- Don't stop the dispatcher thread on uncaught errors in handlers
2015-12-21
Released 3.1.1
- Fix a bug where asynchronous handlers could not have additional arguments
- Add
groupsandgroupdictas additional arguments for regex-based handlers
2015-12-16
Released 3.1.0
- The
chat-field inMessageis now of typeChat. (API update Oct 8 2015) Messagenow contains the optional fieldssupergroup_chat_created,migrate_to_chat_id,migrate_from_chat_idandchannel_chat_created. (API update Nov 2015)
2015-12-08
Released 3.0.0
- Introducing the
UpdaterandDispatcherclasses
2015-11-11
Released 2.9.2
- Error handling on request timeouts has been improved
2015-11-10
Released 2.9.1
- Add parameter
network_delayto Bot.getUpdates for slow connections
2015-11-10
Released 2.9
- Emoji class now uses
bytes_to_native_strfromfuture3rd party lib - Make
user_fromoptional to work with channels - Raise exception if Telegram times out on long-polling
Special thanks to @jh0ker for all hard work
2015-10-08
Released 2.8.7
- Type as optional for
GroupChatclass
2015-10-08
Released 2.8.6
- Adds type to
UserandGroupChatclasses (pre-release Telegram feature)
2015-09-24
Released 2.8.5
- Handles HTTP Bad Gateway (503) errors on request
- Fixes regression on
AudioandDocumentfor unicode fields
2015-09-20
Released 2.8.4
getFileandFile.downloadis now fully supported
2015-09-10
Released 2.8.3
- Moved
Bot._requestURLto its own class (telegram.utils.request) - Much better, such wow, Telegram Objects tests
- Add consistency for
strproperties on Telegram Objects - Better design to test if
chat_idis invalid - Add ability to set custom filename on
Bot.sendDocument(..,filename='') - Fix Sticker as
InputFile - Send JSON requests over urlencoded post data
- Markdown support for
Bot.sendMessage(..., parse_mode=ParseMode.MARKDOWN) - Refactor of
TelegramErrorclass (no more handlingIOErrororURLError)
2015-09-05
Released 2.8.2
- Fix regression on Telegram ReplyMarkup
- Add certificate to
is_inputfilemethod
2015-09-05
Released 2.8.1
- Fix regression on Telegram objects with thumb properties
2015-09-04
Released 2.8
- TelegramError when
chat_idis empty for send* methods setWebhooknow supports sending self-signed certificate- Huge redesign of existing Telegram classes
- Added support for PyPy
- Added docstring for existing classes
2015-08-19
Released 2.7.1
- Fixed JSON serialization for
message
2015-08-17
Released 2.7
- Added support for
Voiceobject andsendVoicemethod - Due backward compatibility performer or/and title will be required for
sendAudio - Fixed JSON serialization when forwarded message
2015-08-15
Released 2.6.1
- Fixed parsing image header issue on < Python 2.7.3
2015-08-14
Released 2.6.0
- Depreciation of
require_authenticationandclearCredentialsmethods - Giving
AUTHORSthe proper credits for their contribution for this project Message.dateandMessage.forward_dateare nowdatetimeobjects
2015-08-12
Released 2.5.3
telegram.Botnow supports to be unpickled
2015-08-11
Released 2.5.2
- New changes from Telegram Bot API have been applied
telegram.Botnow supports to be pickled- Return empty
strinsteadNonewhenmessage.textis empty
2015-08-10
Released 2.5.1
- Moved from GPLv2 to LGPLv3
2015-08-09
Released 2.5
- Fixes logging calls in API
2015-08-08
Released 2.4
- Fixes
Emojiclass for Python 3 PEP8improvements
2015-08-08
Released 2.3
- Fixes
ForceReplyclass - Remove
logging.basicConfigfrom library
2015-07-25
Released 2.2
- Allows
debug=Truewhen initializingtelegram.Bot
2015-07-20
Released 2.1
- Fix
to_dictforDocumentandVideo
2015-07-19
Released 2.0
- Fixes bugs
- Improves
__str__overto_json() - Creates abstract class
TelegramObject
2015-07-15
Released 1.9
- Python 3 officially supported
PEP8improvements
2015-07-12
Released 1.8
- Fixes crash when replying an unicode text message (special thanks to JRoot3D)
2015-07-11
Released 1.7
- Fixes crash when
usernameis not defined onchat(special thanks to JRoot3D)
2015-07-10
Released 1.6
- Improvements for GAE support
2015-07-10
Released 1.5
- Fixes randomly unicode issues when using
InputFile
2015-07-10
Released 1.4
requestslib is no longer required- Google App Engine (GAE) is supported
2015-07-10
Released 1.3
- Added support to
setWebhook(special thanks to macrojames)
2015-07-09
Released 1.2
CustomKeyboardclasses now available- Emojis available
PEP8improvements
2015-07-08
Released 1.1
- PyPi package now available
2015-07-08
Released 1.0
- Initial checkin of python-telegram-bot