-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat adding async session support #4244
Conversation
Parts of v1 rely on the session being sync. v2 already has async sessions. |
First of all, thank you for this amazing repository. Isn't everything covered in this PR for v1? |
I appreciate the kind words and apologize if the response was harsh. This used to use the session: Telethon/telethon/tl/custom/sendergetter.py Lines 74 to 75 in 6ccd6b0
I guess at some point I changed it.
I would need to check. But I have no plans to keep adding features to v1 regardless. v1 is pretty much feature-frozen (and has been for months if not years, perhaps except for a few things that slipped by). It is true this might not have been clear from the repository alone, but it has been my stance for a while. v2 does not have an estimated date, but it is the way going forward. v1 will continue receiving bug fixes for a while until I eventually get tired of doing so. |
Should prevent efforts like #4244 going to waste in the future.
Seems fair. I'll be watching this repository closely. But since I can't contribute to v1 I'll wait on somewhat stable v2 Thank you once again |
I've been using this fork for the last 2 weeks and had no issues. We had a significantly performance increase with it |
* Change bug report template to an issue form Lifted from Tachiyomi and adapted for Telethon. See: https://github.com/tachiyomiorg/tachiyomi/blob/master/.github/ISSUE_TEMPLATE/report_issue.yml * Change feature request template to an issue form * Add dedicated form for documentation issues * Update some fields in the GH issue template * Fix comment_to for a group of messages (LonamiWebs#4120) * Clarify OS field in bug report template * Handle CancelledError inside mtprotosender recv loop * Add missing formatting arg in logging call Noticed in LonamiWebs#4123. * Document more RPC errors (LonamiWebs#4127) * Support most usernames in VALID_USERNAME_RE See LonamiWebs#4128. * Fix lack of support for anon channel restrictions (LonamiWebs#4130) * Improve error message when trying to delete inline messages Closes LonamiWebs#4129. * Change html.unparse logic to mimic markdown's It was overcomplicated and had some subtle bugs. Closes LonamiWebs#4133. * Update to layer 160 * Fix reply_to can be optional * Fix _get_thumb failed when document had no thumbs * Remove client-side checks when editing permissions The server should instead fail with proper RPC errors, as the rules could change any time (and the local checks get out of date). * Handle sqlite3.OperationalError in update loop * Handle FloodWaitError in update loop Likely temporary server issues, since getDifference should realistically not fail with flood waits. In any case, stopping early until the problem is resolved is the correct approach. * Don't attempt thumb download if there is no thumb * Disable blank issues in GitHub (LonamiWebs#4157) * Bump to v1.29.0 * Fix handling of UpdateShortSentMessage * Improve image compression heuristics and algorithm used (LonamiWebs#4158) * Fix reply_to when sending albums * Sort tlobjects before generating their listing (LonamiWebs#4163) * Don't treat asyncio.IncompleteReadError as unhandled The library will behave the same, but the log severity is lowered. * Except all types of timeout error Closes LonamiWebs#4172. * Return marked ID from MemorySession.get_entity_rows_by_id (LonamiWebs#4177) Otherwise the unpacking done later won't work. * Fix `is_inline` check for `KeyboardButtonWebView` (LonamiWebs#4183) * Make MessageBox trace logs more useful * Fix getting_diff_for with empty set was being spammed Because the above check used >= but the inner check >. * Further improve MessageBox trace logging * Only update seq if pts changed This solves UpdateChatParticipant being missed after UpdateChat, which seems to reliable occur when a bot is in a Chat that gets deleted. * Change apply_deadlines_reset micro-optimization No need for buffer reuse in Python. It simply complicates the code. And even then it was not as optimal as it could. * Update to layer 161 Closes LonamiWebs#4184. * Fix incorrect param type in apply_channel_difference (LonamiWebs#4185) * Fix date empty (LonamiWebs#4191) * Remove client-side check in message.edit (LonamiWebs#4195) Fixes LonamiWebs#4193. * Update to layer 162 * Bump to v1.30 * Fix generator for pypy (LonamiWebs#4198) * Fix invalid date type in UpdateShort * Fix date empty when getting difference * Fixed sorting of markup entities with the same offsets (LonamiWebs#4201) * Remove uses of imghdr It's deprecated. Closes LonamiWebs#4207. * Update to layer 164 * Update to layer 165 * Update to v1.31 * Fix file name could be lost when uploading files Leading to invalid extension when sending photos. * Update to layer 166 * Fix init of custom Draft after layer update * Bump to v1.32 * Add PR template mentioning v1 is feature-frozen Should prevent efforts like LonamiWebs#4244 going to waste in the future. * Force filename with JPG extension after resizing Old name does not matter, since we just encoded it as JPEG * Retry on TimedOutError (LonamiWebs#4255) * Conditional webbrowser import (LonamiWebs#4261) * Update to layer 167 * Bump to v1.33 * Prioritise closing tags when sorting tags * Fix ordering of nested entities * Bump to v1.33.1 * 'Refactored by Sourcery' --------- Co-authored-by: novenary <[email protected]> Co-authored-by: Lonami <[email protected]> Co-authored-by: iamilya <[email protected]> Co-authored-by: Devesh Pal <[email protected]> Co-authored-by: rozha <[email protected]> Co-authored-by: novenary <[email protected]> Co-authored-by: Nick80835 <[email protected]> Co-authored-by: Bernhard M. Wiedemann <[email protected]> Co-authored-by: Kacnep89 <[email protected]> Co-authored-by: misuzu <[email protected]> Co-authored-by: Shubham Kumar <[email protected]> Co-authored-by: Non <[email protected]> Co-authored-by: Dingyuan Wang <[email protected]> Co-authored-by: Alexander Goryushkin <[email protected]> Co-authored-by: mario-ttide <[email protected]> Co-authored-by: Balázs Triszka <[email protected]> Co-authored-by: udf <[email protected]> Co-authored-by: Sourcery AI <>
* Change bug report template to an issue form Lifted from Tachiyomi and adapted for Telethon. See: https://github.com/tachiyomiorg/tachiyomi/blob/master/.github/ISSUE_TEMPLATE/report_issue.yml * Change feature request template to an issue form * Add dedicated form for documentation issues * Update some fields in the GH issue template * Fix comment_to for a group of messages (LonamiWebs#4120) * Clarify OS field in bug report template * Handle CancelledError inside mtprotosender recv loop * Add missing formatting arg in logging call Noticed in LonamiWebs#4123. * Document more RPC errors (LonamiWebs#4127) * Support most usernames in VALID_USERNAME_RE See LonamiWebs#4128. * Fix lack of support for anon channel restrictions (LonamiWebs#4130) * Improve error message when trying to delete inline messages Closes LonamiWebs#4129. * Change html.unparse logic to mimic markdown's It was overcomplicated and had some subtle bugs. Closes LonamiWebs#4133. * Update to layer 160 * Fix reply_to can be optional * Fix _get_thumb failed when document had no thumbs * Remove client-side checks when editing permissions The server should instead fail with proper RPC errors, as the rules could change any time (and the local checks get out of date). * Handle sqlite3.OperationalError in update loop * Handle FloodWaitError in update loop Likely temporary server issues, since getDifference should realistically not fail with flood waits. In any case, stopping early until the problem is resolved is the correct approach. * Don't attempt thumb download if there is no thumb * Disable blank issues in GitHub (LonamiWebs#4157) * Bump to v1.29.0 * Fix handling of UpdateShortSentMessage * Improve image compression heuristics and algorithm used (LonamiWebs#4158) * Fix reply_to when sending albums * Sort tlobjects before generating their listing (LonamiWebs#4163) * Don't treat asyncio.IncompleteReadError as unhandled The library will behave the same, but the log severity is lowered. * Except all types of timeout error Closes LonamiWebs#4172. * Return marked ID from MemorySession.get_entity_rows_by_id (LonamiWebs#4177) Otherwise the unpacking done later won't work. * Fix `is_inline` check for `KeyboardButtonWebView` (LonamiWebs#4183) * Make MessageBox trace logs more useful * Fix getting_diff_for with empty set was being spammed Because the above check used >= but the inner check >. * Further improve MessageBox trace logging * Only update seq if pts changed This solves UpdateChatParticipant being missed after UpdateChat, which seems to reliable occur when a bot is in a Chat that gets deleted. * Change apply_deadlines_reset micro-optimization No need for buffer reuse in Python. It simply complicates the code. And even then it was not as optimal as it could. * Update to layer 161 Closes LonamiWebs#4184. * Fix incorrect param type in apply_channel_difference (LonamiWebs#4185) * Fix date empty (LonamiWebs#4191) * Remove client-side check in message.edit (LonamiWebs#4195) Fixes LonamiWebs#4193. * Update to layer 162 * Bump to v1.30 * Fix generator for pypy (LonamiWebs#4198) * Fix invalid date type in UpdateShort * Fix date empty when getting difference * Fixed sorting of markup entities with the same offsets (LonamiWebs#4201) * Remove uses of imghdr It's deprecated. Closes LonamiWebs#4207. * Update to layer 164 * Update to layer 165 * Update to v1.31 * Fix file name could be lost when uploading files Leading to invalid extension when sending photos. * Update to layer 166 * Fix init of custom Draft after layer update * Bump to v1.32 * Add PR template mentioning v1 is feature-frozen Should prevent efforts like LonamiWebs#4244 going to waste in the future. * Force filename with JPG extension after resizing Old name does not matter, since we just encoded it as JPEG * Retry on TimedOutError (LonamiWebs#4255) * Conditional webbrowser import (LonamiWebs#4261) * Update to layer 167 * Bump to v1.33 * Prioritise closing tags when sorting tags * Fix ordering of nested entities * Bump to v1.33.1 * 'Refactored by Sourcery' --------- Co-authored-by: novenary <[email protected]> Co-authored-by: Lonami <[email protected]> Co-authored-by: iamilya <[email protected]> Co-authored-by: Devesh Pal <[email protected]> Co-authored-by: rozha <[email protected]> Co-authored-by: novenary <[email protected]> Co-authored-by: Nick80835 <[email protected]> Co-authored-by: Bernhard M. Wiedemann <[email protected]> Co-authored-by: Kacnep89 <[email protected]> Co-authored-by: misuzu <[email protected]> Co-authored-by: Shubham Kumar <[email protected]> Co-authored-by: Non <[email protected]> Co-authored-by: Dingyuan Wang <[email protected]> Co-authored-by: Alexander Goryushkin <[email protected]> Co-authored-by: mario-ttide <[email protected]> Co-authored-by: Balázs Triszka <[email protected]> Co-authored-by: udf <[email protected]> Co-authored-by: Sourcery AI <>
* Change bug report template to an issue form Lifted from Tachiyomi and adapted for Telethon. See: https://github.com/tachiyomiorg/tachiyomi/blob/master/.github/ISSUE_TEMPLATE/report_issue.yml * Change feature request template to an issue form * Add dedicated form for documentation issues * Update some fields in the GH issue template * Fix comment_to for a group of messages (LonamiWebs#4120) * Clarify OS field in bug report template * Handle CancelledError inside mtprotosender recv loop * Add missing formatting arg in logging call Noticed in LonamiWebs#4123. * Document more RPC errors (LonamiWebs#4127) * Support most usernames in VALID_USERNAME_RE See LonamiWebs#4128. * Fix lack of support for anon channel restrictions (LonamiWebs#4130) * Improve error message when trying to delete inline messages Closes LonamiWebs#4129. * Change html.unparse logic to mimic markdown's It was overcomplicated and had some subtle bugs. Closes LonamiWebs#4133. * Update to layer 160 * Fix reply_to can be optional * Fix _get_thumb failed when document had no thumbs * Remove client-side checks when editing permissions The server should instead fail with proper RPC errors, as the rules could change any time (and the local checks get out of date). * Handle sqlite3.OperationalError in update loop * Handle FloodWaitError in update loop Likely temporary server issues, since getDifference should realistically not fail with flood waits. In any case, stopping early until the problem is resolved is the correct approach. * Don't attempt thumb download if there is no thumb * Disable blank issues in GitHub (LonamiWebs#4157) * Bump to v1.29.0 * Fix handling of UpdateShortSentMessage * Improve image compression heuristics and algorithm used (LonamiWebs#4158) * Fix reply_to when sending albums * Sort tlobjects before generating their listing (LonamiWebs#4163) * Don't treat asyncio.IncompleteReadError as unhandled The library will behave the same, but the log severity is lowered. * Except all types of timeout error Closes LonamiWebs#4172. * Return marked ID from MemorySession.get_entity_rows_by_id (LonamiWebs#4177) Otherwise the unpacking done later won't work. * Fix `is_inline` check for `KeyboardButtonWebView` (LonamiWebs#4183) * Make MessageBox trace logs more useful * Fix getting_diff_for with empty set was being spammed Because the above check used >= but the inner check >. * Further improve MessageBox trace logging * Only update seq if pts changed This solves UpdateChatParticipant being missed after UpdateChat, which seems to reliable occur when a bot is in a Chat that gets deleted. * Change apply_deadlines_reset micro-optimization No need for buffer reuse in Python. It simply complicates the code. And even then it was not as optimal as it could. * Update to layer 161 Closes LonamiWebs#4184. * Fix incorrect param type in apply_channel_difference (LonamiWebs#4185) * Fix date empty (LonamiWebs#4191) * Remove client-side check in message.edit (LonamiWebs#4195) Fixes LonamiWebs#4193. * Update to layer 162 * Bump to v1.30 * Fix generator for pypy (LonamiWebs#4198) * Fix invalid date type in UpdateShort * Fix date empty when getting difference * Fixed sorting of markup entities with the same offsets (LonamiWebs#4201) * Remove uses of imghdr It's deprecated. Closes LonamiWebs#4207. * Update to layer 164 * Update to layer 165 * Update to v1.31 * Fix file name could be lost when uploading files Leading to invalid extension when sending photos. * Update to layer 166 * Fix init of custom Draft after layer update * Bump to v1.32 * Add PR template mentioning v1 is feature-frozen Should prevent efforts like LonamiWebs#4244 going to waste in the future. * Force filename with JPG extension after resizing Old name does not matter, since we just encoded it as JPEG * Retry on TimedOutError (LonamiWebs#4255) * Conditional webbrowser import (LonamiWebs#4261) * Update to layer 167 * Bump to v1.33 * Prioritise closing tags when sorting tags * Fix ordering of nested entities * Bump to v1.33.1 * Fix typo in documentation example (LonamiWebs#4277) * Fix restriction_reason type hint (LonamiWebs#4282) * Update to layer 169 * Update to layer 170 * Add missing saved_peer_id parameter to Message * Add new config file for readthedocs * Update to layer 171 * Add reply_to_chat and reply_to_sender in Message (LonamiWebs#4300) * Update to layer 172 * 'Refactored by Sourcery' --------- Co-authored-by: novenary <[email protected]> Co-authored-by: Lonami <[email protected]> Co-authored-by: iamilya <[email protected]> Co-authored-by: Devesh Pal <[email protected]> Co-authored-by: rozha <[email protected]> Co-authored-by: novenary <[email protected]> Co-authored-by: Nick80835 <[email protected]> Co-authored-by: Bernhard M. Wiedemann <[email protected]> Co-authored-by: Kacnep89 <[email protected]> Co-authored-by: misuzu <[email protected]> Co-authored-by: Shubham Kumar <[email protected]> Co-authored-by: Non <[email protected]> Co-authored-by: Dingyuan Wang <[email protected]> Co-authored-by: Alexander Goryushkin <[email protected]> Co-authored-by: mario-ttide <[email protected]> Co-authored-by: Balázs Triszka <[email protected]> Co-authored-by: udf <[email protected]> Co-authored-by: Allen Calderwood <[email protected]> Co-authored-by: Jahongir Qurbonov <[email protected]> Co-authored-by: exovoq <[email protected]> Co-authored-by: Sourcery AI <>
This is for those like me that want to use an async Session implementation