v2 is still not complete. A lot of cleanup still needs to be done.
In particular, entities still need some care. However, most of it
is there, and keeping up with two branches is annoying.
This also lets me close a lot of issues to reduce noise
and focus on the important ones.
Closes#354 (input entities have been reworked).
Closes#902 (sessions were overhauled).
Closes#1125, #3253, #1589, #1634, #3150, #3668 (updates are reworked, gaps are properly handled now).
Closes#1169 (2.0 is now merged).
Closes#1311 (proper usage should not trigger this issue on the reworked connection code).
Closes#1327 (there have been some stringify changes).
Closes#1330 (gaps are now detected).
Closes#1366 (sessions are now async).
Closes#1476, #1484 (asyncio open connection is no longer used).
Closes#1529 (commonmark is now used).
Closes#1721 (update gaps are now properly handled).
Closes#1724 (a gap that fixes this will eventually trigger).
Closes#3006 (force_sms is gone).
Closes#3041 (a clean implementation to get difference now exists).
Closes#3049 (commonmark is now used).
Closes#3111 (to_dict has changed).
Closes#3117 (SMS is no longer an option).
Closes#3171 (connectivity bug is unlikely to be a bug in the library).
Closes#3206 (Telethon cannot really fix broken SSL).
Closes#3214, #3257, #3661 (not enough information).
Closes#3215 (this had already been fixed).
Closes#3230, #3674 (entities were reworked).
Closes#3234, #3238, #3245, #3258, #3264 (the layer has been updated).
Closes#3242 (bot-API file IDs have been removed).
Closes#3244 (the error is now documented).
Closes#3249 (errors have been reworked).
* Apply code corrections for the new layer types.
* Support not passing `user` to `get_permissions`.
* `download_profile_photo` now supports `MessageService`.
* `thumb` in send and edit message.
* Document new known errors.
Because an integer was being passed where a TLObject was expected,
so the serialization with bytes() was actually requesting that many
bytes as opposed to properly converting the expected object.
Only the uses of `isinstance` against `InputPeer*` types were
reviewed. Notably, `utils` is exempt on this because it needs
to deal with everything on a case-by-case basis.
Since the addition of `*FromMessage` peers, any manual `isinstance`
checks to determine the type were prone to breaking or being
forgotten to be updated, so a common `helpers._entity_type()`
method was made to share this logic.
Since the conversion to `Peer` would be too expensive, a simpler
check against the name is made, which should be fast and cheap.