* update_filter attribute on filters
Makes it possible to have filters work on an update instead of message, while keeping behavior for current filters
* add update_type filter
* Messagehandler rework
- remove allow_edited (deprecated for a while)
- set deprecated defaults to None
- Raise deprecation warning when they're used
- add sensible defaults for filters.
- rework tests
* Commandhandler rework
* Remove deprecation test from new handler
* Some tweaks per CR
- rename update_types -> updates
- added some clarification to docstrings
* run webhook set test only on 3.6 on appveyor
* update_filter attribute on filters
Makes it possible to have filters work on an update instead of message, while keeping behavior for current filters
* add update_type filter
* Messagehandler rework
- remove allow_edited (deprecated for a while)
- set deprecated defaults to None
- Raise deprecation warning when they're used
- add sensible defaults for filters.
- rework tests
* Commandhandler rework
* Remove deprecation test from new handler
* Some tweaks per CR
- rename update_types -> updates
- added some clarification to docstrings
* run webhook set test only on 3.6 on appveyor
* Changes per CR
* Update travis to build v12
* small doc update
* try to make ci build version branches
* doc for BaseFilter
* Modify regexfilter and mergedfilter
Now returns a list of match objects for every regexfilter
* Change callbackcontext (+ docs)
* integrate in CommandHandler and PrefixHandler
* integrate in MessageHandler
* cbqhandler, iqhandler and srhandler
* make regexhandler a shell over MessageHandler
And raise deprecationWarning on creation
* clean up code and add some comments
* Rework based on internal group feedback
- use data_filter instead of regex_filter on BaseFilter
- have these filters return a dict that is then updated onto CallbackContext instead of using a list is before
- Add a .match property on CallbackContext that returns .matches[0] or None
* Fix and add test for callbackcontext.match
* Lots of documentation fixes and improvements [ci skip]
* Remove message decorator to fix default timeouts.
* Make message wrapper method private.
* Make tests pass
* Fix callbackquery shortcuts
Closes#1180
* Fix callbackquery shortcut tests
* Fix merge
* Address CR
* Add missing default timeout=20 for some bot file uploads
* Fix wrong return value in convhandler
Probably stems from a combination of bad merge plus quickly merged hacktoberfest PR.
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 is automagically decrypted when you specify your private key when creating Updater or Bot.
- PassportFiles is also automagically decrypted as you download/retrieve them.
- 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)
Co-authored-by: Jasmin Bom <jsmnbom@gmail.com>
Co-authored-by: code1mountain <32801117+code1mountain@users.noreply.github.com>
Co-authored-by: Eldinnie <pieter.schutz+github@gmail.com>
Co-authored-by: mathefreak1 <mathefreak@hi2.in>
* Added support for new field `telegram.Message.connected_message`
* Added support for new field `telegram.Message.connected_message`
* Added support for parse_mode in captions
* Added parse_mode parameter for captions in InlineQueryResult*
* Added supports_streaming parameter in telegram.Bot.send_video and telegram.InputMediaVideo
Fixed Docstrings for parse_mode in captions
* pypy3.5 unitests are now running with a new version due internal errors on travis.
closes#1005
* add support for 3.5 api
* removed "unused" import by accident
* Hardcoded values
Appearantly TG decided to change the size of a send image (again)
* test_official
* Improve coverage
* Finishing up
* spelling error
* pytest fixed tot < than 3.3 for python 3.3 support
* flake8
* rollback requirements
* as per CR
* object for provider_data
Make it possible to send an object that will be json-serialized for send_invoice + tests
* shorten error message
* using string_types
Required fixes:
- CallbackQuery is now comparable.
- Message.effective_attachment, Message.photo,
Message.new_chat_members, Message.new_chat_photo &
Game.text_entitties semantic fixes - when they are not defined,
return an empty list.
- Docstring fix to Update class.
- Added all the new and shiny features from API 3.1.
- Not API 3.1 changes:
- Use future.utils.string_types for string isinstance checks.
- Stall between retries of test_set_webhook_get_webhook_info() &
test_delete_webhook().
* Clean up Bot code a bit
- Move decorators to module. It really wasn't clear how decorators inside classes work, and why they didn't have a self parameter, but still wasn't static. This also makes them effectively private without having to underscore them, which I think we should have done long time ago atm. Note that this might break backwards compatibility slightly (only if people are daft enough to have used the decorators themselves)
- Don't call _message_wrapper directly. Ever. Instead always use the message decorator, since it's what it's there for. Closes#627
- Don't use the message decorator if the method isn't supposed to return a message. The decorator could handle values like True (which is often the return value), but to someone reading the code, it seems like it's a message returning method even when it wasn't.
- Always document timeout and **kwargs
- Log all methods
* Add test to make sure timeout propagates properly despite decorators
* Implemented `Bot.delete_message()` and `Message.delete()` methods
* Added tests for `Bot.delete_message()` and `Messsage.delete()`
* Added myself to `AUTHORS.rst`
* Using `assertRaisesRegexp` instead of `assertRaisesRegex` in tests
Now tests can run on Python 2.7 without raising 'AttributeError'
* Fix docstring
Added a warning to the docstring describing that this method is undocumented and not guaranteed to work
* New fields channel_post and edited_channel_post for Update
refs #468
* setGameScore() changes
- Changed behaviour: messages with high scores will be update with new
high scores by default. (documentation fix)
- Use (new) disable_edit_message in setGameScore to disable the above new
behaviour.
- The edit_message parameter from setGameScore is no longer in use. For
backward compatibility, it will be taken into account for a while,
unless disable_edit_message is passed explicitly.
refs #468
* New field forward_from_message_id for Message.
refs #468
* New parameter cache_time for answerCallbackQuery
refs #468
* replykeyboardhide renamed to replykeyboardremove
refs #468
* Unitests for updated setGameScore semantics
refs #468
* Backward compatibility for ReplyKeyboardHide
refs #468
* Fix docstrings of wrapper methods in Message
* Unitest new field forward_from_message_id of Message
refs #468
* Fix testMaxCaptionLength
Telegram servers changed their behaviour - now they truncate a long
caption instead of returning an error.
* MessageHandler: Added support for channel posts
* Fix flake8 complaints in a manner which yapf will like it too.
* fix rst markup
* Fix telegram API change, returning '404 Not found' with raising own TelegramError rather native exception
* Change exception to InvalidToken in test and request util
* Added myself to AUTHORS. Thx for appreciation :)
* fixes broken test with PhotoSize, Game and Animation
However:
testSendGame and test_set_game_score both produces *BadRequest: u'Wrong file identifier/HTTP URL specified'*.
* fixes test_set_game_score
* adds to_dict method to Game to prevent extra collection type checks in base.TelegramObject
Still need setGameScore (I'm thinking we can set it to the ever increasing
envvar 'TRAVIS_BUILD_NUMBER') and getGameHighScores.
The tests currently don't work... Since I don't really understand how
PhotoSize works... Please halp :P
* Create a Request class which maintains its own connection pool
* When creating a Bot instance a new Request instance will be created if one wasn't supplied.
* Updater is responsible for creating a Request instance if a Bot instance wasn't provided.
* Dispatcher: add method to run async functions without decorator
* Dispatcher can now run as a singleton (allowing run_async decorator to work) as it always did and as multiple instances (where run_async decorator will raise RuntimeError)