soroushthon 0.2.93.dev0__tar.gz → 0.2.94__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.94/PKG-INFO +113 -0
- soroushthon-0.2.94/PLATFORMS.md +43 -0
- soroushthon-0.2.94/PUBLISHING.md +41 -0
- soroushthon-0.2.94/PYPI_README.md +86 -0
- soroushthon-0.2.94/README.md +92 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/pyproject.toml +5 -2
- soroushthon-0.2.94/soroushthon/version.py +1 -0
- soroushthon-0.2.94/soroushthon.egg-info/PKG-INFO +113 -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.94}/.github/workflows/check.yml +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/.gitignore +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/APK_POSTCHIN_AUDIT_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/APK_REQUEST_IDS_2026-10-15.tsv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/AUDIT.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/BOUND_CHAT_FIX_090.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CALL_RESEARCH.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CAPABILITIES.json +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CAPABILITIES.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CLIENT_LIBRARY_REVIEW_089.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CONFERENCE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/CONTACTS.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/DEV_GUIDE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/ECOSYSTEM_REVIEW.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/FRAMEWORK.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/FULL_COVERAGE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/GITHUB_TERMUX_093.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/GROUP_CHANNEL_BATCH20.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/INTERACTIONS.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LARGE_CHANNEL_MEMBERSHIP_079.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LARGE_CHANNEL_PAGINATION_081.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LARGE_CHANNEL_SEARCH_TAIL_080.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LARGE_CHANNEL_TARGET_082.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LICENSE +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_ACCOUNT_BATCH5_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH10_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH11_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH6_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH7_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH8_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/LIVE_READONLY_BATCH9_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/MANIFEST.in +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/MEDIA.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/MEET_IN_KEEP_087.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/MEET_IN_LEAVE_085.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/MEET_IN_LEAVE_086.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/METHOD_COVERAGE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/NEW_ACCOUNT_METHODS10.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/NOTICE.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PARITY.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PERFORMANCE_0.2.57.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PERFORMANCE_API_088.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/POSTCHIN_CHANNEL_RESEARCH.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PROJECT_HISTORY.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PROTOCOL.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/PROTOCOL_LAB.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RAW_API_SOURCE_AUDIT_2026-10-14.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_ACCOUNT_BATCH5.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH10.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH11.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH12.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH5.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH7.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH8.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/READONLY_BATCH9.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RELEASE_READINESS_091.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RELEASE_READINESS_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RESEARCH_2026-10-08.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RPC_422_AUDIT_2026-10-16.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/RUBIKA_REVIEW.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/SOROUSHTHON_CHAT_CHANNEL_ACCOUNT_METHOD_MAP_2026-10-15.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/SPLUSTHON_COMPAT.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/TELETHON_LICENSE +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/TERMUX_TESTING.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/VOICE_CALL_DISCOVERY_084.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/VOICE_CALL_LEAVE_083.md +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/account_batch15.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/batch10_account_next.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/batch10_new_methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/batch30_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/batch30_more.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/bound_chat_readonly_088.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/channel_post_probe.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/chat_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/chat_read_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/cleanup_meet_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/event_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/event_handler_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/full_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/group_channel_batch16.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/group_channel_batch18.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/group_channel_batch19.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/group_channel_batch20.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/interactive_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_bound_membership_089.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_bound_membership_090.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_bound_membership_091.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_membership_079.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_pagination_081.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_search_tail_080.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/large_channel_target_082.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/list_accounts_readonly.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_fixtures/audio.mp3 +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_fixtures/document.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_fixtures/photo.png +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_fixtures/video.mp4 +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/media_fixtures/voice.ogg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/meet_in_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/meet_in_keep_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/meet_in_leave_085.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/meet_in_leave_086.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/meet_links_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/multipart_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/new_account_methods10.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/other_bio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/profile.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/protocol_probe.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_account_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch10.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch11.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch12.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch13.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch14.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch7.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch8.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/readonly_batch9.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/remaining23_summary.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/remaining23_termux.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/self_write_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/stats_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/update_lifecycle_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/voice_call_discovery_084.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/voice_call_probe_083.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/voice_call_probe_084.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/examples/whoami.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/setup.cfg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/setup.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/_updates/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/_updates/entitycache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/_updates/messagebox.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/_updates/session.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/bound_chat.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/chats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/dialogs.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/downloads.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/interactions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/messageparse.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/soroushclient.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/telegrambaseclient.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/updates.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/uploads.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/client/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/conference_audio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/aes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/aesctr.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/authkey.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/cdndecrypter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/factorization.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/libssl.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/crypto/rsa.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/custom.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/errors/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/errors/common.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/errors/rpcbaseerrors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/errors/rpcerrorlist.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/album.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/chataction.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/common.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/messagedeleted.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/messageedited.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/messageread.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/newmessage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/raw.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/events/userupdate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/extensions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/extensions/binaryreader.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/extensions/html.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/extensions/markdown.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/extensions/messagepacker.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/filters.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/fsm.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/functions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/hints.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/authenticator.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/connection.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/http.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/tcpabridged.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/tcpfull.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/tcpintermediate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/tcpmtproxy.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/tcpobfuscated.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/connection/websocket.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/mtprotoplainsender.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/mtprotosender.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/mtprotostate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/network/requeststate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/password.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/requestiter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sessions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sessions/abstract.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sessions/memory.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sessions/sqlite.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sessions/string.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/sync.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/alltlobjects.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/core/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/core/gzippacked.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/core/messagecontainer.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/core/rpcresult.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/core/tlmessage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/adminlogevent.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/chatgetter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/conversation.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/dialog.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/draft.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/file.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/forward.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/inlineresult.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/inlineresults.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/inputsizedfile.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/message.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/messagebutton.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/participantpermissions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/sendergetter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/custom/types.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/bots.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/channels.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/chatlists.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/folders.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/help.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/langpack.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/payments.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/phone.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/photos.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/postchin.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/premium.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/stats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/stories.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/thirdParty.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/updates.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/upload.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/functions/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/patched/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/account.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/auth.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/bots.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/channels.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/chatlists.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/conference.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/help.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/payments.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/phone.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/photos.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/postchin.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/premium.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/stats.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/stickers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/storage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/stories.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/thirdParty.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/update.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/updates.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/upload.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/tl/types/users.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/types.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon/utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon.egg-info/SOURCES.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon.egg-info/dependency_links.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon.egg-info/requires.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon.egg-info/top_level.txt +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/api.tl +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/errors.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/friendly.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/404.html +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/core.html +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/css/docs.dark.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/css/docs.h4x0r.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/css/docs.light.css +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/img/arrow.svg +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/html/js/search.js +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/methods.csv +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/data/mtproto.tl +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/docswriter.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/generators/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/generators/docs.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/generators/errors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/generators/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/errors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/tlobject/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/tlobject/parser.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/tlobject/tlarg.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/parsers/tlobject/tlobject.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/sourcebuilder.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/syncerrors.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/soroushthon_generator/utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_account_batch15_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_account_sessions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_admin_log_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_bound_chat.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_chat_member_search.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_chat_membership_and_pages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_contacts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_delete_messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_drafts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_entity_cache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_featured_stickers_cache.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_get_permissions_fallback.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_group_channel_batch16_report.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_group_channel_batch16_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_group_channel_batch20.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_interactions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_media_connection.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_message_mapping_privacy.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_messages.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_new10_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_new_account_runner.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_postchin_apk_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_profiles.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_read_acknowledge.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_readonly_account_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_readonly_batch13_routes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_readonly_batch5.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_readonly_batch7.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_rejected_rpcs_preserved.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_shortcuts.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_stats_routing.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_unsupported_features.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_verified_large_membership.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/client/test_web_document.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/crypto/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/crypto/test_rsa.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/events/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/events/test_chataction.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/events/test_dispatch.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/events/test_registration.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/extensions/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/extensions/test_html.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/extensions/test_markdown.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_account_scope.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_batch10_account_next.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_batch10_new_methods.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_chat_admin_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_cleanup_meet_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_conference_audio.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_coverage_runner.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_event_coverage_diagnostics.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_event_handler_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_framework_helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_full_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_helpers.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_interactive_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_list_accounts_readonly.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_media_attributes.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_media_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_meet_in_keep_087.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_multipart_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_pickle.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_protocol_lab.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_readonly_batch11.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_readonly_batch12.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_sessions.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_update_lifecycle_coverage.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_utils.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/test_websocket.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/tl/__init__.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tests/soroushthon/tl/test_serialization.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tools/audit_upstreams.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tools/build_capability_inventory.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tools/check_release.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tools/generate.py +0 -0
- {soroushthon-0.2.93.dev0 → soroushthon-0.2.94}/tools/protocol_lab.py +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: soroushthon
|
|
3
|
+
Version: 0.2.94
|
|
4
|
+
Summary: کلاینت ناهمگام پایتون برای ساخت ابزارهای حساب کاربری سروشپلاس
|
|
5
|
+
License-Expression: GPL-3.0-only
|
|
6
|
+
Project-URL: Community, https://splus.ir/soroushthon
|
|
7
|
+
Keywords: soroush plus,asyncio,messaging,user client
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Topic :: Communications :: Chat
|
|
11
|
+
Requires-Python: >=3.9
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
License-File: TELETHON_LICENSE
|
|
15
|
+
License-File: NOTICE.md
|
|
16
|
+
Requires-Dist: aiohttp>=3.8
|
|
17
|
+
Requires-Dist: pyaes>=1.6
|
|
18
|
+
Requires-Dist: rsa>=4
|
|
19
|
+
Provides-Extra: test
|
|
20
|
+
Requires-Dist: pytest>=7; extra == "test"
|
|
21
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == "test"
|
|
22
|
+
Provides-Extra: media
|
|
23
|
+
Requires-Dist: hachoir>=3.3; extra == "media"
|
|
24
|
+
Provides-Extra: audio
|
|
25
|
+
Requires-Dist: livekit; extra == "audio"
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
|
|
28
|
+
# سروشتون | Soroushthon
|
|
29
|
+
|
|
30
|
+
### سروشپلاس را با پایتون به ایدههایت وصل کن
|
|
31
|
+
|
|
32
|
+
یک پیام تازه میرسد؛ برنامهات آن را میبیند، تصمیم میگیرد و پاسخ میدهد. **Soroushthon** ابزار پایتونی ناهمگام برای ساخت چنین برنامههایی با **حساب کاربری سروشپلاس** است: از یک پاسخ ساده به پیام تا کار با گفتگوها، رسانهها، نظرسنجیها و رویدادها.
|
|
33
|
+
|
|
34
|
+
کد روزمره را با متدهای آشنا بنویس و وقتی به جزئیات بیشتری نیاز داری، به درخواستهای خام کتابخانه دسترسی داشته باش. برای هر حساب هم میتوانی نشست جداگانه نگه داری.
|
|
35
|
+
|
|
36
|
+
## در چند خط، اولین واکنش را بساز
|
|
37
|
+
|
|
38
|
+
این نمونه پیام `ping` را که **خودت با همان حساب** میفرستی میبیند و روی همان پیام پاسخ میدهد:
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from soroushthon import SoroushClient
|
|
42
|
+
|
|
43
|
+
client = SoroushClient.for_account("main")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@client.on_message(outgoing=True, pattern=r"(?i)\Aping\Z")
|
|
47
|
+
async def reply_to_ping(event):
|
|
48
|
+
await client.send_message(
|
|
49
|
+
await event.get_input_chat(),
|
|
50
|
+
"pong",
|
|
51
|
+
reply_to=event.id,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
client.start()
|
|
56
|
+
client.run_until_disconnected()
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
اولین اجرا اطلاعات ورود را درخواست میکند. نشست حساب روی دستگاه ذخیره میشود؛ فایلهای `.session` را در اختیار دیگران قرار نده.
|
|
60
|
+
|
|
61
|
+
## چه چیزهایی میتوانی بسازی؟
|
|
62
|
+
|
|
63
|
+
| زمینه | ابزارهای کتابخانه |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| پیامها | خواندن، جستوجو، ارسال، ویرایش، حذف و پاسخدادن به پیام |
|
|
66
|
+
| فایل و رسانه | ارسال و دریافت عکس، ویدئو، صوت و سند |
|
|
67
|
+
| برنامههای واکنشی | ثبت تابع برای پیام تازه و دیگر رویدادهای پشتیبانیشده |
|
|
68
|
+
| گفتگو و کانال | فهرست گفتگوها، اطلاعات گفتگو، اعضا و نقشها |
|
|
69
|
+
| تعامل | نظرسنجی، رأی و واکنش به پیام |
|
|
70
|
+
| چند حساب | نشست مستقل با `SoroushClient.for_account(...)` |
|
|
71
|
+
| امکانات پیشرفته | دسترسی به درخواستهای خام برای توسعه و بررسی پروتکل |
|
|
72
|
+
|
|
73
|
+
متدهای کوتاهی مانند `send`، `messages`، `file`، `poll` و `react` در کنار نامهای کامل آنها قرار دارند. این نامها برای سادهتر نوشتن کدند؛ هر درخواست خامِ موجود در بسته الزاماً روی سرور در همهٔ شرایط آزموده نشده است.
|
|
74
|
+
|
|
75
|
+
## نصب؛ یک دستور قابل کپی
|
|
76
|
+
|
|
77
|
+
به Python 3.9 یا جدیدتر نیاز داری. دستورهای زیر فقط از نویسههای انگلیسی استفاده میکنند:
|
|
78
|
+
|
|
79
|
+
**Pydroid 3 و Termux** — در ترمینال همان برنامه:
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
python -m pip install --upgrade soroushthon
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**VS Code روی Linux یا macOS** — در ترمینال پروژه:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
python -m pip install --upgrade soroushthon
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**VS Code روی Windows** — در ترمینال پروژه:
|
|
92
|
+
|
|
93
|
+
```powershell
|
|
94
|
+
py -m pip install --upgrade soroushthon
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
در VS Code مفسر Python همان محیطی را انتخاب کن که دستور نصب را در آن اجرا کردی. روی Android، نصب `aiohttp` و وابستگیهای آن به سازگاری بستهها با نسخهٔ Python محیطت بستگی دارد؛ در محیطی که این وابستگیها نصب باشند، خود Soroushthon بهصورت wheel مستقل از معماری ارائه میشود.
|
|
98
|
+
|
|
99
|
+
برای دیدن نسخهٔ نصبشده:
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
در Windows، اگر با `py` نصب کردی، در دستور بررسی هم `python` را با `py` جایگزین کن.
|
|
106
|
+
|
|
107
|
+
## از اینجا ادامه بده
|
|
108
|
+
|
|
109
|
+
برای هر حساب یک نام انتخاب کن: `main` برای حساب اصلی یا نامهایی مثل `work` برای نشست جدا. برای برنامهٔ ناهمگام موجود هم میتوانی از `await client.start()` و `await client.disconnect()` استفاده کنی. نصب وابستگیهای اصلی `aiohttp`، `pyaes` و `rsa` را `pip` انجام میدهد؛ بعضی امکانات رسانهای وابستگی اختیاری دارند.
|
|
110
|
+
|
|
111
|
+
Soroushthon یک پروژهٔ **غیررسمی** است و به برنامهٔ رسمی سروشپلاس وابسته نیست. وضعیت اجرای امکانات پیشرفته میتواند به پاسخ سرور و نوع گفتگو بستگی داشته باشد. سورس با مجوز **GPL-3.0-only** منتشر میشود؛ اطلاعات منشأ کدهای اقتباسشده در `NOTICE.md` و `TELETHON_LICENSE` همراه بسته آمده است.
|
|
112
|
+
|
|
113
|
+
برای گفتگو دربارهٔ پروژه و دیدن نمونههای بیشتر: [@soroushthon در سروشپلاس](https://splus.ir/soroushthon).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# نصب روی محیطهای مختلف
|
|
2
|
+
|
|
3
|
+
نسخهٔ انتشار `0.2.94` برای Python 3.9 یا جدیدتر بستهبندی شده است. بستهٔ اصلی `aiohttp`، `pyaes` و `rsa` را از طریق pip دریافت میکند. تمام فرمانها در این صفحه انگلیسی و قابل کپی هستند.
|
|
4
|
+
|
|
5
|
+
## Pydroid 3
|
|
6
|
+
|
|
7
|
+
در ترمینال Pydroid اجرا کن:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
python -m pip install --upgrade soroushthon
|
|
11
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
نسخهٔ `aiohttp` و وابستگیهایش باید در Python همین برنامه قابل نصب باشند. خرابی داخلی pip را با نصب دوبارهٔ خود pip بررسی کن؛ خطای import در pip نشانهٔ اشکال در بستهٔ Soroushthon نیست.
|
|
15
|
+
|
|
16
|
+
## Termux
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
python -m pip install --upgrade soroushthon
|
|
20
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
نسخهٔ Python و وابستگیهای موجود در Termux میتوانند با Pydroid متفاوت باشند. برای هر محیط باید نصب را در ترمینال خودش انجام دهی.
|
|
24
|
+
|
|
25
|
+
## VS Code روی Linux یا macOS
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
python -m venv .venv
|
|
29
|
+
.venv/bin/python -m pip install --upgrade soroushthon
|
|
30
|
+
.venv/bin/python -c "import soroushthon; print(soroushthon.__version__)"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
در VS Code مفسر `.venv` همین پروژه را انتخاب کن.
|
|
34
|
+
|
|
35
|
+
## VS Code روی Windows
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
py -m venv .venv
|
|
39
|
+
.venv\Scripts\python.exe -m pip install --upgrade soroushthon
|
|
40
|
+
.venv\Scripts\python.exe -c "import soroushthon; print(soroushthon.__version__)"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
موفقیت نصب روی یک سیستم، اجرای همهٔ قابلیتهای وابسته به پاسخ سرور را در سیستمهای دیگر اثبات نمیکند. فایل نشست حساب را عمومی منتشر نکن.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# انتشار نسخهٔ 0.2.94
|
|
2
|
+
|
|
3
|
+
این پوشه سورس نسخهٔ نهایی `0.2.94` است. متن `PYPI_README.md` توضیح صفحهٔ PyPI است. نام و نسخهٔ بستهٔ منتشرشده را نمیتوان با همان نام فایل دوباره جایگزین کرد.
|
|
4
|
+
|
|
5
|
+
## کنترل پیش از ارسال
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
python -m pip install build twine
|
|
9
|
+
python -m pytest -q
|
|
10
|
+
python -m build
|
|
11
|
+
python -m twine check dist/*
|
|
12
|
+
python tools/check_release.py dist
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
پس از ساخت، نصب و import بسته را در محیطی جدا از پوشهٔ سورس امتحان کن. روی یک حساب آزمایشی مسیر ورود، دریافت و ارسال پیام، رویداد، رسانه و اتصال مجدد را اجرا و نتیجه را بررسی کن. فایل نشست یا دادهٔ حساب نباید در بسته باشد. آزمون محلی جای بررسی زنده را نمیگیرد.
|
|
16
|
+
|
|
17
|
+
## ارسال از Termux به PyPI
|
|
18
|
+
|
|
19
|
+
ZIP انتشار را در پوشهٔ Downloads گوشی ذخیره کن. اگر دسترسی Termux به حافظه را قبلاً فعال نکردهای، یکبار `termux-setup-storage` را اجرا کن و اجازهٔ Android را بده. سپس این فرمانها را در Termux اجرا کن:
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
mkdir -p ~/soroushthon-upload-0.2.94
|
|
23
|
+
cd ~/soroushthon-upload-0.2.94
|
|
24
|
+
cp ~/storage/downloads/soroushthon-0.2.94-release.zip .
|
|
25
|
+
python -m zipfile -e soroushthon-0.2.94-release.zip .
|
|
26
|
+
sha256sum -c SHA256SUMS.txt
|
|
27
|
+
python -m pip install twine
|
|
28
|
+
python -m twine check --strict dist/soroushthon-0.2.94.tar.gz dist/soroushthon-0.2.94-py3-none-any.whl
|
|
29
|
+
python -m twine upload --repository pypi --username __token__ dist/soroushthon-0.2.94.tar.gz dist/soroushthon-0.2.94-py3-none-any.whl
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
در درخواست `Password:`، توکن API پروژهٔ `soroushthon` را وارد کن. هنگام تایپ توکن چیزی روی صفحه نشان داده نمیشود. توکن را داخل فرمان، فایل یا پیام قرار نده.
|
|
33
|
+
|
|
34
|
+
پس از انتشار، در Python محیط مقصد این دو دستور را اجرا و شمارهٔ نسخه را بررسی کن:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
python -m pip install --upgrade --no-cache-dir soroushthon
|
|
38
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
نسخهٔ توسعهای `0.2.93.dev0` و نسخهٔ پایدار قبلی `0.2.21` را برای تغییر صفحهٔ اصلی PyPI لازم نیست پاک کنی؛ نسخهٔ نهایی تازه با نصب معمولی انتخاب میشود. حذف نسخهٔ قدیمی نصب کاربرانی را که آن را پین کردهاند خراب میکند.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# سروشتون | Soroushthon
|
|
2
|
+
|
|
3
|
+
### سروشپلاس را با پایتون به ایدههایت وصل کن
|
|
4
|
+
|
|
5
|
+
یک پیام تازه میرسد؛ برنامهات آن را میبیند، تصمیم میگیرد و پاسخ میدهد. **Soroushthon** ابزار پایتونی ناهمگام برای ساخت چنین برنامههایی با **حساب کاربری سروشپلاس** است: از یک پاسخ ساده به پیام تا کار با گفتگوها، رسانهها، نظرسنجیها و رویدادها.
|
|
6
|
+
|
|
7
|
+
کد روزمره را با متدهای آشنا بنویس و وقتی به جزئیات بیشتری نیاز داری، به درخواستهای خام کتابخانه دسترسی داشته باش. برای هر حساب هم میتوانی نشست جداگانه نگه داری.
|
|
8
|
+
|
|
9
|
+
## در چند خط، اولین واکنش را بساز
|
|
10
|
+
|
|
11
|
+
این نمونه پیام `ping` را که **خودت با همان حساب** میفرستی میبیند و روی همان پیام پاسخ میدهد:
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from soroushthon import SoroushClient
|
|
15
|
+
|
|
16
|
+
client = SoroushClient.for_account("main")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@client.on_message(outgoing=True, pattern=r"(?i)\Aping\Z")
|
|
20
|
+
async def reply_to_ping(event):
|
|
21
|
+
await client.send_message(
|
|
22
|
+
await event.get_input_chat(),
|
|
23
|
+
"pong",
|
|
24
|
+
reply_to=event.id,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
client.start()
|
|
29
|
+
client.run_until_disconnected()
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
اولین اجرا اطلاعات ورود را درخواست میکند. نشست حساب روی دستگاه ذخیره میشود؛ فایلهای `.session` را در اختیار دیگران قرار نده.
|
|
33
|
+
|
|
34
|
+
## چه چیزهایی میتوانی بسازی؟
|
|
35
|
+
|
|
36
|
+
| زمینه | ابزارهای کتابخانه |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| پیامها | خواندن، جستوجو، ارسال، ویرایش، حذف و پاسخدادن به پیام |
|
|
39
|
+
| فایل و رسانه | ارسال و دریافت عکس، ویدئو، صوت و سند |
|
|
40
|
+
| برنامههای واکنشی | ثبت تابع برای پیام تازه و دیگر رویدادهای پشتیبانیشده |
|
|
41
|
+
| گفتگو و کانال | فهرست گفتگوها، اطلاعات گفتگو، اعضا و نقشها |
|
|
42
|
+
| تعامل | نظرسنجی، رأی و واکنش به پیام |
|
|
43
|
+
| چند حساب | نشست مستقل با `SoroushClient.for_account(...)` |
|
|
44
|
+
| امکانات پیشرفته | دسترسی به درخواستهای خام برای توسعه و بررسی پروتکل |
|
|
45
|
+
|
|
46
|
+
متدهای کوتاهی مانند `send`، `messages`، `file`، `poll` و `react` در کنار نامهای کامل آنها قرار دارند. این نامها برای سادهتر نوشتن کدند؛ هر درخواست خامِ موجود در بسته الزاماً روی سرور در همهٔ شرایط آزموده نشده است.
|
|
47
|
+
|
|
48
|
+
## نصب؛ یک دستور قابل کپی
|
|
49
|
+
|
|
50
|
+
به Python 3.9 یا جدیدتر نیاز داری. دستورهای زیر فقط از نویسههای انگلیسی استفاده میکنند:
|
|
51
|
+
|
|
52
|
+
**Pydroid 3 و Termux** — در ترمینال همان برنامه:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
python -m pip install --upgrade soroushthon
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**VS Code روی Linux یا macOS** — در ترمینال پروژه:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
python -m pip install --upgrade soroushthon
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**VS Code روی Windows** — در ترمینال پروژه:
|
|
65
|
+
|
|
66
|
+
```powershell
|
|
67
|
+
py -m pip install --upgrade soroushthon
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
در VS Code مفسر Python همان محیطی را انتخاب کن که دستور نصب را در آن اجرا کردی. روی Android، نصب `aiohttp` و وابستگیهای آن به سازگاری بستهها با نسخهٔ Python محیطت بستگی دارد؛ در محیطی که این وابستگیها نصب باشند، خود Soroushthon بهصورت wheel مستقل از معماری ارائه میشود.
|
|
71
|
+
|
|
72
|
+
برای دیدن نسخهٔ نصبشده:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
در Windows، اگر با `py` نصب کردی، در دستور بررسی هم `python` را با `py` جایگزین کن.
|
|
79
|
+
|
|
80
|
+
## از اینجا ادامه بده
|
|
81
|
+
|
|
82
|
+
برای هر حساب یک نام انتخاب کن: `main` برای حساب اصلی یا نامهایی مثل `work` برای نشست جدا. برای برنامهٔ ناهمگام موجود هم میتوانی از `await client.start()` و `await client.disconnect()` استفاده کنی. نصب وابستگیهای اصلی `aiohttp`، `pyaes` و `rsa` را `pip` انجام میدهد؛ بعضی امکانات رسانهای وابستگی اختیاری دارند.
|
|
83
|
+
|
|
84
|
+
Soroushthon یک پروژهٔ **غیررسمی** است و به برنامهٔ رسمی سروشپلاس وابسته نیست. وضعیت اجرای امکانات پیشرفته میتواند به پاسخ سرور و نوع گفتگو بستگی داشته باشد. سورس با مجوز **GPL-3.0-only** منتشر میشود؛ اطلاعات منشأ کدهای اقتباسشده در `NOTICE.md` و `TELETHON_LICENSE` همراه بسته آمده است.
|
|
85
|
+
|
|
86
|
+
برای گفتگو دربارهٔ پروژه و دیدن نمونههای بیشتر: [@soroushthon در سروشپلاس](https://splus.ir/soroushthon).
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# سروشتون | Soroushthon
|
|
2
|
+
|
|
3
|
+
### سروشپلاس را با پایتون به ایدههایت وصل کن
|
|
4
|
+
|
|
5
|
+
یک پیام تازه میرسد؛ برنامهات آن را میبیند، تصمیم میگیرد و پاسخ میدهد. **Soroushthon** ابزار پایتونی ناهمگام برای ساخت چنین برنامههایی با **حساب کاربری سروشپلاس** است: از یک پاسخ ساده به پیام تا کار با گفتگوها، رسانهها، نظرسنجیها و رویدادها.
|
|
6
|
+
|
|
7
|
+
کد روزمره را با متدهای آشنا بنویس و وقتی به جزئیات بیشتری نیاز داری، به درخواستهای خام کتابخانه دسترسی داشته باش. برای هر حساب هم میتوانی نشست جداگانه نگه داری.
|
|
8
|
+
|
|
9
|
+
## در چند خط، اولین واکنش را بساز
|
|
10
|
+
|
|
11
|
+
این نمونه پیام `ping` را که **خودت با همان حساب** میفرستی میبیند و روی همان پیام پاسخ میدهد:
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from soroushthon import SoroushClient
|
|
15
|
+
|
|
16
|
+
client = SoroushClient.for_account("main")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@client.on_message(outgoing=True, pattern=r"(?i)\Aping\Z")
|
|
20
|
+
async def reply_to_ping(event):
|
|
21
|
+
await client.send_message(
|
|
22
|
+
await event.get_input_chat(),
|
|
23
|
+
"pong",
|
|
24
|
+
reply_to=event.id,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
client.start()
|
|
29
|
+
client.run_until_disconnected()
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
اولین اجرا اطلاعات ورود را درخواست میکند. نشست حساب روی دستگاه ذخیره میشود؛ فایلهای `.session` را در اختیار دیگران قرار نده.
|
|
33
|
+
|
|
34
|
+
## چه چیزهایی میتوانی بسازی؟
|
|
35
|
+
|
|
36
|
+
| زمینه | ابزارهای کتابخانه |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| پیامها | خواندن، جستوجو، ارسال، ویرایش، حذف و پاسخدادن به پیام |
|
|
39
|
+
| فایل و رسانه | ارسال و دریافت عکس، ویدئو، صوت و سند |
|
|
40
|
+
| برنامههای واکنشی | ثبت تابع برای پیام تازه و دیگر رویدادهای پشتیبانیشده |
|
|
41
|
+
| گفتگو و کانال | فهرست گفتگوها، اطلاعات گفتگو، اعضا و نقشها |
|
|
42
|
+
| تعامل | نظرسنجی، رأی و واکنش به پیام |
|
|
43
|
+
| چند حساب | نشست مستقل با `SoroushClient.for_account(...)` |
|
|
44
|
+
| امکانات پیشرفته | دسترسی به درخواستهای خام برای توسعه و بررسی پروتکل |
|
|
45
|
+
|
|
46
|
+
متدهای کوتاهی مانند `send`، `messages`، `file`، `poll` و `react` در کنار نامهای کامل آنها قرار دارند. این نامها برای سادهتر نوشتن کدند؛ هر درخواست خامِ موجود در بسته الزاماً روی سرور در همهٔ شرایط آزموده نشده است.
|
|
47
|
+
|
|
48
|
+
## نصب؛ یک دستور قابل کپی
|
|
49
|
+
|
|
50
|
+
به Python 3.9 یا جدیدتر نیاز داری. دستورهای زیر فقط از نویسههای انگلیسی استفاده میکنند:
|
|
51
|
+
|
|
52
|
+
**Pydroid 3 و Termux** — در ترمینال همان برنامه:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
python -m pip install --upgrade soroushthon
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**VS Code روی Linux یا macOS** — در ترمینال پروژه:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
python -m pip install --upgrade soroushthon
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**VS Code روی Windows** — در ترمینال پروژه:
|
|
65
|
+
|
|
66
|
+
```powershell
|
|
67
|
+
py -m pip install --upgrade soroushthon
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
در VS Code مفسر Python همان محیطی را انتخاب کن که دستور نصب را در آن اجرا کردی. روی Android، نصب `aiohttp` و وابستگیهای آن به سازگاری بستهها با نسخهٔ Python محیطت بستگی دارد؛ در محیطی که این وابستگیها نصب باشند، خود Soroushthon بهصورت wheel مستقل از معماری ارائه میشود.
|
|
71
|
+
|
|
72
|
+
برای دیدن نسخهٔ نصبشده:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
در Windows، اگر با `py` نصب کردی، در دستور بررسی هم `python` را با `py` جایگزین کن.
|
|
79
|
+
|
|
80
|
+
## از اینجا ادامه بده
|
|
81
|
+
|
|
82
|
+
برای هر حساب یک نام انتخاب کن: `main` برای حساب اصلی یا نامهایی مثل `work` برای نشست جدا. برای برنامهٔ ناهمگام موجود هم میتوانی از `await client.start()` و `await client.disconnect()` استفاده کنی. نصب وابستگیهای اصلی `aiohttp`، `pyaes` و `rsa` را `pip` انجام میدهد؛ بعضی امکانات رسانهای وابستگی اختیاری دارند.
|
|
83
|
+
|
|
84
|
+
Soroushthon یک پروژهٔ **غیررسمی** است و به برنامهٔ رسمی سروشپلاس وابسته نیست. وضعیت اجرای امکانات پیشرفته میتواند به پاسخ سرور و نوع گفتگو بستگی داشته باشد. سورس با مجوز **GPL-3.0-only** منتشر میشود؛ اطلاعات منشأ کدهای اقتباسشده در `NOTICE.md` و `TELETHON_LICENSE` همراه بسته آمده است.
|
|
85
|
+
|
|
86
|
+
برای گفتگو دربارهٔ پروژه و دیدن نمونههای بیشتر: [@soroushthon در سروشپلاس](https://splus.ir/soroushthon).
|
|
87
|
+
|
|
88
|
+
## راهنماهای بیشتر در سورس
|
|
89
|
+
|
|
90
|
+
- [نمونههای برنامه](examples/) و [فهرست امکانات](CAPABILITIES.md)
|
|
91
|
+
- [پیام و رسانه](MEDIA.md)، [نظرسنجی و واکنش](INTERACTIONS.md) و [راهنمای Termux](TERMUX_TESTING.md)
|
|
92
|
+
- [منشأ کدها و مجوزها](NOTICE.md)
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "soroushthon"
|
|
7
|
-
version = "0.2.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.2.94"
|
|
8
|
+
description = "کلاینت ناهمگام پایتون برای ساخت ابزارهای حساب کاربری سروشپلاس"
|
|
9
9
|
readme = "PYPI_README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
license = "GPL-3.0-only"
|
|
@@ -18,6 +18,9 @@ classifiers = [
|
|
|
18
18
|
"Topic :: Communications :: Chat",
|
|
19
19
|
]
|
|
20
20
|
|
|
21
|
+
[project.urls]
|
|
22
|
+
Community = "https://splus.ir/soroushthon"
|
|
23
|
+
|
|
21
24
|
[project.optional-dependencies]
|
|
22
25
|
test = ["pytest>=7", "pytest-asyncio>=0.23"]
|
|
23
26
|
media = ["hachoir>=3.3"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.2.94'
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: soroushthon
|
|
3
|
+
Version: 0.2.94
|
|
4
|
+
Summary: کلاینت ناهمگام پایتون برای ساخت ابزارهای حساب کاربری سروشپلاس
|
|
5
|
+
License-Expression: GPL-3.0-only
|
|
6
|
+
Project-URL: Community, https://splus.ir/soroushthon
|
|
7
|
+
Keywords: soroush plus,asyncio,messaging,user client
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Topic :: Communications :: Chat
|
|
11
|
+
Requires-Python: >=3.9
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
License-File: TELETHON_LICENSE
|
|
15
|
+
License-File: NOTICE.md
|
|
16
|
+
Requires-Dist: aiohttp>=3.8
|
|
17
|
+
Requires-Dist: pyaes>=1.6
|
|
18
|
+
Requires-Dist: rsa>=4
|
|
19
|
+
Provides-Extra: test
|
|
20
|
+
Requires-Dist: pytest>=7; extra == "test"
|
|
21
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == "test"
|
|
22
|
+
Provides-Extra: media
|
|
23
|
+
Requires-Dist: hachoir>=3.3; extra == "media"
|
|
24
|
+
Provides-Extra: audio
|
|
25
|
+
Requires-Dist: livekit; extra == "audio"
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
|
|
28
|
+
# سروشتون | Soroushthon
|
|
29
|
+
|
|
30
|
+
### سروشپلاس را با پایتون به ایدههایت وصل کن
|
|
31
|
+
|
|
32
|
+
یک پیام تازه میرسد؛ برنامهات آن را میبیند، تصمیم میگیرد و پاسخ میدهد. **Soroushthon** ابزار پایتونی ناهمگام برای ساخت چنین برنامههایی با **حساب کاربری سروشپلاس** است: از یک پاسخ ساده به پیام تا کار با گفتگوها، رسانهها، نظرسنجیها و رویدادها.
|
|
33
|
+
|
|
34
|
+
کد روزمره را با متدهای آشنا بنویس و وقتی به جزئیات بیشتری نیاز داری، به درخواستهای خام کتابخانه دسترسی داشته باش. برای هر حساب هم میتوانی نشست جداگانه نگه داری.
|
|
35
|
+
|
|
36
|
+
## در چند خط، اولین واکنش را بساز
|
|
37
|
+
|
|
38
|
+
این نمونه پیام `ping` را که **خودت با همان حساب** میفرستی میبیند و روی همان پیام پاسخ میدهد:
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from soroushthon import SoroushClient
|
|
42
|
+
|
|
43
|
+
client = SoroushClient.for_account("main")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@client.on_message(outgoing=True, pattern=r"(?i)\Aping\Z")
|
|
47
|
+
async def reply_to_ping(event):
|
|
48
|
+
await client.send_message(
|
|
49
|
+
await event.get_input_chat(),
|
|
50
|
+
"pong",
|
|
51
|
+
reply_to=event.id,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
client.start()
|
|
56
|
+
client.run_until_disconnected()
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
اولین اجرا اطلاعات ورود را درخواست میکند. نشست حساب روی دستگاه ذخیره میشود؛ فایلهای `.session` را در اختیار دیگران قرار نده.
|
|
60
|
+
|
|
61
|
+
## چه چیزهایی میتوانی بسازی؟
|
|
62
|
+
|
|
63
|
+
| زمینه | ابزارهای کتابخانه |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| پیامها | خواندن، جستوجو، ارسال، ویرایش، حذف و پاسخدادن به پیام |
|
|
66
|
+
| فایل و رسانه | ارسال و دریافت عکس، ویدئو، صوت و سند |
|
|
67
|
+
| برنامههای واکنشی | ثبت تابع برای پیام تازه و دیگر رویدادهای پشتیبانیشده |
|
|
68
|
+
| گفتگو و کانال | فهرست گفتگوها، اطلاعات گفتگو، اعضا و نقشها |
|
|
69
|
+
| تعامل | نظرسنجی، رأی و واکنش به پیام |
|
|
70
|
+
| چند حساب | نشست مستقل با `SoroushClient.for_account(...)` |
|
|
71
|
+
| امکانات پیشرفته | دسترسی به درخواستهای خام برای توسعه و بررسی پروتکل |
|
|
72
|
+
|
|
73
|
+
متدهای کوتاهی مانند `send`، `messages`، `file`، `poll` و `react` در کنار نامهای کامل آنها قرار دارند. این نامها برای سادهتر نوشتن کدند؛ هر درخواست خامِ موجود در بسته الزاماً روی سرور در همهٔ شرایط آزموده نشده است.
|
|
74
|
+
|
|
75
|
+
## نصب؛ یک دستور قابل کپی
|
|
76
|
+
|
|
77
|
+
به Python 3.9 یا جدیدتر نیاز داری. دستورهای زیر فقط از نویسههای انگلیسی استفاده میکنند:
|
|
78
|
+
|
|
79
|
+
**Pydroid 3 و Termux** — در ترمینال همان برنامه:
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
python -m pip install --upgrade soroushthon
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**VS Code روی Linux یا macOS** — در ترمینال پروژه:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
python -m pip install --upgrade soroushthon
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**VS Code روی Windows** — در ترمینال پروژه:
|
|
92
|
+
|
|
93
|
+
```powershell
|
|
94
|
+
py -m pip install --upgrade soroushthon
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
در VS Code مفسر Python همان محیطی را انتخاب کن که دستور نصب را در آن اجرا کردی. روی Android، نصب `aiohttp` و وابستگیهای آن به سازگاری بستهها با نسخهٔ Python محیطت بستگی دارد؛ در محیطی که این وابستگیها نصب باشند، خود Soroushthon بهصورت wheel مستقل از معماری ارائه میشود.
|
|
98
|
+
|
|
99
|
+
برای دیدن نسخهٔ نصبشده:
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
در Windows، اگر با `py` نصب کردی، در دستور بررسی هم `python` را با `py` جایگزین کن.
|
|
106
|
+
|
|
107
|
+
## از اینجا ادامه بده
|
|
108
|
+
|
|
109
|
+
برای هر حساب یک نام انتخاب کن: `main` برای حساب اصلی یا نامهایی مثل `work` برای نشست جدا. برای برنامهٔ ناهمگام موجود هم میتوانی از `await client.start()` و `await client.disconnect()` استفاده کنی. نصب وابستگیهای اصلی `aiohttp`، `pyaes` و `rsa` را `pip` انجام میدهد؛ بعضی امکانات رسانهای وابستگی اختیاری دارند.
|
|
110
|
+
|
|
111
|
+
Soroushthon یک پروژهٔ **غیررسمی** است و به برنامهٔ رسمی سروشپلاس وابسته نیست. وضعیت اجرای امکانات پیشرفته میتواند به پاسخ سرور و نوع گفتگو بستگی داشته باشد. سورس با مجوز **GPL-3.0-only** منتشر میشود؛ اطلاعات منشأ کدهای اقتباسشده در `NOTICE.md` و `TELETHON_LICENSE` همراه بسته آمده است.
|
|
112
|
+
|
|
113
|
+
برای گفتگو دربارهٔ پروژه و دیدن نمونههای بیشتر: [@soroushthon در سروشپلاس](https://splus.ir/soroushthon).
|
soroushthon-0.2.93.dev0/PKG-INFO
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: soroushthon
|
|
3
|
-
Version: 0.2.93.dev0
|
|
4
|
-
Summary: کتابخانهٔ ناهمگام پایتون برای حساب کاربری سروشپلاس
|
|
5
|
-
License-Expression: GPL-3.0-only
|
|
6
|
-
Keywords: soroush plus,asyncio,messaging,user client
|
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Classifier: Operating System :: OS Independent
|
|
9
|
-
Classifier: Topic :: Communications :: Chat
|
|
10
|
-
Requires-Python: >=3.9
|
|
11
|
-
Description-Content-Type: text/markdown
|
|
12
|
-
License-File: LICENSE
|
|
13
|
-
License-File: TELETHON_LICENSE
|
|
14
|
-
License-File: NOTICE.md
|
|
15
|
-
Requires-Dist: aiohttp>=3.8
|
|
16
|
-
Requires-Dist: pyaes>=1.6
|
|
17
|
-
Requires-Dist: rsa>=4
|
|
18
|
-
Provides-Extra: test
|
|
19
|
-
Requires-Dist: pytest>=7; extra == "test"
|
|
20
|
-
Requires-Dist: pytest-asyncio>=0.23; extra == "test"
|
|
21
|
-
Provides-Extra: media
|
|
22
|
-
Requires-Dist: hachoir>=3.3; extra == "media"
|
|
23
|
-
Provides-Extra: audio
|
|
24
|
-
Requires-Dist: livekit; extra == "audio"
|
|
25
|
-
Dynamic: license-file
|
|
26
|
-
|
|
27
|
-
# سروشتون | Soroushthon
|
|
28
|
-
|
|
29
|
-
### پایتون و حساب سروشپلاس؛ بقیهاش با ایدهٔ خودت
|
|
30
|
-
|
|
31
|
-
سروشتون را ساختهام تا برای کارهای تکراریِ سروشپلاس لازم نباشد هر بار از اول با جزئیات پروتکل درگیر شوم. وقتی میخواهم پیامها را بخوانم، فایلی بفرستم، برای یک گروه برنامه بنویسم یا به رویدادهای تازه واکنش نشان بدهم، ترجیح میدهم کد برنامهام را ببینم، نه انبوهی از درخواستهای ریز را.
|
|
32
|
-
|
|
33
|
-
برای همین متدهای روزمره را کوتاه و سرراست نگه داشتهام و راهِ استفاده از درخواستهای خام را هم باز گذاشتهام. کتابخانه با **حساب کاربری سروشپلاس** و `asyncio` کار میکند؛ میتوانی برای هر حساب نشست خودش را داشته باشی.
|
|
34
|
-
|
|
35
|
-
چند کاری که میشود باهاش انجام داد:
|
|
36
|
-
|
|
37
|
-
- خواندن، جستوجو، فرستادن، ویرایش و حذف پیام در گفتگوی خصوصی، گروه و کانال
|
|
38
|
-
- فرستادن و دریافت عکس، ویدئو، صوت، پیام صوتی و فایل
|
|
39
|
-
- نوشتن برنامههایی که به پیام و رویداد تازه واکنش نشان میدهند
|
|
40
|
-
- کار با نظرسنجی، رأی و واکنش
|
|
41
|
-
- خواندن اطلاعات گروه و کانال، اعضا و نقشها، و بررسی عضویت کاربر مشخص
|
|
42
|
-
- ساخت و فرستادن لینک نشست کنفرانس در گفتگو
|
|
43
|
-
|
|
44
|
-
## یک شروع کوتاه
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
python -m pip install soroushthon
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```python
|
|
51
|
-
import asyncio
|
|
52
|
-
from soroushthon import SoroushClient
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
async def main():
|
|
56
|
-
client = SoroushClient.for_account('main')
|
|
57
|
-
await client.start()
|
|
58
|
-
try:
|
|
59
|
-
me = await client.me()
|
|
60
|
-
print('شناسهٔ حساب:', me.id)
|
|
61
|
-
|
|
62
|
-
await client.send('me', 'سلام از سروشتون!')
|
|
63
|
-
|
|
64
|
-
chat = await client.bind_chat('@my_channel')
|
|
65
|
-
for message in await chat.messages(limit=5):
|
|
66
|
-
print(message)
|
|
67
|
-
finally:
|
|
68
|
-
await client.disconnect()
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
asyncio.run(main())
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
پایتون ۳٫۹ یا جدیدتر کافی است. برای حساب دوم هم میتوانی بهجای `main` یک نام دیگر مثل `work` بگذاری؛ نشستها جدا نگه داشته میشوند.
|
|
75
|
-
|
|
76
|
-
اگر داری با سروشتون برنامه میسازی، خبرهای نسخههای تازه را میخواهی یا جایی از کار سؤال داری، به [گپ/کانال `@soroushthon` در سروشپلاس](https://splus.ir/soroushthon) بیا. سورس، نمونهها و راهنماهای بیشتر هم در مخزن پروژه قرار دارند.
|
|
77
|
-
|
|
78
|
-
این پروژه با مجوز **GPLv3** منتشر میشود؛ اطلاعات منشأ کدهای اقتباسشده همراه سورس آمده است.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# اجرای کتابخانه در محیطهای مختلف
|
|
2
|
-
|
|
3
|
-
VS Code ویرایشگر است؛ اجرای برنامه به Python انتخابشده در آن بستگی دارد. برای توسعه، رباتِ روی هاست و Termux از همان API `SoroushClient` استفاده کن. هستهٔ پیام، فایل، نظرسنجی، رویداد و ساخت لینک کنفرانس به `livekit` و `ffmpeg` وابسته نیست. اتصال به اتاق صوتی یا پخش فایل صوتی در تماس اختیاری و جداست.
|
|
4
|
-
|
|
5
|
-
این سورس توسعه هنوز منتشر نشده است؛ `pip install soroushthon` از PyPI نسخهٔ قبلی را میگیرد. پوشهٔ سورس را روی محیط مقصد منتقل و از داخل آن نصب کن. بستهٔ جاری `aiohttp`، `pyaes` و `rsa` را بهعنوان وابستگی پایه تعریف میکند.
|
|
6
|
-
|
|
7
|
-
## لینوکس، macOS و هاست لینوکسی
|
|
8
|
-
|
|
9
|
-
```sh
|
|
10
|
-
cd soroushthon-0.2.35-dev
|
|
11
|
-
python3 -m venv .venv
|
|
12
|
-
.venv/bin/python -m pip install -e .
|
|
13
|
-
.venv/bin/python -c "import soroushthon; print(soroushthon.__version__)"
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
روی هاست، فرآیند ربات باید در حال اجرا بماند و شبکهٔ خروجی و فضای پایدار برای فایل نشست داشته باشد. نخستین ورود معمولاً کد تأیید میخواهد؛ فایل نشست را عمومی یا داخل مخزن منتشر نکن. `for_account('test')` در خانهٔ کاربر اجراکننده یک نشست جدا میسازد. فایل نشستِ ایجادشده را بدون نیاز یا مجوز به محیط دیگری منتقل نکن.
|
|
17
|
-
|
|
18
|
-
## Windows و VS Code
|
|
19
|
-
|
|
20
|
-
در PowerShell داخل پوشهٔ سورس:
|
|
21
|
-
|
|
22
|
-
```powershell
|
|
23
|
-
py -m venv .venv
|
|
24
|
-
.venv\Scripts\python.exe -m pip install -e .
|
|
25
|
-
.venv\Scripts\python.exe -c "import soroushthon; print(soroushthon.__version__)"
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
در VS Code دستور **Python: Select Interpreter** را اجرا و Python داخل همین `.venv` را انتخاب کن. اجرای برنامه روی VS Code، PowerShell یا یک هاست باید همان نسخهٔ کتابخانه را از همان محیط Python import کند.
|
|
29
|
-
|
|
30
|
-
## Termux
|
|
31
|
-
|
|
32
|
-
پس از استخراج ZIP در خانهٔ Termux، اگر وابستگیهای پایهٔ نسخهٔ قبلی را نصب کردهای:
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
cd ~/soroushthon-0.2.35-dev
|
|
36
|
-
python -c "import soroushthon; print(soroushthon.__version__)"
|
|
37
|
-
python examples/full_coverage.py --account test --only-conference --create-meet
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
برای استفاده از کتابخانه در یک پروژهٔ دیگر، آن را در محیط Python همان پروژه نصب کن. اگر محیط مجازی جدا ساختهای، دستور نصب را از Python همان محیط اجرا کن. ساخت کنفرانس مستقل هیچ وابستگی صوتی ندارد. گوشی آزمایشی `armv7l` است و در آن `livekit` و `ffmpeg` نصب نبودند؛ از این نتیجه نمیتوان دربارهٔ نصب یا اجرای رسانه روی سرور لینوکسی یا رایانه نتیجه گرفت.
|
|
41
|
-
|
|
42
|
-
## مرز تأیید
|
|
43
|
-
|
|
44
|
-
آزمونهای محلی در Linux اجرا شدهاند؛ حساب آزمایشی از Termux ساخت، ورود، خروج و پایان کنفرانس مستقل را تأیید کرد. فایل `.github/workflows/check.yml` ماتریس Python 3.12 و 3.13 روی Linux، Windows و macOS را تعریف میکند؛ این ماتریس بعد از قرارگرفتن پروژه در مخزن GitHub اجرا میشود و در حال حاضر نتیجهای برای Windows/macOS نداریم. رفتار شبکه و قابلیتهای خاص سرور نیز جدا از موفقیت آزمونهای محلی است.
|