- Pyrogram core is now fully asynchronous
- Ditched Python 3.5, welcome 3.6 as minimum version.
- Moved all types to pyrogram.types
- Turned the Filters class into a module (filters)
- Moved all filters to pyrogram.filters
- Moved all handlers to pyrogram.handlers
- Moved all emoji to pyrogram.emoji
- Renamed pyrogram.api to pyrogram.raw
- Clock is now synced with server's time
- Telegram schema updated to Layer 117
- Greatly improved the TL compiler (proper type-constructor hierarchy)
- Added "do not edit" warning in generated files
- Crypto parts are executed in a thread pool to avoid blocking the event loop
- idle() is now a separate function (it doesn't deal with Client instances)
- Async storage, async filters and async progress callback (optional, can be sync too)
- Added getpass back, for hidden password inputs
* support for both sync and async filters
* Add whitespace for readability
* moving to handler.check for coroutine function
Ref: https://github.com/pyrogram/pyrogram/pull/437#discussion_r451626488
* add last line
Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
* fix for new format
This fixes the `AttributeError: 'PeerUser' object has no attribute 'channel_id'`.
Maybe we should also have a method to show nearby users?
* Update get_nearby_chats.py
Use isinstance instead of type
Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
* Add support for compiled patterns in Filters.regex and remove extra whitespaces
* Update filters.py
Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>
* Add message.link attribute
Adds the functionality to access the message link.
Either as `t.me/c/` or `t.me/username` format.
* Change message.link logic
Property now has a returned type, list is a tuple and
we use `utils.get_channel_id` to not rely on str.replace
* Update message.py
- Prepend https:// like official clients do
- Use .format()
Co-authored-by: Dan <14043624+delivrance@users.noreply.github.com>