soroushthon 0.2.93.dev0__tar.gz → 0.2.95__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- soroushthon-0.2.95/ADAPTIVE_UPDATES.md +41 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CAPABILITIES.json +311 -7
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CAPABILITIES.md +75 -1
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/MANIFEST.in +3 -0
- soroushthon-0.2.95/PERFORMANCE_095.md +14 -0
- soroushthon-0.2.95/PKG-INFO +101 -0
- soroushthon-0.2.95/PLATFORMS.md +43 -0
- soroushthon-0.2.95/PUBLISHING.md +30 -0
- soroushthon-0.2.95/PYPI_README.md +74 -0
- soroushthon-0.2.95/README.md +82 -0
- soroushthon-0.2.95/SHORTCUTS.md +49 -0
- soroushthon-0.2.95/examples/ping_test.py +15 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/pyproject.toml +5 -2
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/_updates/messagebox.py +5 -1
- soroushthon-0.2.95/soroushthon/client/adaptive_updates.py +286 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/soroushclient.py +84 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/telegrambaseclient.py +25 -2
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/updates.py +82 -18
- soroushthon-0.2.95/soroushthon/version.py +1 -0
- soroushthon-0.2.95/soroushthon.egg-info/PKG-INFO +101 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon.egg-info/SOURCES.txt +7 -0
- soroushthon-0.2.95/tests/soroushthon/client/test_adaptive_updates.py +135 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_shortcuts.py +18 -0
- soroushthon-0.2.95/tests/soroushthon/client/test_update_pipeline.py +68 -0
- soroushthon-0.2.93.dev0/PKG-INFO +0 -78
- soroushthon-0.2.93.dev0/PLATFORMS.md +0 -44
- soroushthon-0.2.93.dev0/PUBLISHING.md +0 -48
- soroushthon-0.2.93.dev0/PYPI_README.md +0 -52
- soroushthon-0.2.93.dev0/README.md +0 -82
- soroushthon-0.2.93.dev0/soroushthon/version.py +0 -1
- soroushthon-0.2.93.dev0/soroushthon.egg-info/PKG-INFO +0 -78
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/.github/workflows/check.yml +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/.gitignore +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/APK_POSTCHIN_AUDIT_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/APK_REQUEST_IDS_2026-10-15.tsv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/AUDIT.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/BOUND_CHAT_FIX_090.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CALL_RESEARCH.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CLIENT_LIBRARY_REVIEW_089.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CONFERENCE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/CONTACTS.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/DEV_GUIDE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/ECOSYSTEM_REVIEW.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/FRAMEWORK.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/FULL_COVERAGE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/GITHUB_TERMUX_093.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/GROUP_CHANNEL_BATCH20.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/INTERACTIONS.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LARGE_CHANNEL_MEMBERSHIP_079.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LARGE_CHANNEL_PAGINATION_081.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LARGE_CHANNEL_SEARCH_TAIL_080.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LARGE_CHANNEL_TARGET_082.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LICENSE +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_ACCOUNT_BATCH5_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH10_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH11_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH6_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH7_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH8_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/LIVE_READONLY_BATCH9_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/MEDIA.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/MEET_IN_KEEP_087.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/MEET_IN_LEAVE_085.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/MEET_IN_LEAVE_086.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/METHOD_COVERAGE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/NEW_ACCOUNT_METHODS10.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/NOTICE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PARITY.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PERFORMANCE_0.2.57.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PERFORMANCE_API_088.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/POSTCHIN_CHANNEL_RESEARCH.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PROJECT_HISTORY.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PROTOCOL.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/PROTOCOL_LAB.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RAW_API_SOURCE_AUDIT_2026-10-14.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_ACCOUNT_BATCH5.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH10.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH11.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH12.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH5.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH7.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH8.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/READONLY_BATCH9.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RELEASE_READINESS_091.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RELEASE_READINESS_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RESEARCH_2026-10-08.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RPC_422_AUDIT_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/RUBIKA_REVIEW.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/SOROUSHTHON_CHAT_CHANNEL_ACCOUNT_METHOD_MAP_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/SPLUSTHON_COMPAT.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/TELETHON_LICENSE +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/TERMUX_TESTING.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/VOICE_CALL_DISCOVERY_084.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/VOICE_CALL_LEAVE_083.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/account_batch15.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/batch10_account_next.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/batch10_new_methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/batch30_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/batch30_more.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/bound_chat_readonly_088.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/channel_post_probe.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/chat_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/chat_read_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/cleanup_meet_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/event_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/event_handler_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/full_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/group_channel_batch16.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/group_channel_batch18.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/group_channel_batch19.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/group_channel_batch20.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/interactive_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_bound_membership_089.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_bound_membership_090.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_bound_membership_091.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_membership_079.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_pagination_081.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_search_tail_080.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/large_channel_target_082.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/list_accounts_readonly.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_fixtures/audio.mp3 +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_fixtures/document.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_fixtures/photo.png +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_fixtures/video.mp4 +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/media_fixtures/voice.ogg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/meet_in_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/meet_in_keep_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/meet_in_leave_085.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/meet_in_leave_086.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/meet_links_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/multipart_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/new_account_methods10.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/other_bio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/profile.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/protocol_probe.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_account_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch10.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch11.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch12.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch13.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch14.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch7.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch8.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/readonly_batch9.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/remaining23_summary.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/remaining23_termux.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/self_write_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/stats_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/update_lifecycle_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/voice_call_discovery_084.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/voice_call_probe_083.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/voice_call_probe_084.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/examples/whoami.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/setup.cfg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/setup.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/_updates/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/_updates/entitycache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/_updates/session.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/bound_chat.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/chats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/dialogs.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/downloads.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/interactions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/messageparse.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/uploads.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/client/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/conference_audio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/aes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/aesctr.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/authkey.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/cdndecrypter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/factorization.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/libssl.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/crypto/rsa.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/custom.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/errors/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/errors/common.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/errors/rpcbaseerrors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/errors/rpcerrorlist.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/album.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/chataction.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/common.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/messagedeleted.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/messageedited.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/messageread.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/newmessage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/raw.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/events/userupdate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/extensions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/extensions/binaryreader.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/extensions/html.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/extensions/markdown.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/extensions/messagepacker.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/filters.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/fsm.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/functions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/hints.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/authenticator.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/connection.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/http.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/tcpabridged.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/tcpfull.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/tcpintermediate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/tcpmtproxy.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/tcpobfuscated.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/connection/websocket.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/mtprotoplainsender.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/mtprotosender.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/mtprotostate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/network/requeststate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/password.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/requestiter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sessions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sessions/abstract.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sessions/memory.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sessions/sqlite.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sessions/string.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/sync.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/alltlobjects.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/core/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/core/gzippacked.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/core/messagecontainer.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/core/rpcresult.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/core/tlmessage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/adminlogevent.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/chatgetter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/conversation.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/dialog.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/draft.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/file.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/forward.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/inlineresult.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/inlineresults.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/inputsizedfile.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/message.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/messagebutton.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/participantpermissions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/sendergetter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/custom/types.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/bots.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/channels.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/chatlists.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/folders.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/help.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/langpack.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/payments.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/phone.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/photos.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/postchin.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/premium.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/stats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/stories.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/thirdParty.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/updates.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/upload.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/functions/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/patched/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/bots.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/channels.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/chatlists.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/help.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/payments.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/phone.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/photos.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/postchin.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/premium.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/stats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/stickers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/storage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/stories.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/thirdParty.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/update.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/updates.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/upload.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/tl/types/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/types.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon/utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon.egg-info/dependency_links.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon.egg-info/requires.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon.egg-info/top_level.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/api.tl +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/errors.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/friendly.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/404.html +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/core.html +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/css/docs.dark.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/css/docs.h4x0r.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/css/docs.light.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/img/arrow.svg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/html/js/search.js +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/methods.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/data/mtproto.tl +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/docswriter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/generators/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/generators/docs.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/generators/errors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/generators/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/errors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/tlobject/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/tlobject/parser.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/tlobject/tlarg.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/parsers/tlobject/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/sourcebuilder.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/syncerrors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/soroushthon_generator/utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_account_batch15_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_account_sessions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_admin_log_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_bound_chat.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_chat_member_search.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_chat_membership_and_pages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_delete_messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_drafts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_entity_cache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_featured_stickers_cache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_get_permissions_fallback.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_group_channel_batch16_report.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_group_channel_batch16_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_group_channel_batch20.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_interactions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_media_connection.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_message_mapping_privacy.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_new10_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_new_account_runner.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_postchin_apk_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_profiles.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_read_acknowledge.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_readonly_account_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_readonly_batch13_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_readonly_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_readonly_batch7.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_rejected_rpcs_preserved.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_stats_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_unsupported_features.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_verified_large_membership.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/client/test_web_document.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/crypto/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/crypto/test_rsa.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/events/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/events/test_chataction.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/events/test_dispatch.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/events/test_registration.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/extensions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/extensions/test_html.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/extensions/test_markdown.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_account_scope.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_batch10_account_next.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_batch10_new_methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_chat_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_cleanup_meet_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_conference_audio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_coverage_runner.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_event_coverage_diagnostics.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_event_handler_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_framework_helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_full_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_interactive_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_list_accounts_readonly.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_media_attributes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_media_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_meet_in_keep_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_multipart_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_pickle.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_protocol_lab.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_readonly_batch11.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_readonly_batch12.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_sessions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_update_lifecycle_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/test_websocket.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/tl/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tests/soroushthon/tl/test_serialization.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tools/audit_upstreams.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tools/build_capability_inventory.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tools/check_release.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tools/generate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.95}/tools/protocol_lab.py +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# بازیابی انتخابی رویدادهای دیررس گروه
|
|
2
|
+
|
|
3
|
+
وقتی حساب در گروههای زیادی عضو است، پیامهای بعضی گروهها ممکن است دیرتر از زمان ثبتشدهٔ خود پیام به برنامه برسند. قابلیت آزمایشی این نسخه زمان پیام پذیرفتهشده از اتصال زنده را با ساعت دستگاه مقایسه میکند. اگر از یک گروه دو پیام دیررس نزدیک به هم برسد، برای مدت محدودی اختلاف رویدادهای همان گروه را از سرور درخواست میکند. این قابلیت همهٔ گروهها را دورهای نمیپیماید.
|
|
4
|
+
|
|
5
|
+
## فعالسازی برای آزمایش
|
|
6
|
+
|
|
7
|
+
این قابلیت در سورس انتشار `0.2.95` قرار دارد و بهصورت پیشفرض خاموش است. پس از نصب نسخهٔ جدید، در ساخت کلاینت بنویس:
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from soroushthon import SoroushClient
|
|
11
|
+
|
|
12
|
+
client = SoroushClient.for_account("main", adaptive_update_polling=True)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@client.on_message()
|
|
16
|
+
async def on_message(event):
|
|
17
|
+
print(event.chat_id, event.id)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
client.start()
|
|
21
|
+
client.run_until_disconnected()
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
برای دیدن شمارندهها در برنامهٔ در حال اجرا:
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
print(client.adaptive_update_stats())
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
خروجی شامل `hot_groups`، `polls`، `recovered_updates`، `live_wins`، `busy_skips`، `errors`، `observed_messages` و `lag_p95_seconds` است. مقدار آخر صدک تقریبی تأخیر در حداکثر ۵۱۲ پیام گروهی اخیر است؛ اختلاف ساعت دستگاه و سرور روی آن اثر میگذارد. قبل از مقایسه، ساعت دستگاه را با زمان شبکه هماهنگ کن و روی یک حساب یکسان مدتی با گزینهٔ خاموش و روشن آزمایش کن.
|
|
31
|
+
|
|
32
|
+
## حدود و رفتار
|
|
33
|
+
|
|
34
|
+
- تشخیص پس از ۲۰ ثانیهٔ آغاز اتصال و با آستانهٔ دو ثانیه تأخیر شروع میشود. فقط گروههایی که نوعشان در حافظهٔ کلاینت شناخته شده و `pts` معتبر دارند بررسی میشوند.
|
|
35
|
+
- بعد از اتصال مجدد، نوع گروههای ذخیرهشده ممکن است موقتاً فقط بهصورت کانال شناخته شود؛ در این حالت تا دریافت اطلاعات تازهٔ گروه، بازیابی انتخابی آن فعال نمیشود.
|
|
36
|
+
- در هر حساب حداکثر ۸ گروهِ فعال همزمان نگه داشته میشود. بین درخواستهای حساب دستکم ۲٫۵ ثانیه فاصله است. گروههای پررفتوآمد موقتاً کنار گذاشته میشوند تا بار اضافه تأخیر را بیشتر نکند.
|
|
37
|
+
- پاسخ سرور تنها وقتی به حالت رویدادها اعمال میشود که در این فاصله رویداد زنده یا بازیابی معمول جلو نیفتاده باشد. رویدادهای بازیابیشده از مسیر عادی هندلرها عبور میکنند؛ رویداد تکراری نباید دوباره پردازش شود.
|
|
38
|
+
- اگر سرور پاسخ `ChannelDifferenceTooLong` بدهد، این مسیر از پرش خودکار به انتهای تاریخچه خودداری میکند. در آن حالت بازیابیِ کامل رویدادهای قدیمی تضمین نمیشود.
|
|
39
|
+
- این قابلیت برای پیامهای گروهی کانالپایه است. برای حسابها یا شبکههایی با وضعیت متفاوت، کاهش تأخیر هنوز باید بهصورت زنده سنجیده شود. تعداد درخواستها را با `polls` و خطاها را با `errors` کنترل کن.
|
|
40
|
+
|
|
41
|
+
برای خاموشکردن، `adaptive_update_polling=True` را از سازنده بردار و برنامه را دوباره اجرا کن.
|
|
@@ -1744,10 +1744,18 @@
|
|
|
1744
1744
|
"missing_direct_raw_refs": [],
|
|
1745
1745
|
"status": "not_live_verified"
|
|
1746
1746
|
},
|
|
1747
|
+
{
|
|
1748
|
+
"name": "UpdateMethods.adaptive_update_stats",
|
|
1749
|
+
"kind": "sync/property",
|
|
1750
|
+
"source": "soroushthon/client/updates.py:42",
|
|
1751
|
+
"direct_raw_refs": [],
|
|
1752
|
+
"missing_direct_raw_refs": [],
|
|
1753
|
+
"status": "not_live_verified"
|
|
1754
|
+
},
|
|
1747
1755
|
{
|
|
1748
1756
|
"name": "UpdateMethods.add_event_handler",
|
|
1749
1757
|
"kind": "sync/property",
|
|
1750
|
-
"source": "soroushthon/client/updates.py:
|
|
1758
|
+
"source": "soroushthon/client/updates.py:165",
|
|
1751
1759
|
"direct_raw_refs": [],
|
|
1752
1760
|
"missing_direct_raw_refs": [],
|
|
1753
1761
|
"status": "not_live_verified"
|
|
@@ -1755,7 +1763,7 @@
|
|
|
1755
1763
|
{
|
|
1756
1764
|
"name": "UpdateMethods.catch_up",
|
|
1757
1765
|
"kind": "async",
|
|
1758
|
-
"source": "soroushthon/client/updates.py:
|
|
1766
|
+
"source": "soroushthon/client/updates.py:274",
|
|
1759
1767
|
"direct_raw_refs": [],
|
|
1760
1768
|
"missing_direct_raw_refs": [],
|
|
1761
1769
|
"status": "not_live_verified"
|
|
@@ -1763,7 +1771,7 @@
|
|
|
1763
1771
|
{
|
|
1764
1772
|
"name": "UpdateMethods.list_event_handlers",
|
|
1765
1773
|
"kind": "sync/property",
|
|
1766
|
-
"source": "soroushthon/client/updates.py:
|
|
1774
|
+
"source": "soroushthon/client/updates.py:253",
|
|
1767
1775
|
"direct_raw_refs": [],
|
|
1768
1776
|
"missing_direct_raw_refs": [],
|
|
1769
1777
|
"status": "not_live_verified"
|
|
@@ -1771,7 +1779,7 @@
|
|
|
1771
1779
|
{
|
|
1772
1780
|
"name": "UpdateMethods.on",
|
|
1773
1781
|
"kind": "sync/property",
|
|
1774
|
-
"source": "soroushthon/client/updates.py:
|
|
1782
|
+
"source": "soroushthon/client/updates.py:138",
|
|
1775
1783
|
"direct_raw_refs": [],
|
|
1776
1784
|
"missing_direct_raw_refs": [],
|
|
1777
1785
|
"status": "not_live_verified"
|
|
@@ -1779,7 +1787,7 @@
|
|
|
1779
1787
|
{
|
|
1780
1788
|
"name": "UpdateMethods.remove_event_handler",
|
|
1781
1789
|
"kind": "sync/property",
|
|
1782
|
-
"source": "soroushthon/client/updates.py:
|
|
1790
|
+
"source": "soroushthon/client/updates.py:214",
|
|
1783
1791
|
"direct_raw_refs": [],
|
|
1784
1792
|
"missing_direct_raw_refs": [],
|
|
1785
1793
|
"status": "not_live_verified"
|
|
@@ -1787,7 +1795,7 @@
|
|
|
1787
1795
|
{
|
|
1788
1796
|
"name": "UpdateMethods.run_until_disconnected",
|
|
1789
1797
|
"kind": "sync/property",
|
|
1790
|
-
"source": "soroushthon/client/updates.py:
|
|
1798
|
+
"source": "soroushthon/client/updates.py:91",
|
|
1791
1799
|
"direct_raw_refs": [],
|
|
1792
1800
|
"missing_direct_raw_refs": [],
|
|
1793
1801
|
"status": "not_live_verified"
|
|
@@ -1795,13 +1803,21 @@
|
|
|
1795
1803
|
{
|
|
1796
1804
|
"name": "UpdateMethods.set_receive_updates",
|
|
1797
1805
|
"kind": "async",
|
|
1798
|
-
"source": "soroushthon/client/updates.py:
|
|
1806
|
+
"source": "soroushthon/client/updates.py:74",
|
|
1799
1807
|
"direct_raw_refs": [
|
|
1800
1808
|
"updates.GetStateRequest"
|
|
1801
1809
|
],
|
|
1802
1810
|
"missing_direct_raw_refs": [],
|
|
1803
1811
|
"status": "not_live_verified"
|
|
1804
1812
|
},
|
|
1813
|
+
{
|
|
1814
|
+
"name": "UpdateMethods.update_pipeline_stats",
|
|
1815
|
+
"kind": "sync/property",
|
|
1816
|
+
"source": "soroushthon/client/updates.py:47",
|
|
1817
|
+
"direct_raw_refs": [],
|
|
1818
|
+
"missing_direct_raw_refs": [],
|
|
1819
|
+
"status": "not_live_verified"
|
|
1820
|
+
},
|
|
1805
1821
|
{
|
|
1806
1822
|
"name": "UploadMethods.send_audio",
|
|
1807
1823
|
"kind": "async",
|
|
@@ -1958,50 +1974,186 @@
|
|
|
1958
1974
|
}
|
|
1959
1975
|
],
|
|
1960
1976
|
"shortcuts": [
|
|
1977
|
+
{
|
|
1978
|
+
"name": "admin_log",
|
|
1979
|
+
"alias_of": "ChatMethods.get_admin_log"
|
|
1980
|
+
},
|
|
1981
|
+
{
|
|
1982
|
+
"name": "audio",
|
|
1983
|
+
"alias_of": "UploadMethods.send_audio"
|
|
1984
|
+
},
|
|
1985
|
+
{
|
|
1986
|
+
"name": "authorizations",
|
|
1987
|
+
"alias_of": "AccountMethods.get_authorizations"
|
|
1988
|
+
},
|
|
1989
|
+
{
|
|
1990
|
+
"name": "authorized",
|
|
1991
|
+
"alias_of": "UserMethods.is_user_authorized"
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
"name": "auto_download",
|
|
1995
|
+
"alias_of": "AccountMethods.get_auto_download_settings"
|
|
1996
|
+
},
|
|
1961
1997
|
{
|
|
1962
1998
|
"name": "bio",
|
|
1963
1999
|
"alias_of": "UserMethods.get_user_bio"
|
|
1964
2000
|
},
|
|
2001
|
+
{
|
|
2002
|
+
"name": "block",
|
|
2003
|
+
"alias_of": "ContactMethods.block_user"
|
|
2004
|
+
},
|
|
2005
|
+
{
|
|
2006
|
+
"name": "blocked",
|
|
2007
|
+
"alias_of": "ContactMethods.get_blocked"
|
|
2008
|
+
},
|
|
1965
2009
|
{
|
|
1966
2010
|
"name": "call_info",
|
|
1967
2011
|
"alias_of": "InteractionMethods.get_group_call"
|
|
1968
2012
|
},
|
|
2013
|
+
{
|
|
2014
|
+
"name": "call_members",
|
|
2015
|
+
"alias_of": "InteractionMethods.get_group_call_participants"
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
"name": "chat_info",
|
|
2019
|
+
"alias_of": "ChatMethods.get_chat_info"
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
"name": "common_chats",
|
|
2023
|
+
"alias_of": "MessageMethods.get_common_chats"
|
|
2024
|
+
},
|
|
1969
2025
|
{
|
|
1970
2026
|
"name": "contact",
|
|
1971
2027
|
"alias_of": "InteractionMethods.send_contact"
|
|
1972
2028
|
},
|
|
2029
|
+
{
|
|
2030
|
+
"name": "contacts",
|
|
2031
|
+
"alias_of": "ContactMethods.get_contacts"
|
|
2032
|
+
},
|
|
1973
2033
|
{
|
|
1974
2034
|
"name": "delete",
|
|
1975
2035
|
"alias_of": "MessageMethods.delete_messages"
|
|
1976
2036
|
},
|
|
2037
|
+
{
|
|
2038
|
+
"name": "dialog",
|
|
2039
|
+
"alias_of": "DialogMethods.get_peer_dialog"
|
|
2040
|
+
},
|
|
2041
|
+
{
|
|
2042
|
+
"name": "dialog_filters",
|
|
2043
|
+
"alias_of": "DialogMethods.get_dialog_filters"
|
|
2044
|
+
},
|
|
1977
2045
|
{
|
|
1978
2046
|
"name": "dialogs",
|
|
1979
2047
|
"alias_of": "DialogMethods.get_dialogs"
|
|
1980
2048
|
},
|
|
2049
|
+
{
|
|
2050
|
+
"name": "document",
|
|
2051
|
+
"alias_of": "UploadMethods.send_document"
|
|
2052
|
+
},
|
|
1981
2053
|
{
|
|
1982
2054
|
"name": "download",
|
|
1983
2055
|
"alias_of": "DownloadMethods.download_media"
|
|
1984
2056
|
},
|
|
2057
|
+
{
|
|
2058
|
+
"name": "drafts",
|
|
2059
|
+
"alias_of": "DialogMethods.get_drafts"
|
|
2060
|
+
},
|
|
1985
2061
|
{
|
|
1986
2062
|
"name": "edit",
|
|
1987
2063
|
"alias_of": "MessageMethods.edit_message"
|
|
1988
2064
|
},
|
|
2065
|
+
{
|
|
2066
|
+
"name": "end_call",
|
|
2067
|
+
"alias_of": "InteractionMethods.end_group_call"
|
|
2068
|
+
},
|
|
2069
|
+
{
|
|
2070
|
+
"name": "entity",
|
|
2071
|
+
"alias_of": "UserMethods.get_entity"
|
|
2072
|
+
},
|
|
1989
2073
|
{
|
|
1990
2074
|
"name": "file",
|
|
1991
2075
|
"alias_of": "UploadMethods.send_file"
|
|
1992
2076
|
},
|
|
2077
|
+
{
|
|
2078
|
+
"name": "find_contacts",
|
|
2079
|
+
"alias_of": "ContactMethods.search_contacts"
|
|
2080
|
+
},
|
|
2081
|
+
{
|
|
2082
|
+
"name": "find_members",
|
|
2083
|
+
"alias_of": "ChatMethods.search_chat_members"
|
|
2084
|
+
},
|
|
1993
2085
|
{
|
|
1994
2086
|
"name": "forward",
|
|
1995
2087
|
"alias_of": "MessageMethods.forward_messages"
|
|
1996
2088
|
},
|
|
2089
|
+
{
|
|
2090
|
+
"name": "full_user",
|
|
2091
|
+
"alias_of": "UserMethods.get_full_user"
|
|
2092
|
+
},
|
|
2093
|
+
{
|
|
2094
|
+
"name": "history",
|
|
2095
|
+
"alias_of": "MessageMethods.iter_messages"
|
|
2096
|
+
},
|
|
2097
|
+
{
|
|
2098
|
+
"name": "history_page",
|
|
2099
|
+
"alias_of": "MessageMethods.get_chat_history_page"
|
|
2100
|
+
},
|
|
2101
|
+
{
|
|
2102
|
+
"name": "input_entity",
|
|
2103
|
+
"alias_of": "UserMethods.get_input_entity"
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
"name": "invite",
|
|
2107
|
+
"alias_of": "ChatMethods.invite_chat_members"
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
"name": "invite_links",
|
|
2111
|
+
"alias_of": "ChatMethods.get_invite_links"
|
|
2112
|
+
},
|
|
2113
|
+
{
|
|
2114
|
+
"name": "is_member",
|
|
2115
|
+
"alias_of": "ChatMethods.is_chat_member"
|
|
2116
|
+
},
|
|
2117
|
+
{
|
|
2118
|
+
"name": "iter_chats",
|
|
2119
|
+
"alias_of": "DialogMethods.iter_dialogs"
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
"name": "iter_members",
|
|
2123
|
+
"alias_of": "ChatMethods.iter_participants"
|
|
2124
|
+
},
|
|
2125
|
+
{
|
|
2126
|
+
"name": "join_invite",
|
|
2127
|
+
"alias_of": "ChatMethods.join_by_invite"
|
|
2128
|
+
},
|
|
2129
|
+
{
|
|
2130
|
+
"name": "join_public",
|
|
2131
|
+
"alias_of": "ChatMethods.join_public_chat"
|
|
2132
|
+
},
|
|
2133
|
+
{
|
|
2134
|
+
"name": "kick",
|
|
2135
|
+
"alias_of": "ChatMethods.kick_participant"
|
|
2136
|
+
},
|
|
2137
|
+
{
|
|
2138
|
+
"name": "leave_call",
|
|
2139
|
+
"alias_of": "InteractionMethods.leave_group_call"
|
|
2140
|
+
},
|
|
1997
2141
|
{
|
|
1998
2142
|
"name": "location",
|
|
1999
2143
|
"alias_of": "InteractionMethods.send_location"
|
|
2000
2144
|
},
|
|
2145
|
+
{
|
|
2146
|
+
"name": "mark_read",
|
|
2147
|
+
"alias_of": "MessageMethods.send_read_acknowledge"
|
|
2148
|
+
},
|
|
2001
2149
|
{
|
|
2002
2150
|
"name": "me",
|
|
2003
2151
|
"alias_of": "UserMethods.get_me"
|
|
2004
2152
|
},
|
|
2153
|
+
{
|
|
2154
|
+
"name": "media_page",
|
|
2155
|
+
"alias_of": "MessageMethods.get_chat_media_page"
|
|
2156
|
+
},
|
|
2005
2157
|
{
|
|
2006
2158
|
"name": "meet",
|
|
2007
2159
|
"alias_of": "InteractionMethods.create_meet"
|
|
@@ -2014,10 +2166,66 @@
|
|
|
2014
2166
|
"name": "meet_links",
|
|
2015
2167
|
"alias_of": "InteractionMethods.get_chat_meet_links"
|
|
2016
2168
|
},
|
|
2169
|
+
{
|
|
2170
|
+
"name": "member_status",
|
|
2171
|
+
"alias_of": "ChatMethods.get_chat_member_status"
|
|
2172
|
+
},
|
|
2173
|
+
{
|
|
2174
|
+
"name": "members",
|
|
2175
|
+
"alias_of": "ChatMethods.get_participants"
|
|
2176
|
+
},
|
|
2177
|
+
{
|
|
2178
|
+
"name": "mentions_page",
|
|
2179
|
+
"alias_of": "MessageMethods.get_chat_mentions_page"
|
|
2180
|
+
},
|
|
2017
2181
|
{
|
|
2018
2182
|
"name": "messages",
|
|
2019
2183
|
"alias_of": "MessageMethods.get_messages"
|
|
2020
2184
|
},
|
|
2185
|
+
{
|
|
2186
|
+
"name": "new_channel",
|
|
2187
|
+
"alias_of": "ChatMethods.create_channel"
|
|
2188
|
+
},
|
|
2189
|
+
{
|
|
2190
|
+
"name": "new_conference",
|
|
2191
|
+
"alias_of": "InteractionMethods.create_conference"
|
|
2192
|
+
},
|
|
2193
|
+
{
|
|
2194
|
+
"name": "new_group",
|
|
2195
|
+
"alias_of": "ChatMethods.create_group"
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"name": "notifications",
|
|
2199
|
+
"alias_of": "AccountMethods.get_chat_notifications"
|
|
2200
|
+
},
|
|
2201
|
+
{
|
|
2202
|
+
"name": "online_count",
|
|
2203
|
+
"alias_of": "ChatMethods.get_group_online_count"
|
|
2204
|
+
},
|
|
2205
|
+
{
|
|
2206
|
+
"name": "peer_id",
|
|
2207
|
+
"alias_of": "UserMethods.get_peer_id"
|
|
2208
|
+
},
|
|
2209
|
+
{
|
|
2210
|
+
"name": "peer_settings",
|
|
2211
|
+
"alias_of": "AccountMethods.get_peer_settings"
|
|
2212
|
+
},
|
|
2213
|
+
{
|
|
2214
|
+
"name": "permissions",
|
|
2215
|
+
"alias_of": "ChatMethods.get_permissions"
|
|
2216
|
+
},
|
|
2217
|
+
{
|
|
2218
|
+
"name": "photo",
|
|
2219
|
+
"alias_of": "UploadMethods.send_photo"
|
|
2220
|
+
},
|
|
2221
|
+
{
|
|
2222
|
+
"name": "pin",
|
|
2223
|
+
"alias_of": "MessageMethods.pin_message"
|
|
2224
|
+
},
|
|
2225
|
+
{
|
|
2226
|
+
"name": "pinned_dialogs",
|
|
2227
|
+
"alias_of": "DialogMethods.get_pinned_dialogs"
|
|
2228
|
+
},
|
|
2021
2229
|
{
|
|
2022
2230
|
"name": "poll",
|
|
2023
2231
|
"alias_of": "InteractionMethods.send_poll"
|
|
@@ -2030,6 +2238,18 @@
|
|
|
2030
2238
|
"name": "poll_voters",
|
|
2031
2239
|
"alias_of": "InteractionMethods.get_poll_votes"
|
|
2032
2240
|
},
|
|
2241
|
+
{
|
|
2242
|
+
"name": "post_views",
|
|
2243
|
+
"alias_of": "ChatMethods.get_channel_post_views"
|
|
2244
|
+
},
|
|
2245
|
+
{
|
|
2246
|
+
"name": "primary_invite",
|
|
2247
|
+
"alias_of": "ChatMethods.get_chat_primary_invite_link"
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"name": "privacy",
|
|
2251
|
+
"alias_of": "AccountMethods.get_global_privacy_settings"
|
|
2252
|
+
},
|
|
2033
2253
|
{
|
|
2034
2254
|
"name": "react",
|
|
2035
2255
|
"alias_of": "InteractionMethods.send_reaction"
|
|
@@ -2042,25 +2262,109 @@
|
|
|
2042
2262
|
"name": "reactions",
|
|
2043
2263
|
"alias_of": "InteractionMethods.get_message_reactions"
|
|
2044
2264
|
},
|
|
2265
|
+
{
|
|
2266
|
+
"name": "readers",
|
|
2267
|
+
"alias_of": "MessageMethods.get_message_read_participants"
|
|
2268
|
+
},
|
|
2269
|
+
{
|
|
2270
|
+
"name": "replies",
|
|
2271
|
+
"alias_of": "MessageMethods.get_chat_replies"
|
|
2272
|
+
},
|
|
2273
|
+
{
|
|
2274
|
+
"name": "scheduled",
|
|
2275
|
+
"alias_of": "MessageMethods.get_scheduled_messages"
|
|
2276
|
+
},
|
|
2277
|
+
{
|
|
2278
|
+
"name": "search_all",
|
|
2279
|
+
"alias_of": "MessageMethods.search_all_messages"
|
|
2280
|
+
},
|
|
2281
|
+
{
|
|
2282
|
+
"name": "search_chat",
|
|
2283
|
+
"alias_of": "MessageMethods.search_chat_messages"
|
|
2284
|
+
},
|
|
2045
2285
|
{
|
|
2046
2286
|
"name": "send",
|
|
2047
2287
|
"alias_of": "MessageMethods.send_message"
|
|
2048
2288
|
},
|
|
2289
|
+
{
|
|
2290
|
+
"name": "send_as_peers",
|
|
2291
|
+
"alias_of": "ChatMethods.get_send_as_peers"
|
|
2292
|
+
},
|
|
2293
|
+
{
|
|
2294
|
+
"name": "send_scheduled",
|
|
2295
|
+
"alias_of": "MessageMethods.send_scheduled_messages_now"
|
|
2296
|
+
},
|
|
2297
|
+
{
|
|
2298
|
+
"name": "set_auto_download",
|
|
2299
|
+
"alias_of": "AccountMethods.save_auto_download_settings"
|
|
2300
|
+
},
|
|
2301
|
+
{
|
|
2302
|
+
"name": "set_description",
|
|
2303
|
+
"alias_of": "ChatMethods.set_chat_description"
|
|
2304
|
+
},
|
|
2305
|
+
{
|
|
2306
|
+
"name": "set_notifications",
|
|
2307
|
+
"alias_of": "AccountMethods.update_chat_notifications"
|
|
2308
|
+
},
|
|
2309
|
+
{
|
|
2310
|
+
"name": "set_privacy",
|
|
2311
|
+
"alias_of": "AccountMethods.set_global_privacy_settings"
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
"name": "set_reactions",
|
|
2315
|
+
"alias_of": "ChatMethods.set_chat_reactions"
|
|
2316
|
+
},
|
|
2317
|
+
{
|
|
2318
|
+
"name": "set_title",
|
|
2319
|
+
"alias_of": "ChatMethods.set_chat_title"
|
|
2320
|
+
},
|
|
2321
|
+
{
|
|
2322
|
+
"name": "set_username",
|
|
2323
|
+
"alias_of": "AccountMethods.update_username"
|
|
2324
|
+
},
|
|
2049
2325
|
{
|
|
2050
2326
|
"name": "start_call",
|
|
2051
2327
|
"alias_of": "InteractionMethods.start_group_call"
|
|
2052
2328
|
},
|
|
2329
|
+
{
|
|
2330
|
+
"name": "unblock",
|
|
2331
|
+
"alias_of": "ContactMethods.unblock_user"
|
|
2332
|
+
},
|
|
2333
|
+
{
|
|
2334
|
+
"name": "unpin",
|
|
2335
|
+
"alias_of": "MessageMethods.unpin_message"
|
|
2336
|
+
},
|
|
2053
2337
|
{
|
|
2054
2338
|
"name": "unreact",
|
|
2055
2339
|
"alias_of": "InteractionMethods.remove_reaction"
|
|
2056
2340
|
},
|
|
2341
|
+
{
|
|
2342
|
+
"name": "unread_mentions",
|
|
2343
|
+
"alias_of": "MessageMethods.get_unread_mentions"
|
|
2344
|
+
},
|
|
2345
|
+
{
|
|
2346
|
+
"name": "unread_reactions",
|
|
2347
|
+
"alias_of": "MessageMethods.get_unread_reactions"
|
|
2348
|
+
},
|
|
2057
2349
|
{
|
|
2058
2350
|
"name": "upload",
|
|
2059
2351
|
"alias_of": "UploadMethods.upload_file"
|
|
2060
2352
|
},
|
|
2353
|
+
{
|
|
2354
|
+
"name": "video",
|
|
2355
|
+
"alias_of": "UploadMethods.send_video"
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
"name": "voice",
|
|
2359
|
+
"alias_of": "UploadMethods.send_voice"
|
|
2360
|
+
},
|
|
2061
2361
|
{
|
|
2062
2362
|
"name": "vote",
|
|
2063
2363
|
"alias_of": "InteractionMethods.vote_poll"
|
|
2364
|
+
},
|
|
2365
|
+
{
|
|
2366
|
+
"name": "web_preview",
|
|
2367
|
+
"alias_of": "MessageMethods.get_web_page_preview"
|
|
2064
2368
|
}
|
|
2065
2369
|
],
|
|
2066
2370
|
"raw_functions": [
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
پشتیبانی سرور سروش یا نتیجهٔ آزمون زنده را ثابت نمیکند. فایل
|
|
5
5
|
`CAPABILITIES.json` نام و امضای تمام درخواستهای خام را نیز نگه میدارد.
|
|
6
6
|
|
|
7
|
-
متدهای عمومی mixinهای کلاینت: **
|
|
7
|
+
متدهای عمومی mixinهای کلاینت: **205**؛ نامهای کوتاه همان متدها: **98**؛
|
|
8
8
|
درخواستهای خام TL: **368**؛ انواع TL: **1271**.
|
|
9
9
|
نام کوتاه توانایی جداگانه یا درخواست تازه به سرور اضافه نمیکند.
|
|
10
10
|
این شمارش سه ثبتکنندهٔ رویداد `SoroushClient.on_message/on_edited/on_raw` و
|
|
@@ -14,32 +14,104 @@
|
|
|
14
14
|
|
|
15
15
|
| نام کوتاه | همان متد اصلی |
|
|
16
16
|
| --- | --- |
|
|
17
|
+
| `admin_log` | `ChatMethods.get_admin_log` |
|
|
18
|
+
| `audio` | `UploadMethods.send_audio` |
|
|
19
|
+
| `authorizations` | `AccountMethods.get_authorizations` |
|
|
20
|
+
| `authorized` | `UserMethods.is_user_authorized` |
|
|
21
|
+
| `auto_download` | `AccountMethods.get_auto_download_settings` |
|
|
17
22
|
| `bio` | `UserMethods.get_user_bio` |
|
|
23
|
+
| `block` | `ContactMethods.block_user` |
|
|
24
|
+
| `blocked` | `ContactMethods.get_blocked` |
|
|
18
25
|
| `call_info` | `InteractionMethods.get_group_call` |
|
|
26
|
+
| `call_members` | `InteractionMethods.get_group_call_participants` |
|
|
27
|
+
| `chat_info` | `ChatMethods.get_chat_info` |
|
|
28
|
+
| `common_chats` | `MessageMethods.get_common_chats` |
|
|
19
29
|
| `contact` | `InteractionMethods.send_contact` |
|
|
30
|
+
| `contacts` | `ContactMethods.get_contacts` |
|
|
20
31
|
| `delete` | `MessageMethods.delete_messages` |
|
|
32
|
+
| `dialog` | `DialogMethods.get_peer_dialog` |
|
|
33
|
+
| `dialog_filters` | `DialogMethods.get_dialog_filters` |
|
|
21
34
|
| `dialogs` | `DialogMethods.get_dialogs` |
|
|
35
|
+
| `document` | `UploadMethods.send_document` |
|
|
22
36
|
| `download` | `DownloadMethods.download_media` |
|
|
37
|
+
| `drafts` | `DialogMethods.get_drafts` |
|
|
23
38
|
| `edit` | `MessageMethods.edit_message` |
|
|
39
|
+
| `end_call` | `InteractionMethods.end_group_call` |
|
|
40
|
+
| `entity` | `UserMethods.get_entity` |
|
|
24
41
|
| `file` | `UploadMethods.send_file` |
|
|
42
|
+
| `find_contacts` | `ContactMethods.search_contacts` |
|
|
43
|
+
| `find_members` | `ChatMethods.search_chat_members` |
|
|
25
44
|
| `forward` | `MessageMethods.forward_messages` |
|
|
45
|
+
| `full_user` | `UserMethods.get_full_user` |
|
|
46
|
+
| `history` | `MessageMethods.iter_messages` |
|
|
47
|
+
| `history_page` | `MessageMethods.get_chat_history_page` |
|
|
48
|
+
| `input_entity` | `UserMethods.get_input_entity` |
|
|
49
|
+
| `invite` | `ChatMethods.invite_chat_members` |
|
|
50
|
+
| `invite_links` | `ChatMethods.get_invite_links` |
|
|
51
|
+
| `is_member` | `ChatMethods.is_chat_member` |
|
|
52
|
+
| `iter_chats` | `DialogMethods.iter_dialogs` |
|
|
53
|
+
| `iter_members` | `ChatMethods.iter_participants` |
|
|
54
|
+
| `join_invite` | `ChatMethods.join_by_invite` |
|
|
55
|
+
| `join_public` | `ChatMethods.join_public_chat` |
|
|
56
|
+
| `kick` | `ChatMethods.kick_participant` |
|
|
57
|
+
| `leave_call` | `InteractionMethods.leave_group_call` |
|
|
26
58
|
| `location` | `InteractionMethods.send_location` |
|
|
59
|
+
| `mark_read` | `MessageMethods.send_read_acknowledge` |
|
|
27
60
|
| `me` | `UserMethods.get_me` |
|
|
61
|
+
| `media_page` | `MessageMethods.get_chat_media_page` |
|
|
28
62
|
| `meet` | `InteractionMethods.create_meet` |
|
|
29
63
|
| `meet_in` | `InteractionMethods.share_meet` |
|
|
30
64
|
| `meet_links` | `InteractionMethods.get_chat_meet_links` |
|
|
65
|
+
| `member_status` | `ChatMethods.get_chat_member_status` |
|
|
66
|
+
| `members` | `ChatMethods.get_participants` |
|
|
67
|
+
| `mentions_page` | `MessageMethods.get_chat_mentions_page` |
|
|
31
68
|
| `messages` | `MessageMethods.get_messages` |
|
|
69
|
+
| `new_channel` | `ChatMethods.create_channel` |
|
|
70
|
+
| `new_conference` | `InteractionMethods.create_conference` |
|
|
71
|
+
| `new_group` | `ChatMethods.create_group` |
|
|
72
|
+
| `notifications` | `AccountMethods.get_chat_notifications` |
|
|
73
|
+
| `online_count` | `ChatMethods.get_group_online_count` |
|
|
74
|
+
| `peer_id` | `UserMethods.get_peer_id` |
|
|
75
|
+
| `peer_settings` | `AccountMethods.get_peer_settings` |
|
|
76
|
+
| `permissions` | `ChatMethods.get_permissions` |
|
|
77
|
+
| `photo` | `UploadMethods.send_photo` |
|
|
78
|
+
| `pin` | `MessageMethods.pin_message` |
|
|
79
|
+
| `pinned_dialogs` | `DialogMethods.get_pinned_dialogs` |
|
|
32
80
|
| `poll` | `InteractionMethods.send_poll` |
|
|
33
81
|
| `poll_results` | `InteractionMethods.get_poll_results` |
|
|
34
82
|
| `poll_voters` | `InteractionMethods.get_poll_votes` |
|
|
83
|
+
| `post_views` | `ChatMethods.get_channel_post_views` |
|
|
84
|
+
| `primary_invite` | `ChatMethods.get_chat_primary_invite_link` |
|
|
85
|
+
| `privacy` | `AccountMethods.get_global_privacy_settings` |
|
|
35
86
|
| `react` | `InteractionMethods.send_reaction` |
|
|
36
87
|
| `reaction_users` | `InteractionMethods.get_reaction_users` |
|
|
37
88
|
| `reactions` | `InteractionMethods.get_message_reactions` |
|
|
89
|
+
| `readers` | `MessageMethods.get_message_read_participants` |
|
|
90
|
+
| `replies` | `MessageMethods.get_chat_replies` |
|
|
91
|
+
| `scheduled` | `MessageMethods.get_scheduled_messages` |
|
|
92
|
+
| `search_all` | `MessageMethods.search_all_messages` |
|
|
93
|
+
| `search_chat` | `MessageMethods.search_chat_messages` |
|
|
38
94
|
| `send` | `MessageMethods.send_message` |
|
|
95
|
+
| `send_as_peers` | `ChatMethods.get_send_as_peers` |
|
|
96
|
+
| `send_scheduled` | `MessageMethods.send_scheduled_messages_now` |
|
|
97
|
+
| `set_auto_download` | `AccountMethods.save_auto_download_settings` |
|
|
98
|
+
| `set_description` | `ChatMethods.set_chat_description` |
|
|
99
|
+
| `set_notifications` | `AccountMethods.update_chat_notifications` |
|
|
100
|
+
| `set_privacy` | `AccountMethods.set_global_privacy_settings` |
|
|
101
|
+
| `set_reactions` | `ChatMethods.set_chat_reactions` |
|
|
102
|
+
| `set_title` | `ChatMethods.set_chat_title` |
|
|
103
|
+
| `set_username` | `AccountMethods.update_username` |
|
|
39
104
|
| `start_call` | `InteractionMethods.start_group_call` |
|
|
105
|
+
| `unblock` | `ContactMethods.unblock_user` |
|
|
106
|
+
| `unpin` | `MessageMethods.unpin_message` |
|
|
40
107
|
| `unreact` | `InteractionMethods.remove_reaction` |
|
|
108
|
+
| `unread_mentions` | `MessageMethods.get_unread_mentions` |
|
|
109
|
+
| `unread_reactions` | `MessageMethods.get_unread_reactions` |
|
|
41
110
|
| `upload` | `UploadMethods.upload_file` |
|
|
111
|
+
| `video` | `UploadMethods.send_video` |
|
|
112
|
+
| `voice` | `UploadMethods.send_voice` |
|
|
42
113
|
| `vote` | `InteractionMethods.vote_poll` |
|
|
114
|
+
| `web_preview` | `MessageMethods.get_web_page_preview` |
|
|
43
115
|
|
|
44
116
|
## درخواستهای خام بر حسب حوزه
|
|
45
117
|
|
|
@@ -252,6 +324,7 @@
|
|
|
252
324
|
| `MessageMethods.send_scheduled_messages_now` | — |
|
|
253
325
|
| `MessageMethods.unpin_message` | — |
|
|
254
326
|
| `MessageParseMethods.parse_mode` | — |
|
|
327
|
+
| `UpdateMethods.adaptive_update_stats` | — |
|
|
255
328
|
| `UpdateMethods.add_event_handler` | — |
|
|
256
329
|
| `UpdateMethods.catch_up` | — |
|
|
257
330
|
| `UpdateMethods.list_event_handlers` | — |
|
|
@@ -259,6 +332,7 @@
|
|
|
259
332
|
| `UpdateMethods.remove_event_handler` | — |
|
|
260
333
|
| `UpdateMethods.run_until_disconnected` | — |
|
|
261
334
|
| `UpdateMethods.set_receive_updates` | — |
|
|
335
|
+
| `UpdateMethods.update_pipeline_stats` | — |
|
|
262
336
|
| `UploadMethods.send_audio` | — |
|
|
263
337
|
| `UploadMethods.send_document` | — |
|
|
264
338
|
| `UploadMethods.send_file` | — |
|
|
@@ -3,6 +3,9 @@ include .gitignore
|
|
|
3
3
|
include PROTOCOL.md AUDIT.md PARITY.md
|
|
4
4
|
include CAPABILITIES.md CAPABILITIES.json
|
|
5
5
|
include MEDIA.md
|
|
6
|
+
include ADAPTIVE_UPDATES.md
|
|
7
|
+
include SHORTCUTS.md
|
|
8
|
+
include PERFORMANCE_095.md
|
|
6
9
|
include INTERACTIONS.md RUBIKA_REVIEW.md
|
|
7
10
|
include FRAMEWORK.md ECOSYSTEM_REVIEW.md
|
|
8
11
|
include CONFERENCE.md CALL_RESEARCH.md FULL_COVERAGE.md
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# پایش سرعت پردازش رویدادها
|
|
2
|
+
|
|
3
|
+
در `0.2.95` بستههای رویداد بدون کاربر یا گفتگوی تازه دیگر در صف ذخیرهٔ موجودیتها نگه داشته نمیشوند. هنگام قطع اتصال نیز موجودیتهای معوق قبل از بستن نشست ذخیره میشوند. برای فهمیدن گلوگاه واقعی در حسابهای شلوغ، یک نمای آماری محلی به کلاینت اضافه شده است؛ خواندن آن درخواست شبکه ارسال نمیکند.
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
print(client.update_pipeline_stats())
|
|
7
|
+
print(client.adaptive_update_stats())
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
خروجی اول چهار مقدار دارد: `socket_queue` تعداد بستههای منتظر پردازش، `running_handlers` شمار وظیفههای فعال هندلرها، `deferred_entity_batches` تعداد بستههای دارای موجودیت منتظر ذخیره و `tracked_channels` تعداد گفتگوهای کانالپایه در وضعیت بهروزرسانی کلاینت. این اعداد **تصویر همان لحظه** هستند؛ از یک عدد تنها نمیشود عملکرد کل سیستم را نتیجه گرفت.
|
|
11
|
+
|
|
12
|
+
برای مقایسهٔ عملی، هنگام ترافیک معمول حساب هر ۱۰ ثانیه چند نمونه بگیر. اگر `socket_queue` پیوسته زیاد میشود، مسیر دریافت و پردازش رویداد عقب افتاده است. اگر همزمان `running_handlers` رشد میکند، زمان اجرای هندلرهای برنامه را بررسی کن. اگر صفها کوچک هستند ولی `lag_p95_seconds` در آمار بازیابی انتخابی بالاست، تأخیر میتواند پیش از رسیدن رویداد به دستگاه رخ داده باشد. ساعت دستگاه را هم با زمان شبکه هماهنگ نگه دار.
|
|
13
|
+
|
|
14
|
+
پس از دیدن اندازهگیریِ حساب واقعی، میشود سراغ کنترل تعداد وظیفههای همزمان، ذخیرهٔ کمترِ وضعیتهای بدون تغییر در SQLite، یا تنظیم فاصلهٔ بازیابی انتخابی رفت. هیچکدام را بدون سنجش و محافظت از ترتیب/عدم گمشدن پیامها بهعنوان افزایش قطعی سرعت در نظر نگیر.
|