* 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
* 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
It would seem that length is no longer incorrectly required so that's good
However they stopped sending the file_size when you send via a file_id which is a bit odd
* 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`
* 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
* 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
* 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 :)
* Adding timeunit and day support to the jobqueue
* Adding tests
* Changed the file permission back to 644.
* Changed AssertEqual argument order to (actual, expectd).
* Removed the TimeUnit enum and unit param, instead use datetime.time for interval.
* Removing the TimeUnits enum and unit param in favour of optionally using a datetime.time as the interval.
* Removing the TimeUnits enumeration, forgot the remove it in the last one.
* Removed some old docstrings refering to the TimeUnits enum.
* Removed the old TimeUnits import.
* Adding some error handling for the 'days' argument (only a 'tuple' with 'Days')
* Writing the error message directly in the exception.
* Moving a debug statement wrongfully saying a job would be running on days it wouldn't.
* Writing error messages directly in the exceptions instead of making an extra variable.
* Replacing datetime.time in favour of datetime.timedelta because of the get_seconds() method.
* Adding error handling for the method .
* Splitting the tests up in multiple ones, no float test because I haven't found a reliable way to test it.
* Excluding .exrc file.
* Removing \ at EOF of ValueError.
* Replacing Enums with plain new-style classes.
* Using numbers.number to check for ints/floats instead of seperate int/float checks.
* Fixing typo, number -> Number.
* Changed lower_case Days attributes to UPPER_CASE.
* Different formatting for Days class, removed the get_days function in favour of a tuple.
* Removed redundant function get_days.
* Edited the docstring for next_t to also take datetime.timedelta.
* Removed for-loop in favour of any().
* Changed docstring for interval.
* Removed debug print.
* Changing some docstrings.
* Changing some docstrings (again).