Metadata-Version: 2.4
Name: soroushthon
Version: 0.2.93.dev0
Summary: کتابخانهٔ ناهمگام پایتون برای حساب کاربری سروش‌پلاس
License-Expression: GPL-3.0-only
Keywords: soroush plus,asyncio,messaging,user client
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: TELETHON_LICENSE
License-File: NOTICE.md
Requires-Dist: aiohttp>=3.8
Requires-Dist: pyaes>=1.6
Requires-Dist: rsa>=4
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: pytest-asyncio>=0.23; extra == "test"
Provides-Extra: media
Requires-Dist: hachoir>=3.3; extra == "media"
Provides-Extra: audio
Requires-Dist: livekit; extra == "audio"
Dynamic: license-file

# سروش‌تون | Soroushthon

### پایتون و حساب سروش‌پلاس؛ بقیه‌اش با ایدهٔ خودت

سروش‌تون را ساخته‌ام تا برای کارهای تکراریِ سروش‌پلاس لازم نباشد هر بار از اول با جزئیات پروتکل درگیر شوم. وقتی می‌خواهم پیام‌ها را بخوانم، فایلی بفرستم، برای یک گروه برنامه بنویسم یا به رویدادهای تازه واکنش نشان بدهم، ترجیح می‌دهم کد برنامه‌ام را ببینم، نه انبوهی از درخواست‌های ریز را.

برای همین متدهای روزمره را کوتاه و سرراست نگه داشته‌ام و راهِ استفاده از درخواست‌های خام را هم باز گذاشته‌ام. کتابخانه با **حساب کاربری سروش‌پلاس** و `asyncio` کار می‌کند؛ می‌توانی برای هر حساب نشست خودش را داشته باشی.

چند کاری که می‌شود باهاش انجام داد:

- خواندن، جست‌وجو، فرستادن، ویرایش و حذف پیام در گفتگوی خصوصی، گروه و کانال
- فرستادن و دریافت عکس، ویدئو، صوت، پیام صوتی و فایل
- نوشتن برنامه‌هایی که به پیام و رویداد تازه واکنش نشان می‌دهند
- کار با نظرسنجی، رأی و واکنش
- خواندن اطلاعات گروه و کانال، اعضا و نقش‌ها، و بررسی عضویت کاربر مشخص
- ساخت و فرستادن لینک نشست کنفرانس در گفتگو

## یک شروع کوتاه

```bash
python -m pip install soroushthon
```

```python
import asyncio
from soroushthon import SoroushClient


async def main():
    client = SoroushClient.for_account('main')
    await client.start()
    try:
        me = await client.me()
        print('شناسهٔ حساب:', me.id)

        await client.send('me', 'سلام از سروش‌تون!')

        chat = await client.bind_chat('@my_channel')
        for message in await chat.messages(limit=5):
            print(message)
    finally:
        await client.disconnect()


asyncio.run(main())
```

پایتون ۳٫۹ یا جدیدتر کافی است. برای حساب دوم هم می‌توانی به‌جای `main` یک نام دیگر مثل `work` بگذاری؛ نشست‌ها جدا نگه داشته می‌شوند.

اگر داری با سروش‌تون برنامه می‌سازی، خبرهای نسخه‌های تازه را می‌خواهی یا جایی از کار سؤال داری، به [گپ/کانال `@soroushthon` در سروش‌پلاس](https://splus.ir/soroushthon) بیا. سورس، نمونه‌ها و راهنماهای بیشتر هم در مخزن پروژه قرار دارند.

این پروژه با مجوز **GPLv3** منتشر می‌شود؛ اطلاعات منشأ کدهای اقتباس‌شده همراه سورس آمده است.
