* Commandhandler reworked
* Make CommandHandler strict
Only register valid botcommands, else raise ValueError
* Add PrefixHandler
* declare encoding on test_commandhandler
* Fix some tests dependend on CommandHandler
* CR changes
* small docfix.
* Test all possibilities for PrefixHandler
See https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-11.0 under Context based callbacks and Filters in handlers for a good guide on the changes in this commit.
* Change handlers so context is supported
* Attempt to make parameter "guessing" work on py < 3.5
* Document use_context in all handlers
* Add Context to docs
* Minor fixes to context handling
* Add tests for context stuff
* Allow the signature check to work on py<3.5 with methods
* Fix order of operations
* Address most issues raised in CR
* Make CommandHandler no longer support filter lists
* Fix indent
(pycharm can be an arse sometimes)
* Improve readability in conversationhandler
* Make context have Match instead of groups & groupdict
* Remove filter list support from messagehandler too
* Small fix to StringCommandHandler
* More small fixes to handlers
* Amend CHANGES
* Fix tests and fix bugs raised by tests
* Don't allow users to ignore errors without messing with the warning filters themselves
* Ignore our own deprecation warnings when testing
* Skipping deprecationwarning test on py2
* Forgot some changes
* Handler: Improved documentation and text of deprecation warnings
* HandlerContext: Keep only dispatcher and use properties; improved doc
* Complete fixing the documentation.
- Fixes per Eldinnie's comments.
- Fixes per warnings when running sphinx.
* Some small doc fixes (interlinks and optionals)
* Change add_error_handler to use HandlerContext too
* More context based changes
Context Based Handlers -> Context Based Callbacks
No longer use_context args on every single Handler
Instead set dispatcher/updater .use_context=True to use
Works with
- Handler callbacks
- Error handler callbacks
- Job callbacks
Change examples to context based callbacks so new users are not confused
Rename and move the context object from Handlers.HandlerContext to CallbackContext, since it doesn't only apply to handlers anymore.
Fix tests by adding a new fixture `cpd` which is a dispatcher with use_context=True
* Forgot about conversationhandler
* Forgot jobqueue
* Add tests for callbackcontext & for context based callback job
* Fix as per review :)
* Added extra Filters for File Type and Category
Added extra Filters for File Type and Category, based on the provided Mime-Type
* Added tests for the new Filters
Added Tests for the Category and File Types Filters.
* Fixed Tests
Fixed the Tests from the last commit
* Little Fix
* Revert of unwanted changes
* Update filters.py
* Changed the strings
* Changed file_type to mime_type
* Fixed Tests
* Fix conversationhandler
As found by @nmlorg and described in #1031closes#1031
* adding another test and definitely finish conversationhandler
It seems another problem was when the job executed the timeout, it wasn;t removed from `self.conversation_timeouts` which made it still fail because job would be present in the handler dict, although it was already disabled.
This should fix it properly.
TimedOut exception is an expected an normal event. To reduce noise and
make things more "fluent" we now:
- Make sure that we don't sleep after the timeout but rather retry
immediately.
- Log debug instead of error level.
Fixes#802
* 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
- Fix JobQueue.jobs to obtain a lock on the internal queue object prior
to iterating over it.
- Rename JobQueue.queue to JobQueue._queue. This shouldn't be
accessible by the user directly, but rather only with sanitized
thread safe methods.
- JobQueue.interval_seconds - access self.interval only once to avoid
race conditions.
Fixes#968
The idea was nice, but it really complicated things for us and for the
user.
If a user wants to run more than one handler on an update, he can put
the handlers in different groups or he can have a single handler.
If a user wants to have multiple handlers in the same group which only
one of them should run on the update, he should use check_update().
Since we haven't released this code yet, there's no problem with
backward compatability.
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().
So just remove it for now. Better than doing annoying stuff with parsing a **kwargs dict in my opinion. It didn't even *really* need to be kwarg only anyways I guess...
* Rename shortcut functions to snake_case
* More function renaming
* Example function rewrite
* Add myself to authors.rst
* More function renaming
* Rename mockbot test functions
* Break comment line for flake max line length
* add support for User.language_code
* Add language filter
Useful is you wanna do something like restrict your shop to a single or a few locales or something like that.
* Allow edited as seperate input
In short made it possible to tune messagehandler more to your wishes. and choose exactly what updates to receive. messages, edited_message or channel_post or a combination.
- Added the edited_updates argument to MessageHandler
- Added DepricationWarning when using allow_edited
- replaced _is_allowed_message and _is_allowed_channel_post with _is_allowed_update
- Modified tests to reflect new way
* oops
Spelled deprecation wrong
made an error in the _is_allowed_update.
* Python 2 does not have assertWarns.
* remove unneeded statements
* Improved CommandHandler
Now you can pass list of commands instead of one command
* Added tests for list of commands
* Return backward compatibility
Renamed `commands` to `command` in CommandHandler
* Added test for a command not in the list
* Fixed py2 unicode command support in `CommandHandler`
* Fix Bug #571
ConversationHandler will not process CallbackQuery if per_chat=True and
the CallbackQuery has no message attached to it (as is the case with
buttons on inline results)
* Adds test case for CallbackQuery without Chat
* Introduce MessageQueue
* minor documentation and terminology fixes according to the review
* minor documentation and terminology fixes according to the review
* minor documentation and terminology fixes according to the review
* pep8 fix
* conversationhandler.py: add per_chat, per_user and per_message
* test_conversationhandler.py: test case per_user=False
* test_conversationhandler.py: add test for callbackqueryhandlers
* ✏️ Fix accidental typo in logging format
* stripping token of whitespaces before starting bot
* Line feed
* CommandHandler checks if message is for this bot
* CommandHandler checks if message is for this bot
- Added tests
* Fixed tests in test_conversationHandler to work with new commandhandler structure
* type in conversationhandler test
* Added methods to generate the original markdown/html formatted string from the entities contained in an update
* Added
* Moved the html/markdown parsing methods to `Message`
* Moved extract_* methods from helpers to the appropriate location
* Refactored text_markdown and text_html
* Refactored text_markdown and text_html for efficiency
* Fixed method call in conversationhandler
* Fixed method call in handler
* Fixed `make test` command on windows systems
* Improved method documentation